NIS - Síťový informační systém

PIT

Počítačové sítě

Různé

Zuzana Machackova 2001-12-11

Původní dokument pochází z adresy http://fdmech.fd.cvut.cz/nastenka/Linux-seminar/reports/NFS/

Co je NIS

NIS je poměrně složitý, ale velmi pružný a univerzální systém pro zpracování databázových údajů o uživatelích, skupinách, souborových systémech, apod. Je schopen zpracovávat databáze roztroušené po celé síti a jeho cílem je zjednodušit správu počítačové sítě. Umožňuje, aby se informace o uživatelských účtech (které jsou uloženy v souboru /etc/passwd) udržovaly na jediném serveru a aby se s nimi jednoduše manipulovalo.

Síťový informační systém poskytuje prostředky pro obecný přístup k databázím, které lze využít k šíření informací všem hostitelům v síti. To umožňuje, aby síť vypadala jako jediný systém se stejnými účty na všech hostitelích. Podobným způsobem je možné používat systém NIS k šíření informací o hostitelích, které jsou uloženy v souboru /etc/hosts, na všechny počítače v síti.

Systém NIS je založen na balíku RPC a skládá se ze serveru, z knihovny na straně klienta a z několika administrativních nástrojů. Tento systém vyvinula firma Sun. Původně se systém NIS nazýval Yellow pages (Žluté stránky), neboli YP. Toto označení se ještě stále používá jako informativní odkaz na tuto službu. Yellow pages jsou ovšem ochrannou známkou společnosti British Telecom, která požadovala po firmě Sun, aby tento název přestala používat. I s odstupem času však zůstaly některé názvy zakořeněny a zkratka YP se proto stále používá jako prefix názvů většiny příkazů, které se vztahují k sytému NIS, například ypserv, ypbind apod.

Pro operační systém Linux existuje více implementací systému NIS. Tzv. tradiční implementace, implementace NIS+ a zvláštní implementace označovaná jako NYS.

Kód pro klienta v tradiční implementaci je součástí standardní knihovny pro jazyk C a je již instalován na většině systémů Linux.

NIS+

Systém NIS+ je strukturován zcela odlišným způsobem. Místo přímého jmenného prostoru s oddělenými doménami systému NIS používá hierarchický prostor s názvy, který je podobný jmennému prostoru systému DNS. Místo map jsou používány tzv. tabulky, které jsou složeny z řádků a sloupců, kde každý řádek reprezentuje objekt databáze systému NIS+, zatímco sloupce obsahují vlastnosti objektů, které systém NIS+ zná a o něž se stará. Každá tabulka příslušné domény systému NIS+ v sobě zahrnuje i tabulky svých rodičovských domén. Mimoto může položka v tabulce obsahovat spojení na další tabulku. Tyto vlastnosti umožňují strukturovat informace mnoha způsoby.

NYS

NYS podporuje jak holý systém NIS, tak i mnohem dokonalejší systém NIS. Balík NYS neposkytuje pouze množinu nástrojů a server, ale přidává do knihovny také celou novou sadu funkcí, které se časem zřejmě stanou součástí standardní knihovny libc. Tyto funkce obsahují nové konfigurační schéma pro rozlišování názvů hostitelů, které nahrazuje současné schéma používající soubor host.conf.

Konfigurace

V rámci konfigurace systému NIS můžeme specifikovat servery NIS, podřízené počítače a klienty. Servery jsou počítače, z nichž pocházejí databáze NIS. Podřízené počítače jsou počítače, kam server kopíruje své databáze. Klienti NIS jsou počítače, které požadují databázové informace ze serverů a z podřízených počítačů. Pořízené počítače existují proto, aby se snížilo zatížení serverů NIS. Jestliže nejsou v  konfiguraci systému NIS podřízené počítače nastaveny, pak jsou všechny požadavky na systém NIS obsluhovány z jediného počítače.

Systém NIS uchovává databázové informace v tzv. mapách, které obsahují páry klíčových hodnot. Mapy jsou uloženy na centrálním hostiteli, na němž běží systém NIS a z něhož mohou klienti získávat informace pomocí různých volání procedur RPC. Poměrně často bývají mapy uloženy v souborech DBM.

Vlastní mapy jsou obvykle generovány z hlavních textových souborů, jako jsou například soubory /etc/hosts nebo /etc/passwd. Pro některé soubory se vytvoří několik map, pro každý typ vyhledávacího klíče se vždy vytvoří jedna mapa. Například v souboru hosts můžete hledat jak název hostitele, tak i IP-adresu. Z tohoto souboru budou takto odvozeny dvě mapy, které se budou nazývat hosts.byname, resp. hosts.byaddr.

Příklady běžně se vyskytujících map společně se soubory, ze kterých byly vygenerovány:

/etc/hostshosts.bynamehosts.byaddr
/etc/networksnetworks.bynamenetworks.byaddr
/etc/passwdpasswd.bynamepasswd.byuid
/etc/groupgroup.bynamegroup.bygid
/etc/servicesservices.bynameservices.bynumber
/etc/rpcrpc.bynamerpc.bynumber
/etc/protocolsprotocols.bynameprotocols.bynumber
/usr/lib/aliasesmail.aliases

Pro některé mapy se používají přezdívky, které jsou kratší a z tohoto důvodu se lépe píší. Kompletní seznam přezdívek, kterým nástroje systému NIS rozumí, se spustí příkazem:

$ ypcat -x

Při vytváření systému NIS je nutné nejprve vymezit doménu, v níž bude systém působit. Její jméno nemusí být shodné se jménem oblasti pro systém DNS. Doménové jméno se nastavuje prostřednictvím příkazu dommainname.

Tyto domény určují, na který server se budou aplikace dotazovat. Pokud je v dané doméně více serverů, spoléhají tradiční implementace systému NIS na speciálního démona nazývaného ypbind, který detekuje vhodný server NIS v jejich doméně systému NIS.

Démon ypbind prozkoumává servery za pomoci vysílání do místní sítě IP; první, kdo odpoví, je považován za potenciálně nejrychlejší server, a proto bude použit pro všechny následující dotazy systému NIS. Po uplynutí určité doby nebo dojde-li k přerušení spojení se serverem, začne démon ypbind znovu prozkoumávat aktivní servery.

Toto přináší bezpečnostní riziko, protože démon ypbind uvěří každému, kdo odpoví.

Proto nepoužívá balík NYS implicitně démona ypbind, ale název hostitele serveru přebírá z konfiguračního souboru.

Literatura:

  1. Linux, dokumentační projekt (http://www.nuc.elf.stuba.sk/lit/ldp/index.htm)
  2. Matt Welsh, Lar Kaufman: Používáme Linux, Computer Press, 1997
Návrat na hlavní stránku Prostředky informačních technologií