Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Sistemul informational al retelei (NIS)

retele calculatoare



+ Font mai mare | - Font mai mic



Sistemul informational al retelei (NIS

Cuprins

Sa facem cunostinta cu NIS

NIS versus NIS+

NIS: Partea de Client



Rularea unui server NIS

Setarea unui client NIS cu NYS

Alegerea map-urilor corecte

Folosirea map-urilor passwd si group

Folosirea NIS cu suport pentru Shadow

Folosirea codului NIS traditional

In cazul unei retele locale (LAN), scopul final este de obicei crearea unui mediu in care utilizatorii sa poata folosi reteaua cat mai transparent. Un pas important in indeplinirea acestui scop este sincronizarea intre host-uri a informatiilor vitale (de exemplu informatiile legate de conturile utilizatorilor). Mai inainte am vazut ca pentru 'host name resolution' exista deja un serviciu puternic si sofisticat -- si anume DNS, dar in alte cazuri nu exista un astfel de serviciu. De asemenea, daca reteaua este mica si nici nu este legata la Internet s-ar putea ca instalarea DNS-ului sa nu merite efortul.

Din aceste motive firma Sun a inventat NIS, Network Information System. NIS ofera functii generice de acces la baze de date care pot fi folosite la distribuirea diferitelor informatii, de pilda cele continute in fisierele passwd si groups, acestea devenind accesibile pentru toate host-urile din retea. Astfel, reteaua apare ca un singur sistem, cu aceleasi conturi pe toate host-urile. In acelasi mod puteti folosi NIS pentru a distribui informatiile din /etc/hosts catre toate calculatoarele din retea.

NIS se bazeaza pe RPC si cuprinde un server, o biblioteca pentru client si cateva utilitare de administrare. Initial NIS era numit Yellow Pages, sau YP, denumire care mai este inca folosita (informal) pentru acest serviciu. Insa Yellow Pages este o marca inregistrata a British Telecom, care a cerut ca Sun sa renunte la nume. In ciuda acestui lucru, oamenii renunta greu la denumirile cu care s-au obisnuit, asa ca YP a ramas prefixul majoritatii comenzilor care se refera la NIS: ypserv, ypbind, etc.

Acum, NIS este disponibil pentru oricine, existind chiar implementari free. Una dintre acestea face parte din BSD Net-2 si se bazeaza pe o implementare pusa la dispozitia publicului larg de catre Sun. Biblioteca pentru client a existat in GNU libc de mult timp, in comparatie cu utilitarele - care au fost portate relativ de curand de catre Swen Thmmler. Din implementarea de referinta lipseste insa serverul NIS. Tobias Reber a scris un alt pachet NIS (numit yps) care include toate utilitarele si un server.

In momentul de fata Peter Eriksson lucreaza la rescrierea completa a codului NIS, redenumit acum NYS, care suporta atat NIS cat si NIS+ (varianta revizuita). NYS nu ofera doar un set de utilitare NIS si un server, ci si un set complet nou de functii de biblioteca; acestea probabil ca vor fi incluse si in varianta standard a libc. Este inclusa si o schema noua de configurare pentru 'hostname resolution' care inlocuieste schema actuala care foloseste host.conf. Aceste functii vor fi descrise mai jos.

In acest capitol accentul va fi pus pe NYS si nu pe celelalte doua pachete care vor fi numite codul NIS ``traditional''. Daca doriti sa utilizati unul dintre acestea doua, instructiunile din acest capitol ar putea fi suficiente, dar s-ar putea si sa nu fie. Pentru informatii suplimentare consultati un manual standard despre NIS, cum este NFS and NIS de Hal Stern (vezi-[]).

NYS este inca in faza de dezvoltare, si de aceea utilitarele standard (de exemplu utilitarele de retea sau programul login) nu cunosc schema de configurare NYS. Atata timp cat NYS nu este inclus in libc va trebui sa recompilati programele care doriti foloseasca NYS. Pentru oricare dintre aceste aplicatii, adaugati in Makefile optiunea -lnsl chiar inainte de libc. Astfel in loc de functiile bibliotecii C standard vor fi link-ate functiile din libnsl -- biblioteca NYS.

Sa facem cunostinta cu NIS

NIS pastreaza informatiile bazei de date in asa numitele map-uri care contin perechi de valori-cheie. Map-urile sunt stocate pe un anumit host pe care ruleaza serverul NIS, de unde clientii pot obtine informatiile prin diferite call-uri RPC. Destul de frecvent, map-urile sunt stocate in fisiere DBM.

Map-urile in sine sunt de obicei generate din fisierele text originale cum sunt /etc/hosts si /etc/passwd. Pentru unele fisiere sunt create mai multe map-uri, cate unul pentru fiecare tip de cheie de cautare. De exemplu, in fisierul hosts se poate cauta fie un host name, fie o adresa IP. Deci in acest caz sunt generate doua map-uri NIS numite hosts.byname si hosts.byaddr. In tabela puteti vedea o lista cu map-urile tipice si fisierele din care sunt generate.

Table: Cateva map-uri NIS standard NIS si fisierele corespunzatoare. ? ? ???????

S-ar putea ca in unele pachete NIS sa gasiti suport si pentru alte fisiere si map-uri. Acestea contin informatii pentru aplicatii care nu sunt abordate in acesta carte, de pilda bootparams folosit de unele servere BOOTP (map-urile corespunzatoare sunt ethers.byname si ethers.byaddr).

De obicei, in loc de unele map-uri se folosesc nicknames (porecle), care sunt mai scurte si mai usor de tastat. Pentru a obtine lista completa a nicknames-urilor recunoscute de utilitarele NIS puteti folosi comanda:

Serverul NIS este numit, prin traditie, ypserv. Intr-o retea de marime medie, un server NIS este in general suficient; in retelele mari insa, se poate sa fie necesare servere diferite pentru diferite hosturi si pentru diferite segmente ale retelei, pentru a nu suprasolicita serverele si routerele. Aceste servere sunt sincronizate: unul este master server, iar celelalte slave servers. Map-urile sunt create numai pe master server si de acolo sunt distribuite pe toate serverele slave.

Trebuie sa fi observat ca pana acum am vorbit foarte vag despre ``retele''; In cadrul retelei, NIS vine cu un concept distinct: domeniul NIS care este totalitatea host-urilor care cu ajutorul NIS distribuie in cadrul retelei o parte din configuratia lor. Domeniile NIS nu au nimic comun cu domeniile intalnite la DNS, asa ca pentru a evita orice ambiguitate, voi specifica de fiecare data la care tip de domeniu ma refer.

Functia domeniilor NIS este una pur administrativa. Ele sunt aproape invizibile pentru utilizatori: acestia nu sezizeaza decat folosirea acelorasi parole pe toate calculatoarele din domeniu. De aceea, numele dat domeniului NIS este important numai pentru administratori. In principiu se poate alege orice nume, cu conditia sa fie unic in cadrul retelei locale. De exemplu, administratorul de la Virtual Brewery ar putea alege sa creeze doua domenii NIS, unul pentru Brewery si altul pentru Winery, pe care le va numi pur si simplu brewery, respectiv winery. Destul de des, domeniul NIS este botezat la fel ca domeniul DNS. Pentru a vedea sau modifica numele domeniului NIS puteti folosi comanda domainname. Daca nu precizati nici un argument, va afisa doar numele curent al domeniului NIS; pentru a schimba acest nume, trebuie sa fiti superuser si sa tastati:

In functie de domeniile NIS se stabileste serverul NIS pe care il poate accesa o aplicatie. De exemplu, programul login de pe un host de la Winery trebuie, desigur, sa ceara informatiile referitoare la parola utilizatorului de la serverul NIS de la Winery (sau de la unul dintre serverele de la Winery, daca sunt mai multe); de asemenea, o aplicatie de pe un host de la Brewery trebuie sa acceseze numai serverul de la Brewery.

Acum nu mai ramane de dezlegat decat un singur mister : cum afla un client la care server sa se conecteze? Cea mai simpla solutie este folosirea unor fisiere de configurare locale, insa acesta solutie nu este flexibila, pentru ca nu permite clientilor sa foloseasca mai multe servere (bineinteles in cadrul aceluiasi domeniu). De aceea, implementarile NIS traditionale folosesc un daemon special - ypbind care detecteaza un server NIS potrivit din cadrul domeniului NIS. Inainte de a specifica orice cerere (query) NIS, aplicatiile trebuie sa afle mai intai de la ypbind ce server sa folosesca.

ypbind detecteaza serverele prin broadcasting pe reteaua IP locala; primul server care raspunde este considerat a fi cel mai rapid si va fi folosit pentru toate query-urile NIS urmatoare. Dupa un anumit timp sau daca serverul nu mai este disponibil, ypbind va incerca iarasi sa gaseasca un server activ.

Aceasta legare dinamica la diverse servere are o serie de aspecte discutabile. In primul rand este rareori necesara, si in plus slabeste gradul de securitate al retelei: ypbind nu e in stare sa deosebeasca un server NIS obisnuit de un intrus rau intentionat. Acesta devine o problema si mai grava daca bazele de date cu parole sunt administrate prin NIS. Din acesta cauza, NYS nu foloseste in mod implicit ypbind, ci citeste hostname-ul serverului dintr-un fisier de configurare.


NIS versus NIS+

NIS si NIS+ au putine lucruri in comun: asemanarea numelor si destinatia. NIS+ este structurat intr-o maniera complet diferita. In locul unui spatiu format din domenii NIS separate, NIS+ foloseste un spatiu ierarhic similar celui folosit de DNS. In locul map-urilor exista asa-numitele tabele constituite din randuri si coloane. Fiecare rand reprezinta un obiect in baza de date NIS+, iar coloanele sunt proprietatile obiectelor gestionate de NIS+. Tabela fiecarui domeniu NIS+ include tabelele domeniilor 'parinte'. De asemenea o inregistrare dintr-o tabela poate contine un link catre o alta tabela. Aceste facilitati ofera posibilitati multiple de organizare a informatiilor.

Varianta traditionala a NIS este versiunea 2 de RPC, in timp ce NIS+ este versiunea 3.

NIS+ nu pare sa fie folosit pe o scara larga, iar eu il cunosc destul de putin. (eh! nu se poate spune ca nu stiu chiar nimic) De aceea nu-l voi aborda in aceasta documentatie. Daca doriti sa aflati mai multe despre NIS+ puteti consulta manualul de administrare NIS+ de la Sun. ([]).


NIS: Partea de Client

Daca sunteti familiarizati cu scrierea sau portarea aplicatiilor de retea veti observa ca majoritatea map-urilor NIS listate mai sus corespund unor functii din biblioteca C. De exemplu, pentru a obtine informatii din passwd se folosesc de obicei functiile getpwnam(3) si getpwuid(3) care returneaza informatiile despre contul unui utilizator regasit dupa user name, respectiv user id. In mod obisnuit aceste functii cauta informatiile dorite in fisierul standard: /etc/passwd.

In cazul unei implementari care utilizeaza NIS, aceste functii vor fi modificate in sensul ca trimit catre serverul NIS un call RPC prin care este localizat numele si id-ul utilizatorului. Acest comportament este total transparent pentru aplicatie. Functia poate fie sa adauge elemente in map-ul NIS, fie sa inlocuiasca cu totul fisierul original. Bineinteles, nu are loc o modificare reala a fisierului, ci doar este creata iluzia ca acesta a fost inlocuit sau modificat.

In implementarile NIS traditionale existau mai multe conventii referitoare la care map-uri inlocuiesc si care se adauga la informatiile originale. Unele, cum sunt map-urile passwd, necesitau modificari ale fisierului passwd care daca nu erau facute corect afectau serios securitatea sistemului. Pentru a evita aceste capcane, NYS foloseste o schema generala de configurare care determina daca pentru un set de functii client de folosesc fisierele originale, NIS, sau NIS+, si in ce ordine. Capitolul curent include o sectiune speciala despre aceasta chestiune.



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 848
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved