![]() | |
Jak na Internet server ? (3)
Domain Name Service Osobně sice nepovažuji příkaz 'telnet 200.0.5.65' za nic krkolomného (sám často IP adresy takto používám), ale uživatelé mohou mít na celou věc jiný názor. Proto vznikl hostlist, soubor, v němž jsou uvedena jména počítačů a k nim náležící IP adresy. Na unixových systémech bývá hostlistem soubor /etc/hosts, na počítačích s OS/2 bývá hostlistem soubor X:\TCPIP\ETC\hosts nebo ve X:\MPTN\ETC\hosts, na počítačích s MS-Windows pak X:\WINDOWS\hosts, kde X: je systémový disk. Takhle by mohl vypadat hostlist pro uvedenou síť:
200.0.5.66 pc1 Pomocí tohoto hostlistu je možné výše uvedený příkaz 'telnet 200.0.5.65' nahradit příkazem 'telnet' 'server'. Uvádět druhé a případná další síťová rozhraní serveru je naprosto zbytečné. Tento soubor by pak měl být uložen na všech počítačích na této síti - už to je však poněkud nepraktické, neboť např. po přidání jednoho počítače do domény by bylo třeba updatovaný soubor na všechny počítače v síti znovu nakopírovat. V takhle malé síti to ještě není takový problém, ale představte si síť s tisíci počítači, nebo třeba celý Internet. Navíc v takových sítích by hostlist nabíral takovou velikost, že byste si na něj museli koupit celé diskové pole... Proto vznikl systém DNS, Domain Name Service (poněkud kostrbatý překlad Jmenná služba používat raději ani nebudu). DNS nás zbavuje všech nevýhod hostlistu, je však mnohem složitější (a to i na pochopení). Základem celé služby DNS je nameserver. Nameserverem je myšlen počítač, na němž běží DNS program (jehož nejčastější implementace je známá pod názvem BIND, což ovšem nemá nic společného s přivazováním a provazy, ale je to zkratka z Berkeley Internet Name Domain. Většinou se ale onen program jmenuje 'named'. Služby DNS využívají TCP/IP portů (socketů) 42 a 53. Nameserveru se ptá na adresu IP počítače se specifikovaným jménem program zvaný resolver - ten je již téměř vždy součástí stacku TCP/IP, takže se o něj nemusíte starat. Konfigurační soubor od resolveru je na Unixu /etc/resolv.conf, v OS/2 X:\TCPIP\BIN\resolv, popř. X:\MTPN\BIN\resolv, v MS-Windows bývá konfigurace resolveru sice uvedena jinak, ale nakonec se stejně generuje soubor X:\WINDOWS\resolv, kde X: je jméno systémového disku. Formát souboru resolv je následující: domain domena.cz
nameserver 200.0.5.65 Vždy první je uvedeno jméno domény, dále pak primární nameserver a případně též další sekundární nameservery. Adresa nameserveru 'musí' být číselná (jinak by šlo o klasický rekurzivní deadlock, protože pak nelze získat IP adresu serveru, neboť nelze získat IP adresu serveru, jelikož nelze získat IP adresu serveru atd...). Resolver se ptá na IP adresu počítače ve zmíněné doméně na serveru uvedeného vždy pro danou doménu na prvním místě, nedostane-li se mu odpovědi, ptá se dalšího atd. Pokud se resolver táže na jméno počítače, jehož doména není v resolv.conf uvedena, táže se prvního nameserveru, který v resolv.conf najde, pokud se mu nepodaří se spojit se serverem, vznáší dotaz na další nameserver atd. Tolik o části klientské, která je relativně jednoduchá, nyní přijde na řadu část serverová. V principu rozlišujeme tři druhy nameserverů, které, ač se neliší běžícím softwarem, liší se funkcí - nameservery primární, sekundární a nameservery cache only. Primární nameserver je pro každou doménu jen jeden a obsahuje celý DNS záznam své domény (nebo více domén, neboť jakýkoli nameserver může spravovat libovolné množství domén - resp. omezení jsou jen hardwarového rázu). Sekundární nameservery kopírují z primárního nameserveru tyto záznamy o spravovaných doménách a cache-only nameservery slouží jen jako cache - zaznamenávají si přístupy a získání adresy z doménového jména urychlují - nutno podotknout, že tuto činnost konají i ostatní nameservery, když přes ně nějaký DNS záznam putuje. A jak takový nameserver nastavit ? Dále ukáži soubor named.boot, používaný programem named/BIND, pro primární server domény domena.cz a pro sekundární server domény druha_domena.cz:
![]() Nyní si definujeme DNS záznam naší domény (soubor domena.cz.db):
![]() Konfigurační záznam domény druha_domena.cz musí být přítomen na primárním nameserveru domény druha_domena.cz, odkud si jej náš server sám automaticky převezme, a naopak, případný sekundární nameserver si převezme DNS záznam naší domény z našeho primárního nameserveru. Pro jednoduchost neuvádím nastavení reverzního nameserveru - pokud dokážete nastavit nameserver, pak reverzní nameserver dáte dohromady také. Jen pro informaci - DNS server nemusí pracovat jen v síti zapojené do Internetu, ale i v síti, která v Internetu není, popř. v síti, která je za firewallem. Zde si musíte server nastavit jako kořenový, což vcelku není problém, jen je potřeba opět číst dokumentaci. Zbyněk Pospíchal
|