DNS | |||||
| POPIS: |
DNS
Komunikace mezi jednotlivými IP uzly probíhá na základě IP adres, které jednoznačně definují každého klienta rozsáhlé počítačové sítě
Tento přístup je pro člověka nevhodný a těžko zapamatovatelný
DNS (Domain Name System) je řešení, které umožňuje:
· využít symbolických adres
· skrýt nedostatky nebo strukturu sítě
· rozdělit síť dle logické přehlednosti
· definovat, vytvářet a spravovat přidělené zóny (rozdělit otevřenou síť do správních oblastí)
· možnost využití jmen při komunikaci není jediným důsledkem zavedení DNS
Jmenný systém musí vyřešit problematiku:
· zásady tvorby, přidělování a správy jmen
· vytvoření a systematické údržby jmenné databáze
· zajištění komunikačních a převodních mechanizmů
· mnoho dalších problémů souvisejících s nasazením DNS
Internet, respektive otevřená počítačová síť, je rozdělen do tzv. domén
· domény systému DNS zajišťují logické zpřehlednění a rozdělení jednotlivých fyzických částí do jednotného celku
· d rámci domény je možné vytvářet podskupiny – subdomény
· každá skupina má přiřazeno jméno, z jednotlivých jmen se pak skládá doménové jméno uzlu
Doménové jméno:
· skládá se z řetězců vzájemně oddělených tečkou
· jméno se zkoumá zprava doleva
· nejvyšší instancí je tzv. root doména, vyjadřuje se tečkou zcela vpravo (většinou se vynechává)
· V root doméně jsou definovány tzv. generické domény –TLD
· Top Level Domains: edu, com, net, org, mil, int, arpa a dvojznakové domény jednotlivých států (ISO-3166)
· jména tvoří stromovou strukturu = první řetězec je jméno počítače, další řetězec je jméno nejnižší vnořené domény
· celé jméno může mít max. 255 znaků, jednotlivé řetězce max. 63 znaků
· řetězce mohou obsahovat písmena, číslice, pomlčky (nesmí být na začátku nebo na konci)
· možno používat malá i velká písmena
· na počítačích uvnitř domény je možné psát pouze jméno počítače bez domény
· DNS funguje hierarchicky
· Na internetu jsou rozmístěné tzv. kořenové servery –servery, které zajišťují kořenovou zónu (pro doménu .xxx)
· Mají tedy přehled o delegaci toplevel domén, jako je COM, EDU, DE nebo CZ
· Každá doména nižší úrovně musí mít server, který zajišťuje funkčnost a propojení v systému DNS
· Servery v hierarchii na sebe navzájem odkazují a společně tak vyřeší jakýkoli dotaz
Reverzní překlad je překlad IP adresy na doménové jméno
· záznam definující vazbu IP adresy na doménové jméno je záznam PTR
· reverzní překlad využívají některé programy (ftp, traceroute,...)
· pokud není v DNS zaveden reverzní záznam pro doménové jméno, mohou některé služby nesprávně pracovat
· záznamy PTR, respektive reverzní domény jsou důležité (ne každý poskytovatel tento princip zodpovědně realizuje)
Reverzní doména je vždy vytvářena a delegována pro síť IP adres
· pro síť 194.149.177 musí být v DNS vytvořena a delegována reverzní doména 177.149.194.in-addr.arpa
Reverzní doména tedy nijak nesouvisí s klasickou doménou
V jedné reverzní doméně se mohou vyskytovat doménová jména z různých domén
Typy reverzních domén se odvíjejí od rozsahu používané sítě
Příkladem může být použití rozsah 256 IP adres – síť třídy C
O delegaci reverzních domén pro sítě třídy B a C se nestarají národní sdružení NIC, ale mezinárodní organizace přidělující IP adresy.
· v Evropě delegaci reverzních domén zajišťuje organizace RIPE
· na jmenný server RIPE ns.ripe.net jsou delegovány reverzní domény pro sítě IP adres, které RIPE přiděluje
· poskytovatelům, tedy např.: 200.in-addr.arpa, 201.in-addr.arpa, 202.in-addr.arpa
· RIPE deleguje reverzní domény pro menší intervaly IP adres –sítě třídy C na jmenné servery poskytovatelů nebo koncových uživatelů
Data o doméně uložené na name serveru jsou nazývány zónou
Zóna obsahuje jen část domény. Doména je skupina počítačů, které mají společnou pravou část svého doménového jména
Autonomní systémy dělí Internet z hlediska IP-adres (směrování), naproti tomu domény dělí Internet z hlediska jmen počítačů. Reverzní domény kopírují strukturu poskytovatelů Internetu
Jmenný server udržuje informace pro překlad jmen počítačů na IP-adresy (resp. pro reverzní překlad)
· obhospodařuje nějakou část z prostoru jmen všech počítačů – zónu
· name server může pomocí věty typu NS ve své konfiguraci delegovat spravování subdomény na name server nižší úrovně
· name server je program, který provádí na žádost resolveru překlad
Primární name server
· udržuje data o své zóně v databázích na disku
· na primárním name serveru má smysl editovat databázi
Sekundární name server
· kopíruje databáze v pravidelných časových intervalech z primárního name serveru
Primární i sekundární name servery jsou tzv. autoritou pro své domény, jejich informace se považují za nezvratná (autoritativní)
Caching only server
· není autoritou –využívá obecné vlastnosti name serveru, tj. data, která jím prochází, ukládá ve své paměti
· tato data se označují jako neautoritativní, každý server je caching server, ale slovy caching only zdůrazňujeme, že pro žádnou zónu není ani primárním, ani sekundárním name serverem
Root name server
· name server obsluhující root doménu
· root name server je primárním serverem – rozdílné od ostatních name serverů
Jeden name server může být pro nějakou zónu primárním name serverem, pro jinou sekundárním
· Z hlediska klienta není mezi primárním a sekundárním name serverem rozdíl
· Pro správnou činnost musí name server znát root name servery (není pro ně však autoritou)
Forwarding a slave servery
· nesouvisí s tím, zda jsou primárními nebo sekundárními servery pro nějakou zónu, ale souvisí se způsobem jejich překladu
Předávání dotazů
· forwarding server vezme požadavek od klienta a předá jej forwarderovi na rychlé síti jako rekurzivní dotaz
· forwarder je server v Internetu, který je připojen rychlejšími linkami = dotaz rekurzivně vyřeší a pošle zpět forwarding serveru konečný výsledek
· pro forwarding je praktické použít name server poskytovatele Internetu
Slave server
· slave servery se používají v uzavřených podnikových sítích (za firewallem), kde není možný kontakt s root name servery
· slave server pak kontaktuje forwardera, který je součástí firewallu
· slave server musí být forwarding server
· oba mohou být caching only servery
· oba mohou být primární nebo sekundární name servery pro určitou zónu
Doménová služba je realizována jednoduchým protokolem DNS
· tento protokol pracuje způsobem dotaz – odpověď =
· klient pošle dotaz serveru a server na dotaz odpoví =
· jistou komplikací je komprese jmen, která se provádí proto, aby byly DNS pakety co nejúspornější =
· DNS je protokol aplikační vrstvy, neřeší tedy otázku vlastního přenosu paketů =
· využívá DNS jako transportní protokoly UDP i TCP =
· dotaz i odpověď jsou přenášeny vždy stejným transportním protokolem.U dotazů na překlad (tj. žádosti o RR record) je dávána přednost protokolu UDP
V případě, že je DNS odpověď delší než 512 B, vloží se do odpovědi pouze část informací nepřesahující 512 B
Bit TC v záhlaví specifikuje o neúplnou odpověď = Klient si může kompletní odpověď vyžádat protokolem TCP
U přenosu zón např. mezi primárním a sekundárním name serverem se používá protokol TCP
Name server standardně očekává dotazy jak na portu 53/udp, tak na portu 53/tcp
DNS nejčastěji využívá UDP
· datagram se vyšle prvnímu serveru
· nepřijde-li odpověď do krátkého časového okamžiku, pošle se datagram s žádostí dalšímu
· zkusí se další, pak se kolečko opakuje do vypršení časového intervalu
· tento přístup maximalizuje rychlost z důvodu existence více name serverů
Přeložení jména na IP-adresu zprostředkovává tzv. resolver
Resolver je klient, který se dotazuje name serveru
Databáze je celosvětově distribuována
· Nejbližší name server nemusí znát odpověď, proto tento name server může žádat o překlad další name servery
· Veškerá komunikace se skládá z dotazů a odpovědí
Name server po startu načte do paměti data pro zónu, kterou spravuje:
· Primární name server načte data z lokálního disku
· Sekundární name server dotazem zone transfer získá data z primárního name serveru
Name server i resolver společně sdílejí paměť cache
· Do ní ukládají kladné odpovědi na dotazy, které provedly jiné name servery
· Šetří čas při opětovných dotazech
Resolver zformuluje požadavek na name server a očekává jednoznačnou odpověď =
Odpověď hledá ve své cache paměti, zde se nacházejí data získaná při předešlých řešeních (autoritativní i neautoritativní)
· nezná-li odpověď, pak kontaktuje další servery (name server musí znát IP-adresy root name serverů)
· není-li dostupný žádný root name server, pak pokus o překlad zkolabuje
Root name server zjistí, že informace o doméně cz delegoval větou typu NS na name server nižší úrovně
Dotazujícímu se name serveru vrátí IP-adresu separujícího doménu cz
Name server se obrátí na server pro doménu cz, který zjistí, že informace o doméně delegovala větou NS na nižší úroveň
Vrátí tedy IP-adresu serveru spravujícího doménu uhk.cz
Server se obrátí na server spravující doménu uhk.cz, který požadavek vyřeší (nebo ne) a výsledek vrátí klientovi
Informace, které server obdržel, si uloží do cache
= „A“ – pro převod doménového jména na IPv4 adresu
· „AAAA“ – pro převod doménového jména na IPv6 adresu
„CNAME“ – alias doménového jména na jiné doménové jméno = jeden počítač může mít více logických jmen pro různé služby (www.fim.cz, ftp.fim.cz) = může provozovat jednu službu pro více domén (www.uhk.cz, www.fim.cz atd.)
„MX“ – na jaké doménové jméno se má směrovat pošta pro nějakou doménu
· může, ale nemusí být doménovým jménem konkrétního počítače
· jeden počítač může přijímat poštu pro více domén
· změnou v DNS lze směrovat poštu jinam, třeba na centrální podnikový mailserver
„NS“ – který počítač slouží jako DNS server pro danou doménu
„PTR“ – reverzní záznam = jaké je doménové jméno pro konkrétní IP adresu (192.168.1.1.in-addr.arpa PTR lide.uhk.cz)
„SOA“ - zajišťuje určitou část režijních informací =
· označuje DNS server pro danou doménu jako primární (Start Of Authority)
Existují určitá pravidla pro formální čistotu DNS
· nemělo by být zapsáno více A (AAAA) záznamů (doménových jmen) na jedinou IP adresu
· aliasy lze vytvořit pomocí CNAME
· záznamy MX, NS, CNAME, PTR a SOA by měly ukazovat zásadně na A záznam (FQDN – hlavní a jedinečné doménové jméno)
· příslušný reverzní záznam musí přesně odpovídat
· V případě nedodržení pravidel je pravděpodobná nefunkčnost některých služeb a síťových programů
· A a PTR záznamy můžou způsobovat nemožnost připojení se na anonymní FTP servery
· Některé další servery v rámci své bezpečnostní politiky považují rozdílnost záznamů, respektive chyby v DNS jako nebezpečnou činnost, které se snaží zamezit (obrana před potenciálním útokem)
Registrace domény je v současné době jednoduchá
· proces registrace je do značné míry automatizován =
· existuje větší množství poskytovatelů, respektive delegovaných registrátorů =
· delegace domény a konfigurace vlastního serveru je daleko složitějším problémem pro správce sítě
Delegace domény – obvykle z příčiny změny poskytovatele
· zprovoznění primárního name server pro doménu =
· konfigurujeme sekundárního name server pro doménu, případně požádáme o jeho konfiguraci svého poskytovatele Internetu =
· žádost o delegaci domény v doméně vyšší úrovně =
· pokud se jedná o doménu druhé úrovně, je třeba ještě registrovat doménu v databázi domén =
· změna delegace domény v doméně vyšší úrovně
Po provedení změny delegace je vhodné nechat běžet alespoň původní sekundární name server (s novými daty) několik dní =
V paměti name serverů po celém světě je ještě IP adresa původních serverů =
Okamžité zastavení primárního i sekundárních name serverů by mohlo způsobit problémy