9. Systém DNS Studijní cíl Představíme si problematiku struktury a tvorby doménových jmen.
Doba nutná k nastudování
1,5 hodiny
Uvedená kapitola vychází ze zdroje [1]. Celý Internet je z hlediska pojmenovávání strojů rozdělen do takzvaných domén, tedy do skupin jmen, která k sobě logicky patří. Doména určuje příslušnost stroje k nějakému vyššímu celku. Takovým celkem může být země, firma, instituce, osoba a podobně. Doménové jméno se skládá ze znakových řetězců oddělených tečkami. RFC 1034, 1035 definují koncepci, jmenný prostor a protokol klient(resolver)-server, (resp. server-server). Logický směr čtení jména je zdánlivě nepřirozený, tedy zprava doleva. Rozlišujeme domény několika základních úrovní: • Kořenová doména – je nejvyšší instancí. Označuje se tečkou, • kterou je zvykem vynechávat. Je však pro pochopení potřeba vědět, že existuje a je právě jedna. Všechny ostatní domény jsou jí podřízeny. • Top Level Domains (TLD)– domény nejvyšší úrovně. Název je značně nepřesný, protože jak již bylo uvedeno, tyto domény mají v hierarchii nad sebou ještě jeden článek. TLD jsou dvou podobných typů: generické TLD (gTLD), které mají tři a více znaků. Například biz. com, net a další, národní TLD (ccTLD), které jsou dvouznakové a slouží k identifikaci země (country code) podle normy ISO3166. Pro Českou republiku tak je užíván řetězec „cz.“, zkráceně zapsáno (bez označení kořenové domény) jen „cz“. Každé doménové jméno (uzel hierarchie tohoto systému, resp. nějaký podstrom) má přiděleny tzv. autoritativní DNS servery. Je to množina serverů, které nesou informace potřebné k práci s danou doménou. Mohou obsahovat již konkrétní údaje (tj. IP adresy, názvy mailserverů atd.) a také především názvy dalších DNS serverů, které jsou autoritativní pro subdomény (tj. domény
Počítačové sítě I.
1 (6)
KST/IPS1
nižších řádů pod touto doménou). Slovo „autoritativní“ zde říká, že se jedná o servery, které nesou závazné informace o dané doméně a všechna zařízení v síti Internet by se jimi měla řídit, aby vždy skrz touto hierarchií došla ke správnému výsledku při překladu doménového názvu na IP adresu.
Obrázek 1 Strom doménových jmen Zóna • část stromu uložená na jednom DNS serveru (a spravovaná separátně), • DNS server je autoritativní pro domény obsažené v jím spravované zóně.
Obrázek 2 Zobrazení rozsah zóny
Množina autoritativních DNS serverů pro konkrétní doménu se často dělí na jeden primární a na jeden nebo více sekundárních. Primární server je hlavním nositelem informace, je to tedy místo, kde je hlavní úložiště dat a kde jeho administrátor provádí úpravy DNS. Jakmile se na tomto serveru provedou změny v nastavení nějaké domény, sekundární servery si tyto změny synchronizují speciálními mechanismy protokolu DNS (notifikace a AXFR přenos). Tyto mechanismy nejsou povinné – záleží na administrátorovi, jak zajistí, aby všechny servery měly aktuální údaje. Je důležité si uvědomit, že rozdělení serverů na „primární“ a „sekundární“ jsou pro člověka, který není administrátorem těchto serverů, nedůležité. Všechny
Počítačové sítě I.
2 (6)
KST/IPS1
by měly obsahovat stejné informace a na jakýkoliv dotaz odpovídat shodným způsobem a mělo by být jedno, který z nich si vyberete. To je pravda samozřejmě jen za předpokladu, že jsou servery správně nastaveny a synchronizovány. Je chybné se domnívat, že překládání adres probíhá pomocí primárního DNS serveru a sekundární budou využity až v případě, že je primární mimo provoz. Pro zajímavost – primárním DNS serverem pro kořenovou doménu je a.rootservers.net a pro doménu cz to je server ns.tld.cz. Ostatní servery ve skupinách si data z primárního zdroje kopírují. V tom nejběžnějším případu je třeba přeložit doménové jméno, které uživatel zná na aktuálně platnou IP adresu. K této situaci dochází prakticky vždy před navázáním spojení. V operačním systému bývá pro tyto účely integrován klient DNS tzv. resolver. Úlohou resolveru je zformulovat a odeslat dotaz a přijmout a zpracovat odpověď. V síti jsou proto k dispozici tzv jmenné servery (DNS server). Vlastní komunikace s takovým serverem se nazývá podle DNS protokolu DNS QUERY. Operace DNS QUERY sestává z dotazu a odpovědi. Dotaz obsahuje požadavek, případně více požadavků, na překlad. Odpověď potom obsahuje odpověď (příslušné RR věty11), nebo je záporná. Komunikaci zahajuje klient protokolem UDP na port 53. Server pošle odpověď nejvýše o velikosti 512 Byte12. Pokud se odpověď nevejde celá do této velikosti, označí server tuto zkrácenou odpověď značkou TC (truncated). Pokud klient nevystačí s informacemi obsaženými v obdržené odpovědi, požádá o informace znovu, tentokrát protokolem TCP a opět na portu 53. V takovém případě obdrží celou odpověď. Platí zásada, že odpověď server posílá stejným protokolem, jakým mu byl doručen dotaz. Komunikace TCP protokolem s sebou nutně přináší zdržení, protože nejprve musí být sestaveno spojení. Pokud vše funguje tak jak má, probíhá komunikace resolveru se serverem DNS podle následujícího scénáře: • • • • • •
uživatel nebo aplikace zadají příkaz, který vyžaduje • překlad například www.google.com, pokud resolver využívá paměť - hledá odpověď nejprve v ní, resolver zahájí DNS QUERY na první DNS server, který má v seznamu, DNS server hledá odpověď ve své paměti, pokud je odpověď k dispozici – odešle ji resolveru. Pokud odpověď nezná, požádá o spolupráci další DNS servery, DNS server kontaktuje v takovém případě obvykle více serverů. V procesu nazývaném „iterace“ se dostane až na server, který je
Počítačové sítě I.
3 (6)
KST/IPS1
„autoritou“ pro zadaný dotaz. Odpovědí je potom podle očekávání RR věta obsahující IP adresu, nebo záporná odpověď – pokud na zadaný dotaz odpověď v systému není k dispozici. Pokud však DNS server neodpoví dostatečně rychle, resolver svůj dotaz zopakuje dalšímu DNS serveru, který má k dispozici v seznamu. Pokud ani ze všech dalších nedostane odpověď do nastavených intervalů, tehdy začíná seznam procházet znovu. Z toho vyplývá vysvětlení někdy problematického chování DNS při ladění a diagnostice. Stává se, že DNS server nejprve na stejný dotaz neodpoví a při zopakování dotazu za několik okamžiků je již odpověď k dispozici. Pro zjišťování potíží se systémem DNS, což patří k naprosto základním dovednostem síťového technika, lze doporučit nástroj nslookup. Nslookup je k ispozici na většině aktuálně používaných operačních systémů. Program se na všech systémech ovládá velmi podobně, a proto je velmi oblíben, i když má na každé platformě i svou konkurenci. Obecný formát RR věty vypadá takto: NAME TYPE CLASS
TTL RDLENGHT
RDATA
Obrázek 3 Formát RR věty Významy jednotlivých polí jsou: • NAME – Doménové jméno, • TYPE – Typ věty (příklad věta typu A: IP adresa délky 4 byty), • CLASS – Třída věty (pro Internet vždy „IN“) • TTL – (Time to live) udává hodnotu, jak dlouho smí být uchováván záznam v paměti neautoritativních serverů pro další použití, než je odstraněn, • RDLENGHT – Udává délku následující části, • RDATA – Vlastní obsah věty. Závisí na typu věty.
Počítačové sítě I.
4 (6)
KST/IPS1
Příklad konfiguračního souboru DNS serveru
Konvence zónového souboru • @ - implicitní doména, • pokud v levé části vypuštěno jméno, bere se to z minulého řádku, • jména neukončená tečkou jsou relativní a doplňují se hodnotou direktivy $ORIGIN, • direktivou $TTL lze stanovit implicitní hodnotu pro Time to live. Shrnutí kapitoly V kapitole byla vysvětlena vazba mezi doménovým jménem a IP adresou, která je definována v DNS databázi. Zdůraznili jsme, že DNS (domain name system) je celosvětově distribuovaná databáze, jednotlivé části této databáze jsou umístěny na tzv. jmenných serverech. Informace jsou zde uloženy v textových souborech ve tvaru zdrojových vět (resource records – RR vět). Otázky na procvičení: 1. Vysvětlete význam DNS? 2. Vyzkoušejte si příkaz nslookup www.seznam.cz 3. Který záznam přiřadí doménovým jménům počítačů IP adresy?
Počítačové sítě I.
5 (6)
KST/IPS1
Literatura [1]
KABELOVÁ, Alena a Libor DOSTÁLEK. Velký průvodce protokoly TCP/IP a systémem DNS: výukový průvodce přípravou na zkoušku 640-802. 5., aktualiz. vyd. Brno: Computer Press, 2008, 488 s. ISBN 978-80-2512236-5.
Počítačové sítě I.
6 (6)
KST/IPS1