DNS

Filip Zachar, 409815@mail.muni.cz

Obsah

Čo je DNS

DNS alebo Domain Name System (po slovensky Systém názvov domén) je systém, ktorý ukladá prístup k informácii o názve stroja (hostname) a názve domény v istej distribuovanej databáze v počítačových sieťach ako internet. Najdôležitejšie je, že poskytuje mechanizmus získania IP adresy pre každé meno stroja (lookup) a naopak (reverse), a uvádza poštové servery (MX záznam) akceptujúce poštu pre danú doménu.

DNS poskytuje na internete všeobecne dôležitú službu, pretože kým počítače a sieťový hardvér pracujú s IP adresami, ľudia si vo všeobecnosti ľahšie pamätajú mená strojov a domén pri použití napr. v URL a e-mailovej adrese (obzvlášť nepríjemné by to bolo pri IPv6 adrese). DNS nie je dôležitý len pre koncového zákazníka, napríklad aj developeri často používajú na konfigurovanie aplikácií doménové mená aby tak nefixovali jenotlivé časti systému na konkrétne IP adresy. V prípade zmeny konfiguácie sa zmení záznam v distribuovanej DNS databáze a všetky časti sýstému začnú používať novú konfiguráciu.

História

DNS vynašiel Paul Mockapetris v roku 1983 po tom čo sa počítačové sieťe viacej rozšírili aby tým vyriešil problém distribuovania zmien v súboroch HOSTS.TXT ktoré dovtedy obsahovali tabuľku mapujúcu názvy na adresi.

Súbor HOSTS.TXT technicky stále existuje. Väčšina dnešných systémov, či už predvolene alebo po konfigurácii, prehľadáva pri získavaní adresy podla doménového mena najprv súbor HOSTS.TXT (v linuxových systémoch sa tento súbor zväčša nachádza v /etc/hosts) a až následne sa pokúša o DNS dotaz aby získala odpoveď z distribuovanej databázy.

Fungovanie DNS

Stromová hierarchia

                          .
                          |
                ,---------|----------------,
                |         |                |
               com       cz               sk
                |         |                |
    ,-----------|      ,-----,             |-----------,
    |           |      |     |             |           |
  google    github    muni  idnes         sme        eset
                       |
             ,---------|-------,
             |         |       |
            fi     czs      med
             |
       ,---------,
       |         |
     aisa      erigona   


    

Typy DNS serverov

DNS server je počítač zodpovedný za preklad doménových mien na na IP adresy (prípadne iné typy záznamov)

DNS Serveri vieme rozdeliť na základe funcionalít:

Niektoré serveri môžu kombinovať jednotlivé funkcionality. Takže je možné vytvoriť autoritatívny DNS server s povoleným rekurzívnym dohľadávaním a zapnutou cache.

Autoritatívne DNS serveri vieme rozdeliť na základe vzťahov k zónam:

Server môže byť primárny pre jednu zónu a sekundárny pre druhú zónu.

Typy DNS záznamov

Vyhodnotenie dotazu

Vždy keď sa aplikácia snaží dohľadať IP (prípadne iný typ záznamu) k doménovému menu, aby mohla ďalej pracovať so smerovateľnou adresou, napríklad pri zadaní URL do browsera, sa najprv kontaktuje tzv. stub resolver, čo je časť operačného systému ktorá prehľadáva súbor hosts a v prípade nenájdenia požadovanej informácie kontaktuje resolver.

Pri riešení dotazu "www.example.com" postupuje resolver nasledovne:

  1. V prípade že sa jedná o autoritatívny DNS server hľadá odpoveď pre "www.example.com" v svojich zónových súboroch a vráti odpoveď
  2. V prípade že má DNS server zapnutú cache hľadá odpoveď v cache
  3. V prípade že sa jedná o forwarding DNS server preposiela dotaz "www.example.com" nadradenému dnes serveru
  4. V prípade že sa jedná o DNS server s zapnutou podporou rekurzívnych dotazov pokračuje nasledovne:
    1. Kontaktuje ROOT DNS server s dotazom na "com"
    2. Kontaktuje autoritatívny DNS server pre doménu "com" s dotazom "example.com"
    3. Kontaktuje autoritatívny DNS server pre doménu "ecample.com" s dotazom "www.example.com"
  5. Vráti získanú informáciu
  6. V prípade nenájdenia záznamu v ktorom kolvek kroku vráti chybu

Stub resolver

Konfuguruje sa ktoré serveri použiť na vyhonotenie rekurzívneho dotazu.
V unixových systémoch sa konfigurácia nachádza v súbore /etc/resolv.conf

        nameserver 8.8.8.8
        nameserver 8.8.4.4
    

BIND

Najpopulárnejší DNS server.
Vyvýjaný už od 1985. Súčasná verzia 9.10.3

Hlavný konfiguračný súbor named.conf obsahuje inicializaciu súborov:

Ukážka definice zóny
    zone "localhost.localdomain" IN {
            type master;
            file "named.localhost";
            allow-update { none; };
    };
    zone "1.0.0.127.in-addr.arpa" IN {
            type master;
            file "named.loopback";
            allow-update { none; };
    };
    
Príklad zónového súboru:
    $TTL 3600
    $ORIGIN example.com.
    @             IN   SOA  @ root.example.com. (2015101000 3H 15M 2W 1D)
                  IN   NS   ns1               ; autoritativne name servery
                  IN   NS   ns1.registrar.com.
                  IN   MX   0 mail.example.com.
    www           IN   A    10.20.30.80      ; info. o pocitacoch
    ftp           IN   A    10.20.30.21      ; v tejto domene
    ns1           IN   A    10.20.30.53      
    news          IN   CNAME  www.example.com.
    ...
    

Reverzný záznam pre podsieť 10.20.30.0:

    $ORIGIN 30.20.10.in-addr.arpa.
    @             IN  SOA  @ root.domena.cz. (2015101000 3H 15M 2W 1D)
                  IN  NS   ns.domena.cz.
                  IN  NS   ns.provider.cz.
    80            IN  PTR  www.example.com
    21            IN  PTR  ftp.example.com
    53            IN  PTR  ns1.example.com
    ...                       
    

Nástroje

DNSSEC

DNS je nešifrovaný protokol, všetky informácie putujú sieťou v čitateľnej forme. Je možné klientovy podunúť odpoveď z podvhnutou adresou (DNS spoofing) a iniciovať tak MITM útok.
Na zabezpečenie autenticity sa používa DNSSEC ktorý využíva asymetrickú kryptografiu. DNSSEC používa na autentizáciu trust chain tvorený jednotlivými kľúčmi domén. Používajú sa 2 typy kľúčov:

RFC 4033 popisujúce bezpečnosť v DNS definuje 3 nové typy záznamov: Prečo 2 klľúče ? Priamo v konfigurácii resolvera je umiestnený verejný kľúč koreňového KSK. Od tohto kľúča je budovaný trust chain až smerom k špecifickejším doménam.

Literatura