Vyšlo v týdeníku Computerworld č. 44/92 v roce 1992
Vytištěno z adresy: http://www.earchiv.cz/a92/a244c110.php3

Jména v TCP/IP sítích - I.

V minulých dílech našeho seriálu jsme si ukázali, že v sítích na bázi protokolů TCP/IP (a samozřejmě také v Internetu) se používají jednotné IP adresy číselného charakteru, a že také veškeré směrování je založeno právě na těchto adresách. Jakkoli jsou ale tyto číselné adresy vhodné pro příslušný síťový software, pro uživatele příliš výstižné nejsou. Lidé raději pracují se snáze zapamatovatelnými symbolickými jmény, například "aviion.mff.cuni.cs", než s málo mnemonickými číselnými adresami typu 129.1.2.3. Jak je to ale s možností používat takováto symbolická jména v TCP/IP sítích?

Zamysleme se nejprve znovu nad tím, co je vlastně IP adresa. Ve 44. dílu jsme dospěli k tomu, že IP adresa je dvousložková, a že její dvě složky reprezentují jednak adresu dílčí sítě, jednak adresu hostitelského počítače (resp. brány) v této dílčí síti. Hostitelské počítače však mohou být přímo připojeny i do dvou či více dílčích sítí (pak jsou v angličtině označovány jako multihomed hosts), a brány dokonce musí být takto připojeny nejméně do dvou sítí, mají-li vůbec fungovat jako brány. Pak ovšem mají také dvě či více různých IP adres. Domyslíme-li tuto skutečnost do důsledku, je přesnější chápat IP adresu nikoli jako adresu počítače resp. brány jako takové, ale jako rozhraní mezi sítí a hostitelským počítačem resp. bránou. Navíc, dojde-li k přemístění počítače či brány, jejich IP adresy se změní.

Jména vs. IP adresy

Symbolická jména bran a hostitelských počítačů, která skutečně lze v TCP/IP sítích používat, však nejsou přesným symbolickým ekvivalentem číselných IP adres. Jména se vztahují k počítačům resp. bránám jako takovým, a nikoli k jejich rozhraním. Jeden hostitelský počítač tedy může mít jediné jméno, ale současně více IP adres (je ovšem také možné, aby měl jmen několik). Dojde-li k přitom k přemístění počítače, jeho jméno (či jména) se měnit nemusí (zatímco jeho IP adresa resp. adresy ano).

Otázkou ovšem je, jaký tvar by měla symbolická jména mít, kdo je oprávněn je přidělovat, a jak z těchto jmen získávat jim odpovídající IP adresy, které jsou potřeba pro vlastní komunikaci.

Flat namespace

Je-li třeba přidělit symbolická jména relativně malému počtu hostitelských počítačů a bran, je vše jednoduché - stačí vymyslet dostatečný počet navzájem různých jmen, a ty jednotlivým počítačům a bránám přidělit. Na syntaktický tvar těchto jmen přitom není třeba klást nějaké zvláštní požadavky - samozřejmě kromě jejich jednoznačnosti - a není ani nutné tato jména jakkoli strukturovat či členit na části. Všechna takováto symbolická jména jsou pak považována za dále nedělitelná (v angličtině se říká, že tvoří "flat namespace", doslova: plochý prostor jmen). Udržet takovýto systém dále nedělitelných jmen v konzistentním stavu však vyžaduje existenci centrální autority, která bude dbát na přípustnost nově přidělovaných jmen - hlavně podle toho, jestli nekolidují s některým již přiděleným jménem. Se zvyšováním počtu přidělovaných symbolických jmen však začne narůstat administrativní i technická zátěž této centrální instituce, a problematické se stává i hledání nových, dosud nepoužitých symbolických jmen. V takových kolosech, jako je Internet, se právě naznačené řešení stalo velmi brzy neúnosné.

Hierarchická jména

Je ale vůbec možné obejít se bez centrální instituce, která by dbala na konzistentnost celého systému symbolických jmen? Odpověď je kladná, a spočívá v tom, že právo přidělovat nová jména bude decentralizováno, a s ním i související odpovědnost za jejich jednoznačnost.

Způsob této decentralizace byl inspirován velkými organizacemi, které jsou hierarchicky členěny na různé organizační složky, a ve kterých vyšší složky delegují některé pravomoci složkám nižším. Podobně jsou na více složek členěna i symbolická jména, a tyto jejich složky jsou hierarchicky uspořádány - od nejvyšší až po nejnižší. Za nejvyšší složku stále zodpovídá jediná centrální autorita, ale za složky nižší úrovně již mohou odpovídat jiné subjekty, kterým centrální autorita deleguje příslušnou pravomoc.

Ukažme si to na hypotetickém příkladu sítě, propojující vysoké školy v Praze, a na příkladu jmen o třech složkách, které vyjadřují vysokou školu jako takovou, fakultu v rámci této vysoké školy, a jméno příslušného počítače na této fakultě. Adresy tohoto typu by mohly vypadat například takto:

