DNS

Systém DNS zajišťuje překlad doménové jména na IP adresy a obráceně.

Jestli jste o DNS nikdy předtím neslyšeli, pak si nejprve přečtěte stránku jakfungujedns.cz.

Motivace pro DNS systému vznikla už v době ARPANETu, kdy s rostoucím množstvím počítačů v síti, vznikla potřeba usnadnit lidem identifikaci jednotlivých počítačů. IP adresy se lidem pamatují hůře, než řetězce slov nebo symbolické názvy. Další nevýhodou je IP adres je, že se mohou měnit. Vznikly tak Name Servery (jmenné servery), na kterých je fyzicky uložen seznam v podobě dvojice (doména, IP adresa).

Protokoly

DNS je velmi starý protokol, v roce 1983 jeho koncept popsal Paul Mockapetris pod RFC 8821 a RFC 8832. Obecné základy protokolu DNS byly definovány v RFC 1034 a RFC 1035. DNS je jednoduché jen zdánlivě. V současné době se adaptuje, aby fungoval v protokolu IPv6 a také se rozšiřuje o bezpečnostní prvky.

  • RFC 3901 se zabývá rekurzivními servery umístěnými v koncových sítích, které řeší dotazy místních klientů.
  • RFC 4074 popisuje možné chybové stavy DNS serverů v případě, že obdrží dotaz na záznam typu AAAA.
  • RFC 4472 komplexně popisuje problematiku soužití protokolů IPv6 a DNS.

Valná většina DNS komunikace probíhá protokolem UDP. Nic složitějšího není třeba, protože typicky zahrnuje výměnu dvou paketů

  1. klient pošle jeden paket s dotazem
  2. server mu jedním paketem odpoví.

S DNS je však možné komunikovat také pomocí TCP. Funguje na portu 53.

Name servery (jmenné servery)

Původní princip DNS do roku 1985 fungoval pomocí souboru /etc/hosts. Textový soubor hosts má jednoduchou strukturu, každý řádek obsahuje dvojici (IP, doménové jméno). Jména domén byla rozdělena na domény jednotlivých úrovní, které se oddělují tečkou a jejichž celý zápis za sebou tvoří plně kvalifikované jméno domény. Díky hierarchii se zvětšil prostor pro tvorbu jmen domén. Stačí tedy, aby jednotlivá jména byla unikátní pouze v rámci dané úrovně.

Nejvyšší úroveň je kořenová a pod ní jsou top level domény (TLD). Správce národních TLD domén lze najít v seznamu zemí na stránkách IANA. Název domény je omezen délkou 63 znaků, plně kvalifikované jméno domény může mít až 255 znaků.

Resolver

Běžná součást operačního systému je program Resolver. Ten komunikuje s Name serverem a žádá o překlad doménových jmen na IP adresu.


Lokální úprava DNS

Když chcete donutit operační systém, aby použil jinou adresu webu, než kterou mu vrátí DNS server, můžete si v tomto souboru zadefinovat vlastní pravidla.

  • V unixových systémech /etc/hosts
  • Na Windows C:\Windows\System32\drivers\etc\hosts
  • Další

Překlad jmen

Přímý

Doména -> IP

Reverzní

IP -> Doména


DNS v programu

Pokud budeme chtít komunikovat se vzdálenými počítači pomocí soketů, budeme potřebovat znát IP adresy těchto počítačů. Od uživatele, ale dostaneme nejspíše doménová jména. Ve vašem programu potřebujete zajistit překlad domény, hledejte v knihovnách jazyka funkce gethostbyname.



Související