Vyšlo v týdeníku CHIPweek č. 31/96, 31. července 1996
Vytištěno z adresy: http://www.earchiv.cz/a96/a631k130.php3

Name server

Uživatelé dnešního Internetu jsou zvyklí zapisovat adresy nejrůznějších uzlů, serverů apod. v symbolickém tvaru, prostřednictvím tzv. doménových jmen - například www.whitehouse.gov, fenrir.psp.cz, frode.dcit.cz apod. Ve skutečnosti ale Internet ke svému fungování doopravdy používá číselné adresy, tzv. IP adresy, v rozsahu 32 bitů. K tomu, aby oba druhy adres (symbolické doménové a číselné) byly ekvivalentní, a aby mezi nimi existovala možnost efektivního převodu, je nutné zavést mnoho pravidel, zvyků, technik i opatření. Jde vlastně o celou ucelenou koncepci práce se symbolickými jmény a adresami, která musí fungovat i v takovém obrovském měřítku, jaké představuje dnešní Internet. No a takovouto ucelenou koncepcí je systém DNS, o kterém jsme si povídali minule.

V rámci systému DNS jsou například definována pravidla pro vytváření jednotlivých domén, neboli subjektů oprávněných přidělovat symbolická jména v konkrétním okruhu své působnosti (viz CWK 28/96), a současně i oprávněných vytvářet sobě podřízené subdomény, a delegovat jim část své pravomoci k přidělování symbolických jmen. Další důležitou součástí systému DNS jsou pak i převodní mechanismy, které zajišťují převod symbolických jmen doménového typu na jim odpovídající číselné adresy.

Princip takovéhoto převodu je v zásadě velmi jednoduchý - někde musí existovat „převodní tabulka", ve které je napsáno jaká číselná IP adresa odpovídá tomu kterému symbolickému jménu. Takže pro samotný převod se stačí jen podívat do této tabulky. V čem je potom nějaký problém?

Problém je v objemu „převodních tabulek" - ten je tak obrovský, že není možné soustředit příslušná data do jedné jediné „tabulky" (se kterou by se kvůli jejímu objemu ani nedalo rozumně pracovat, nešlo by ji včas aktualizovat atd.). Jedinou možností je zde distribuované řešení, v rámci kterého jsou „převodní informace" uchovávány po menších částech.

Kvůli snadnější aktualizaci se systém DNS snaží udržovat zmíněné převodní informace přímo tam, kde vznikají, a kde také dochází k jejich případným změnám. Těmito místy jsou samotné domény, které symbolická jména přidělují, a které tudíž také rozhodují o tom, jaká číselná IP adresa bude odpovídat tomu kterému symbolickému jménu. Každá doména v rámci systému DNS je proto povinna vést „převodní tabulku" za svůj vlastní okruh působnosti, přesněji převodní tabulku mezi všemi symbolickými jmény které sama přidělila, a jim odpovídajícími IP adresami.

Systém DNS předepisuje i konkrétní formu této „převodní tabulky" - ta není jen pasivní hromadou, ve které by se musel někdo jiný sám přehrabovat a hledat požadované údaje. Místo toho má tato „tabulka" mnohem aktivnější povahu. Je realizována jako server, schopný poskytovat svým klientům určité služby. Tyto služby přitom spočívají v odpovídaní na dotazy týkající se symbolických jmen, zejména dotazů typu „jakou IP adresu má počítač se jménem WWW?". Však také proto se zmíněným serverům říká name servers (v doslovném překladu: servery jmen, jmenné servery), a jejich klientům pak resolvers.

V prvním přiblížení si můžeme představit, že každá doména má právě jeden name server, schopný odpovídat na dotazy týkající se jmen přidělených danou doménou. Jednotlivé name servery jsou přitom mezi sebou vzájemně provázány (prostřednictvím odkazů) takovým způsobem, aby struktura jejich provázání přesně kopírovala vztahy nadřízenosti a podřízenosti - tedy aby každý name server znal adresu (odkaz) na name servery svých podřízených domén (subdomén), a případně i na svou nadřízenou doménu. Pak si ještě představme, že nad name servery všech domén nejvyšší úrovně (TLD domén, viz CWK 29/96) existuje ještě jeden, tzv. kořenový name server (který „zná" všechny name servery TLD domén).

Princip převodu si pak můžeme představit takto: tazatel se obrátí se svým dotazem na kořenový name server. Ten jej podle struktury doménového jména, na které se tazatel ptá, pošle za name serverem příslušné TLD domény (např. kdyby šlo o jméno frode.dcit.cz, pak za name serverem domény cz). Ten se zachová obdobně (se jménem frode.dcit.cz jej pošle za name serverem domény dcit), a takto tazatel pokračuje tak dlouho, než se dostane k name serveru, který už je schopen na jeho konkrétní dotaz odpovědět (v daném případě by to již byl server domény dcit, který přidělil jméno frode).

Potud naše první, principiální představa. Přístě si ji budeme muset poněkud poopravit, protože přesně takto fungující převodní mechanismus by byl hodně neefektivní.