aviion.mff.cuni

(počítač se jménem aviion na Matematicko-fyzikální fakultě (mff) Univerzity Karlovy (cuni)), nebo:

vax.fel.cvut

(tj. počítač se jménem vax na Elektrotechnické fakultě pražského ČVUT).

Jednotlivé složky těchto hierarchických jmen jsou přitom zapisovány tak, že složka nejvyšší úrovně je nejvíce vpravo, a jednotlivé složky jsou oddělovány tečkami.

Pro tento námi zvolený příklad by stále ještě musela existovat centrální autorita, která by však odpovídala jen za jména, resp. složky nejvyšší úrovně, vyjadřující jména jednotlivých vysokých škol (tj. cvut, cuni atd.). Každá nová vysoká škola, která by se chtěla zapojit do tohoto systému jmen, by se musela obrátit na tuto centrální autoritu pro přidělení nového jména (resp. jeho nejvyšší složky). Centrální autorita pak přidělením každého nového jména nejvyšší úrovně vlastně vytváří samostatný prostor symbolických jmen, kterému se obvykle říká doména (v našem případě jde např. o domény cvut, cuni). Tím však odpovědnost centrální autority končí, neboť správu každé domény - tj. odpovědnost za přidělování dalších složek jmen - deleguje jednotlivým vysokým školám, které se stávají správci příslušných domén. Ti si pak sami volí jména (složky) druhé úrovně, v našem případě odpovídající jednotlivým fakultám (tj. například mff, fel). Tím vznikají další domény nižší úrovně (subdomény), které opět mají své správce - v našem případě jednotlivé fakulty - které si zase samy volí jména třetí úrovně. A jelikož jsme se v našem hypotetickém příkladu omezili jen na tři úrovně, jde již o jména konkrétních počítačů na příslušných fakultách. V praxi ovšem není počet úrovní (resp. složek) omezen.

Systém doménových jmen

Mechanismus, který v TCP/IP sítích implementuje právě naznačený systém hierarchických jmen, se jmenuje DNS (Domain Name System). Ten má dvě části - první z nich předepisuje syntaxi hierarchických jmen (označovaných nyní jako doménová jména), a pravidla pro delegování pravomocí a odpovědnosti za jejich přidělování. Druhá část pak určuje způsob implementace distribuovaného systému, který umožňuje efektivně převádět doménová jména na jim odpovídající IP adresy (o tom si budeme povídat příště).

Všechno podle Internetu

Standard DNS nepředepisuje žádný povinný tvar jednotlivých složek doménových jmen. Nepředepisuje ani, že členění na domény různých úrovní musí odpovídat organizačnímu členění - stejně tak dobře může toto členění vycházet například z územního členění.

Každý konglomerát vzájemně propojených sítí (internet) na bázi TCP/IP si tedy může volit způsob členění na jednotlivé domény i jejich jména zcela podle svého (viz náš hypotetický příklad). V praxi se ale téměř všechny takovéto konglomeráty přizpůsobují tomu, jak jsou doménová jména organizována v Internetu - mj. i z toho prostého důvodu, aby na něj mohly být co nejsnáze připojeny (pokud ještě nejsou).

Systém doménových jmen, používaný v "síti" Internet, má jeden pikantní rys - vznikl totiž v době, kdy jeho autoři vůbec neuvažovali o tom, že by se vůbec někdy rozšířil mimo území USA. Proto zavedli domény nejvyšší úrovně (tzv. top-level domains, viz tabulka 51.1.), které vyjadřují charakter příslušných organizací, ale jsou použitelné jen pro takové organizace, které sídlí v USA (a v části Kanady). Jakmile se ale Internet dostal i mimo Spojených států, musely se zavést ještě další domény nejvyšší úrovně, odpovídající jednotlivým státům. Jména těchto domén nejvyšší úrovně tvoří dvoupísmenové národní kódy (Country Code), které definuje standard ISO 3166, pro Československo pak: cs. Takže například

xinu.cs.purdue.edu

je počítač (xinu) na katedře computer science (cs) na Purdue University (purdue), která je vzdělávací institucí (edu), v USA. Naopak

aviion.mff.cuni.cs

je počítač (aviion) na Matematicko-fyzikální fakultě (mff) Univerzity Karlovy (cuni) v Československu (cs).

Náš hypotetický příklad tedy nebyl tak daleko od skutečnosti. Pouze jsme v něm neuvažovali, že celé Československo tvoří v rámci Internetu jednu doménu nejvyšší úrovně (doménu cs), jejímž správcem je pražská VŠCHT. U ní pak musí být registrovány všechny domény druhé úrovně.

doména význam
com výdělečné organizace
edu vzdělávací instituce (školy)
govvládní instituce
milvojenské instituce
net provozní a správní střediska sítí
orgostatní organizace
int mezinárodní organizace
národní kód stát
Tabulka 51.1.: Domény nejvyšší úrovně v síti Internet