Kapitola 7 Síťová informační služba (NIS) (přehled)
Tato kapitola poskytuje přehled služby Network Information Service (NIS).
NIS je distribuovaná služba pojmenování. Je to mechanismus pro identifikaci a lokalizaci síťových objektů a zdrojů. Poskytuje jednotnou metodu ukládání a získávání informací z celé sítě způsobem nezávislým na transportním protokolu a médiích.
Tato kapitola pokrývá následující témata.
Úvod NIS
Spuštěním NIS může správce systému distribuovat administrativní databáze, nazývané mapy, mezi různé servery (hlavní a podřízené). Správce může aktualizovat tyto databáze z centralizovaného umístění automatickým a spolehlivým způsobem, aby zajistil, že všichni klienti sdílejí stejné informace o pojmenovacích službách konzistentním způsobem v celé síti.
NIS byl vyvinut nezávisle na DNS a má trochu jiné zaměření. Zatímco DNS se zaměřuje na zjednodušení komunikace používáním názvů strojů namísto číselných IP adres, NIS se zaměřuje na to, aby byla správa sítě lépe ovladatelná tím, že poskytuje centralizovanou kontrolu nad různými síťovými informacemi. NIS uchovává informace nejen o názvech a adresách strojů, ale také o uživatelích, síti samotné a síťových službách. Tato kolekce síťových informací se nazývá jmenný prostor NIS.
Poznámka –V některých kontextech jsou názvy počítačů označovány jako názvy hostitelů nebo názvy počítačů. Tato diskuse používá počítač, ale některé zprávy na obrazovce nebo názvy map NIS mohou používat hostitele nebo počítače.
NIS používá uspořádání klient-server. Servery NIS poskytují služby klientům NIS. Hlavní servery se nazývají hlavní servery a kvůli spolehlivosti mají záložní nebo podřízené servery. Hlavní i podřízené servery používají software pro vyhledávání informací NIS a oba ukládají mapy NIS.
NIS používá domény k uspořádání počítačů, uživatelů a sítí ve svém jmenném prostoru. Nepoužívá však hierarchii domény; jmenný prostor NIS je plochý.
Táto fyzická síť by tedy byla uspořádána do jedné domény NIS.
Doménu NIS nelze připojit přímo k internetu pouze pomocí NIS. Organizace, které chtějí používat NIS a zároveň být připojeny k internetu, však mohou NIS kombinovat s DNS. Pomocí NIS můžete spravovat všechny místní informace a používat DNS pro vyhledávání hostitelů v Internetu. NIS poskytuje službu předávání, která předává vyhledávání hostitelů do DNS, pokud nelze informace nalézt v mapě NIS. Operační prostředí Solaris vám také umožňuje nastavit soubor nsswitch.conf tak, aby požadavky na vyhledávání hostitelů směřovaly pouze do DNS, nebo do DNS a poté do NIS, pokud je DNS nenalezlo, nebo do NIS a poté do DNS, pokud je NIS nenalezne. Podrobnosti naleznete v kapitole 2, Přepínač jmenné služby (přehled).
Typy strojů NIS
Existují tři typy počítačů NIS.
Hlavní server
Podřízené servery
Klienti serverů NIS
Jakýkoli počítač může být klientem NIS, ale pouze počítače s disky by měly být servery NIS, ať už hlavní nebo podřízené. Servery jsou také klienty, obvykle samy o sobě.
Server NIS nemusí být stejný počítač jako souborový server NFS.
Servery NIS se dodávají ve dvou variantách, master a slave. Stroj označený jako hlavní server obsahuje sadu map, které správce systému vytváří a podle potřeby aktualizuje. Každá doména NIS musí mít jeden a pouze jeden hlavní server, který může šířit aktualizace NIS s nejmenším snížením výkonu.
Jako podřízené servery můžete určit další servery NIS v doméně. Podřízený server má úplnou kopii hlavní sady map NIS. Kdykoli se aktualizují mapy hlavního serveru, aktualizace se rozšíří mezi podřízené servery. Slave servery dokážou zpracovat jakékoli přetečení požadavků z hlavního serveru, čímž se minimalizují chyby typu „server nedostupný“.
Za normálních okolností správce systému určí jeden hlavní server pro všechny mapy NIS. Protože však každá jednotlivá mapa NIS má v sobě zakódovaný název hlavního serveru, můžete určit různé servery, které budou fungovat jako hlavní a podřízené servery pro různé mapy. Chcete-li minimalizovat zmatky, určete jeden server jako hlavní pro všechny mapy, které vytvoříte v rámci jedné domény. Příklady v této kapitole předpokládají, že jeden server je hlavním serverem pro všechny mapy v doméně.
Klienti NIS spouštějí procesy, které požadují data z map na serverech. Klienti nerozlišují mezi hlavními a podřízenými servery, protože všechny servery NIS by měly mít stejné informace.
Prvky NIS
Služba pojmenování NIS se skládá z následujících prvků:
Doména NIS je kolekce počítačů, které sdílejí společnou sadu map NIS. Každá doména má název domény a každý počítač sdílející společnou sadu map patří do této domény.
Do dané domény může patřit jakýkoli počítač, pokud je ve stejné síti server pro mapy této domény. Klientský počítač NIS získá název své domény a připojí se k serveru NIS jako součást procesu spouštění.
Službu NIS poskytuje pět démonů, jak ukazuje Tabulka 7–1.
Tabulka 7–1 Démoni NIS
Démon
Funkce
ypserv
Proces serveru
ypbind
Proces vázání
ypxfrd
Vysokorychlostní přenos map
rpc.yppasswdd
Démon aktualizace hesla NIS
** Viz POZNÁMKA níže.**
rpc.ypupdated
Upraví další mapy, jako je publickey
Poznámka –
rpc.yppasswdd považuje všechny shelly začínající na r za omezené. To znamená, že uživatelé, kteří mají shell začínající na r. Pokud se například nacházíte v /bin/rksh, nemůžete přejít z tohoto shellu na jiný. Pokud máte shell, který začíná na r, ale není zamýšleno jako omezení, podívejte se do kapitoly 10, Odstraňování problémů NIS pro řešení.
Službu NIS podporuje devět nástrojů, jak ukazuje Tabulka 7–2.
Tabulka 7–2 Nástroje NIS
Nástroj
Funkce
makedbm
Vytvoří soubor dbm pro mapu NIS
ypcat
Uvádí data na mapě
ypinit
Vytvoří a nainstaluje databázi NIS a inicializuje seznam ypserverů klienta NIS.
ypmatch
Najde konkrétní položku na mapě
yppoll
Získá číslo objednávky mapy ze serveru
yppush
Šíří data z hlavního serveru NIS na podřízený server NIS
ypset
Nastaví vazbu na konkrétní server
yp which
Uvádí název serveru NIS a tabulku překladu přezdívek
ypxfr
Přenáší data z hlavního na podřízený server NIS
Informace v mapách NIS jsou uloženy ve formátu ndbm. ypfiles(4) a ndbm(3C) vysvětlují formát souboru mapy.
Mapy NIS byly navrženy tak, aby nahradily soubory UNIX /etc a další konfigurační soubory, takže ukládají mnohem více než jen jména a adresy. V síti se systémem NIS udržuje hlavní server NIS pro každou doménu NIS sadu map NIS pro ostatní počítače v doméně, aby se mohly dotazovat. Podřízené servery NIS také udržují duplikáty map hlavního serveru. Klientské počítače NIS mohou získávat informace o jmenném prostoru buď z hlavního nebo podřízeného serveru.
Mapy NIS jsou v podstatě tabulky se dvěma sloupci. Jeden sloupec je klíč a druhý sloupec jsou informace související s klíčem. NIS najde informace pro klienta prohledáváním klíčů. Některé informace jsou uloženy v několika mapách, protože každá mapa používá jiný klíč. Například názvy a adresy počítačů jsou uloženy ve dvou mapách: hosts.byname a hosts.byaddr. Když má server název počítače a potřebuje najít jeho adresu, podívá se na mapu hosts.byname. Když má adresu a potřebuje najít jméno, podívá se na mapu hosts.byaddr.
Soubor NIS Makefile je uložen v adresáři /var/yp počítačů označených jako server NIS v době instalace. Spuštění make v tomto adresáři způsobí, že makedbm vytvoří nebo upraví výchozí mapy NIS ze vstupních souborů.
Poznámka –Vždy vytvářejte mapy na hlavním serveru, protože mapy vytvořené na podřízeném serveru nebudou automaticky odeslány na hlavní server.
V operačním prostředí Solaris je k dispozici výchozí sada map NIS. Možná budete chtít použít všechny tyto mapy nebo jen některé z nich. NIS může také použít jakékoli mapy, které vytvoříte nebo přidáte při instalaci jiných softwarových produktů.
Výchozí mapy pro doménu NIS jsou umístěny v adresáři /var/yp/domainname každého serveru. Například mapy, které patří do domény test.com, jsou umístěny v adresáři /var/yp/test.com každého serveru.
Tabulka 7–3 popisuje výchozí mapy NIS, informace, které obsahují, a to, zda software nahlíží do odpovídajících administrativních souborů, když je NIS spuštěn.
Tabulka 7–3NIS Popisy map
Název mapy
Odpovídající soubor správce NIS
Popis
spouštěcí parametry
spouštěcí parametry
Obsahuje názvy souborů, které klienti potřebují během spouštění: root, swap, případně další.
ethers.byaddr
ethery
Obsahuje názvy počítačů a ethernetové adresy. Ethernetová adresa je klíčem na mapě.
ethers.byname
ethery
Stejné ethers.byaddr, kromě toho, že klíčem je místo ethernetové adresy název počítače.
group.bygid
skupina
Obsahuje informace o zabezpečení skupiny s ID skupiny jako klíčem.
group.byname
skupina
Obsahuje informace o zabezpečení skupiny s názvem skupiny jako klíčem.
hosts.byaddr
hostitelé
Obsahuje název počítače a adresu IP, přičemž klíčem je adresa IP.
hosts.byname
hostitelé
Obsahuje název počítače a adresu IP, přičemž klíčem je název počítače (hostitele).
mail.aliasy
aliasy
Obsahuje aliasy a e-mailové adresy s aliasy jako klíčem.
mail.byaddr
aliasy
Obsahuje e-mailovou adresu a alias s e-mailovou adresou jako klíčem.
netgroup.byhost
netgroup
Obsahuje název skupiny, uživatelské jméno a název počítače.
netgroup.byuser
netgroup
Stejné jako netgroup.byhost, kromě toho, že klíčem je uživatelské jméno.
netgroup
netgroup
Stejné jako netgroup.byhost, kromě toho, že klíčem je název skupiny.
netid.byname
passwd, hostitelé
skupina
Používá se pro ověřování ve stylu UNIX. Obsahuje název stroje a poštovní adresu (včetně názvu domény). Pokud je k dispozici soubor netid, je konzultován kromě údajů dostupných prostřednictvím jiných souborů.
masky sítě.byaddr
síťové masky
Obsahuje masku sítě, která se má použít při odesílání IP, s adresou jako klíčem.
networks.byaddr
sítě
Obsahuje názvy sítí, které váš systém zná, a jejich IP adresy s klíčem adresy.
networks.byname
sítě
Stejné jako networks.byaddr, kromě toho, že klíčem je název sítě.
passwd.adjunct.byname
heslo a stín
Obsahuje informace o auditu a skryté informace o hesle pro klienty C2.
passwd.byname
heslo a stín
Obsahuje informace o hesle s uživatelským jménem jako klíčem.
passwd.byuid
heslo a stín
Stejné jako passwd.byname, kromě toho, že klíč je ID uživatele.
protocols.byname
protokoly
Obsahuje síťové protokoly známé vaší síti.
protokoly.byčíslo
protokoly
Stejné jako protocols.byname, kromě toho, že klíč je číslo protokolu.
rpc.bynumber
rpc
Obsahuje číslo programu a název RPC známých vašemu systému. Klíč je číslo programu RPC.
services.byname
služby
Uvádí seznam internetových služeb, které vaše síť zná. Klíčem je port nebo protokol.
services.byservice
služby
Uvádí seznam internetových služeb, které vaše síť zná. Klíč je název služby.
ypservery
Není k dispozici
Uvádí seznam serverů NIS, které vaše síť zná.
Do NIS jsou přidány nové mapy ipnodes (ipnodes.byaddr a ipnodes.byname). Mapy ukládají adresy IPv4 i IPv6. Viz manuálová stránka ipnodes(4). Klienti a servery NIS mohou komunikovat pomocí přenosů RPC IPv4 nebo IPv6.
NIS umožňuje aktualizaci síťových databází mnohem jednodušší než se systémem souborů /etc. Již nemusíte měnit administrativní soubory /etc na každém počítači pokaždé, když změníte síťové prostředí.
Když například přidáte nový počítač do sítě se systémem NIS, stačí aktualizovat vstupní soubor na hlavním serveru a spustit make. Tím se automaticky aktualizují mapy hosts.byname a hosts.byaddr. Tyto mapy jsou poté přeneseny na libovolné podřízené servery a jsou zpřístupněny všem klientským počítačům domény a jejich programům. Když klientský stroj nebo aplikace požaduje název nebo adresu stroje, server NIS se podle potřeby odkáže na mapu hosts.byname nebo hosts.byaddr a odešle požadované informace klientovi.
K zobrazení hodnot v mapě můžete použít příkaz ypcat. Základní formát ypcat je následující.
kde název mapy je název mapy, kterou chcete prozkoumat, nebo její přezdívka. Pokud se mapa skládá pouze z klíčů, jako v případě ypserverů, použijte ypcat -k. Jinak ypcat vytiskne prázdné řádky. Manuálová stránka ypcat(1) popisuje další možnosti pro ypcat.
Příkaz ypwhich můžete použít k určení, který server je hlavním serverem konkrétní mapy. Zadejte následující.
kde název mapy je název nebo přezdívka mapy, jejíž předlohu chcete najít. yp which odpoví zobrazením názvu hlavního serveru. Úplné informace naleznete na manuálové stránce ypwhich(1).
Přezdívky jsou aliasy pro úplné názvy map. Chcete-li získat seznam dostupných přezdívek mapy, jako je passwd pro passwd.byname, zadejte ypcat -x nebo ypwhich -x.
Přezdívky jsou uloženy v souboru /var/yp/nicknames, který obsahuje přezdívku mapy následovanou plně specifikovaným názvem mapy odděleným mezerou. Tento seznam lze přidat nebo upravit. V současné době je limit 500 přezdívek.
Služba NIS zahrnuje specializované démony, systémové programy a příkazy, které jsou shrnuty v následující tabulce.
Tabulka 7–4 Souhrn příkazů NIS
Příkaz
Popis
ypserv
Služby požadavků klientů NIS na informace z mapy NIS. ypserv je démon, který běží na serverech NIS s kompletní sadou map. Aby služba NIS fungovala, musí být v síti přítomen alespoň jeden démon ypserv.
ypbind
Poskytuje klientům informace o vazbě serveru NIS. Poskytuje vazbu nalezením procesu ypserv, který obsluhuje mapy v doméně žádajícího klienta. ypbind musí běžet na všech serverech a klientech.
ypinit
Automaticky vytvoří mapy pro server NIS ze vstupních souborů. Používá se také k vytvoření počátečního souboru /var/yp/binding/domain/ypservers na klientech. Použijte ypinit k prvnímu nastavení hlavního serveru NIS a podřízených serverů NIS.
vyrobit
Aktualizuje mapy NIS přečtením souboru Makefile (při spuštění v adresáři /var/yp). Pomocí make můžete aktualizovat všechny mapy na základě vstupních souborů nebo aktualizovat jednotlivé mapy. Manuálová stránka ypmake(1M) popisuje funkčnost make pro NIS.
makedbm
makedbm vezme vstupní soubor a převede ho na soubory dbm.dir a dbm.pag – platné soubory dbm, které může NIS použít jako mapy. K rozebrání mapy můžete také použít makedbm -u, abyste viděli páry klíč–hodnota, které ji tvoří.
ypxfr
Natáhne mapu NIS ze vzdáleného serveru do místního adresáře /var/yp/domain, přičemž jako přenosové médium použije samotný NIS. Ypxfr můžete spouštět interaktivně nebo pravidelně ze souboru crontab. Je také volán ypserv k zahájení přenosu.
ypxfrd
Poskytuje službu přenosu map pro požadavky ypxfr (obecně podřízené servery). Spouští se pouze na hlavním serveru.
yppush
Zkopíruje novou verzi mapy NIS z hlavního serveru NIS na jeho podřízené jednotky. Spustíte ji na hlavním serveru NIS.
ypset
Říká procesu ypbind, aby se svázal s pojmenovaným serverem NIS. Toto není pro příležitostné použití a jeho použití se nedoporučuje kvůli bezpečnostním důsledkům. Informace o možnostech ypset a ypsetme pro proces ypbind najdete na manuálových stránkách ypset(1M) a ypbind(1M).
yppoll
Říká, která verze mapy NIS běží na serveru, který určíte. Uvádí také hlavní server pro mapu.
ypcat
Zobrazuje obsah mapy NIS.
ypmatch
Vytiskne hodnotu pro jeden nebo více zadaných klíčů v mapě NIS. Nemůžete určit, kterou verzi mapy serveru NIS vidíte.
yp which
Ukazuje, který server NIS klient v současné době používá pro služby NIS, nebo, pokud je vyvolán volbou -m název mapy, který server NIS je master každé z map. Pokud je použit pouze -m, zobrazí se názvy všech dostupných map a jejich příslušných hlavních serverů.
Vazba NIS
Klienti NIS získávají informace ze serveru NIS prostřednictvím procesu vazby, který může pracovat v jednom ze dvou režimů: server-list nebo broadcast.
Seznam serverů. V režimu seznamu serverů se proces ypbind dotáže na seznam /var/yp/binding/domain/ypservers na jména všech serverů NIS v doméně. Proces ypbind se váže pouze na servery v tomto souboru. Soubor se vytvoří spuštěním ypinit -c.
Vysílání. Proces ypbind může také použít vysílání RPC k zahájení vazby. Protože vysílání jsou pouze události místní podsítě, které nejsou dále směrovány, musí existovat alespoň jeden server (master nebo slave) ve stejné podsíti jako klient. Samotné servery mohou existovat v různých podsítích, protože šíření map funguje přes hranice podsítě. V prostředí podsítě je jednou z běžných metod udělat ze směrovače podsítě server NIS. To umožňuje doménovému serveru obsluhovat klienty na kterémkoli rozhraní podsítě.
Proces vazby v režimu seznamu serverů funguje následovně:
Jakýkoli program běžící na klientském počítači NIS, který potřebuje informace poskytované mapou NIS, požádá ypbind o název serveru.
ypbind hledá v souboru /var/yp/binding/domainname/ypservers seznam serverů NIS pro danou doménu.
ypbind zahájí vazbu na první server v seznamu. Pokud server neodpovídá, ypbind zkouší druhý a tak dále, dokud server nenajde nebo nevyčerpá seznam.
ypbind říká procesu klienta, se kterým serverem má mluvit. Klient poté odešle požadavek přímo na server.
Démon ypserv na serveru NIS zpracuje požadavek nahlédnutím do příslušné mapy.
ypserv odešle požadované informace zpět klientovi.
Proces vazby režimu vysílání funguje následovně:
ypbind musí být spuštěn s nastavenou možností vysílání (vysílání).
ypbind vydává vysílání RPC při hledání serveru NIS.
Poznámka –Pro podporu takových klientů je nutné mít server NIS v každé podsíti vyžadující službu NIS.
ypbind zahájí vazbu na první server, který odpoví na vysílání.
ypbind říká procesu klienta, se kterým serverem má mluvit. Klient poté odešle požadavek přímo na server.
Démon ypserv na serveru NIS zpracuje požadavek nahlédnutím do příslušné mapy.
ypserv odešle požadované informace zpět klientovi.
Za normálních okolností, jakmile je klient připojen k serveru, zůstává s tímto serverem vázán, dokud něco nezpůsobí jeho změnu. Pokud například server přestane fungovat, klienti, které obsluhoval, se navážou na nové servery.
Chcete-li zjistit, který server NIS aktuálně poskytuje služby konkrétnímu klientovi, použijte následující příkaz.
%ypkterý název počítače
Kde machinename je jméno klienta. Pokud není uvedeno žádné jméno počítače, ypwhich je výchozí místní počítač (tj. počítač, na kterém je příkaz spuštěn).
Rozdíly mezi NIS Solaris 2.6 NIS a dřívějšími verzemi NIS
Následující funkce NIS jsou v systému Solaris 2.6 nové nebo odlišné.
Nejnovější verze Solaris nezahrnují službu NIS. Doposud musela být služba NIS instalována z uvolněného NSKit. NIS byl nyní zahrnut do Solaris 2.6 a neexistuje žádný 2.6 NSKit.
Protože služba NIS je nyní součástí Solaris 2.6, balíčky SUNWnsktu a SUNWnsktr již neexistují. Místo toho se NIS nyní instaluje prostřednictvím clusteru serveru NIS (obsahujícího balíčky SUNWypu a SUNWypr).
Služba NIS se již nespouští pomocí skriptu /etc/init.d/yp, který již neexistuje. V systému Solaris 2.6 nejprve nakonfigurujete mapy NIS hlavního serveru pomocí skriptu ypinit a poté spustíte NIS pomocí ypstart. Služba NIS je zastavena příkazem ypstop.
Nejnovější verze NSKit neobsahovaly démona ypupdated. Démon ypupdated je nyní součástí tohoto vydání Solaris.
Stejně jako u předchozí verze NSKit se nyní k omezení přístupu ke službám NIS používá soubor /var/yp/securenets. Pokud takový soubor existuje na serveru NIS, server pouze odpovídá na dotazy nebo dodává mapy počítačům a sítím, jejichž IP adresy jsou uvedeny v souboru. Formát souboru viz securenets(4).
Následuje příklad souboru securenets.
255.255.255.10 192.168.0.1host13.13.14.1host13.13.14.2kde 255.255.255.10 je síťová maska a 13.13.13.255 je síťová adresa. Pro nastavení na řádku 1 ypserv odpovídá pouze na adresy v podsíti v rozsahu 13.13.13.255.
Pokud upravíte položky v souboru /var/yp/securenets, musíte zabít a restartovat démony ypserv a ypxfrd.
Stejně jako u předchozí verze NSKit poskytuje proces ypserv podporu pro počítače, které mají více než jednu síťovou adresu. Když jsou vytvořeny mapy strojů, Makefile vytvoří v mapě položku YP_MULTI_HOSTNAME pro jakýkoli stroj, který má více než jednu adresu. Tato položka uvádí všechny adresy pro tento stroj. Když je potřeba adresa stroje, pokusí se použít nejbližší adresu v seznamu. Další podrobnosti najdete na manuálové stránce ypserv.
Určení nejbližší adresy je aritmetické a jako takové neexistuje žádná kontrola platnosti adresy. Předpokládejme například, že počítač s více adresami má šest adres IP a pouze pět rozhraní na počítači funguje normálně. Počítače v síti, které nejsou přímo připojeny k tomuto počítači s více adresami, mohou od ypserv obdržet IP adresu pro down interface. Tento hypotetický klient tedy nemůže dosáhnout stroje s více adresami.
Poznámka –Všechny adresy pro počítač s více adresami by normálně měly být aktivní. Pokud bude konkrétní adresa nebo stroj mimo provoz, odeberte jej z map NIS.
NIS podporuje konfigurační soubory hesel jak ve formátu hesel SunOS 4 (Solaris 1), tak ve formátu souborů hesel a stínů pro Solaris 2.
Režim činnosti je určen existencí souboru $PWDIR/shadow, kde $PWDIR je makro Makefile nastavené v souboru /var/yp/Makefile. Pokud stínový soubor existuje, NIS pracuje v režimu Solaris 2. Pokud tento soubor neexistuje, NIS pracuje v režimu SunOS 4.
V režimu SunOS 4 jsou všechny informace o hesle uchovávány v souboru passwd. V režimu Solaris 2 jsou informace o hesle uchovávány ve stínovém souboru a informace o uživatelském účtu jsou uchovávány v souboru passwd.
Pokud je makro make PWDIR nastaveno na adresář /etc, NIS může fungovat pouze v režimu Solaris 2 kvůli požadavkům na zpracování Solaris 2 passwd. Pokud však PWDIR ukazuje na jakýkoli jiný adresář než /etc, uživatel má možnost ponechat konfigurační soubory passwd buď ve formátu SunOS 4 nebo ve formátu Solaris 2. Démon rpc.yppasswdd rozumí oběma formátům hesel. Doporučuje se formát Solaris 2.
PREV: Jak nastavit virtuální hostování na základě IP a portů (Vhosts) s...