DNS

David Vávra, xvavra7.fi.muni.cz

Obsah

Trocha historie

- původně textový soubor hosts spravovaný SRI Network Information centre, přežil dodnes v podobě /etc/hosts. Defaultně prohledávaný jako první (lze změnit typicky v /etc/nsswitch.conf).

- od nového systému se čekala eliminace závislosti na jediném počítači a umožnění lokální změny dat, zatímco tato data budou dostupná i globálně. To nakonec vedlo k hiearchickém návrhu doménových jmen. RFC 882,833 (1984).

- za referenční implementaci je považován BIND (~1984).

Princip DNS

Resolver - aplikace, která zajišťuje komunikaci s DNS serverem. V linuxu například dig, host, nslookup a drill (zaměřený na DNSSEC).

#nslookup
> set type=soa
> fi.muni.cz.
Server:		213.46.172.36
Address:	213.46.172.36#53

Non-authoritative answer:
fi.muni.cz
	origin = anxur.fi.muni.cz
	mail addr = root.fi.muni.cz
	serial = 2012100502
	refresh = 3600
	retry = 900
	expire = 1209600
	minimum = 300

Authoritative answers can be found from:
> 

Hiearchický systém jmen

"." - kořen stromu
fqdn(fully qualifed domain name) - plné doménové jméno uzlu, cesta ve stromu DNS v tečkové notaci. Povolené znaky: a-z (case insesitive) , 0-9, - (pomlčka).
Doména, subdoména - samostaný jmenný prostor.
Delegace domény/subdomény - předání pravomoci na spravování domény/subdomény.
Reverzní doména - slouží pro reverzní mapování, tj. překlad IP adres na doménová jména. Za tímto účelem byla vytvořena doména in-addr-arpa.


#host 147.251.6.144
144.6.251.147.in-addr.arpa domain name pointer net.muni.cz.

Podobně je tomu tak u IPv6, adresa je psána rovněž reverzně a po půlbajtech, pseudoména je ip6.arpa.

#host -6 2001:718:801:4ff::12 8.8.8.8
Using domain server:
Name: 8.8.8.8
Address: ::ffff:8.8.8.8#53
Aliases: 

2.1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.f.f.4.0.1.0.8.0.8.1.7.0.1.0.0.2.ip6.arpa domain name pointer net.muni.cz.

Typy nameserverů

- autoritativní - obsahuje data určité domény
   - primární - data domény obsahuje přímo (má je lokálně uložené)
   - sekundární - data periodicky získává z primárního nameserveru pro danou doménu. Plní funkci záložního.
- cache-only nameserver - pouze přeposílá dotazy. Odpovědi si uchovává, umožňuje tak potencionální zrychlení opakujících se/příbuzných dotazů.

DNSSEC

Zavádí asymetrickou krypotografii pro zaručení integrity a autenticity přijatých odpovědí. Jednotlivé domény svým privátním klíčem podepisují své záznamy. Jejich veřejný klíč je následně podepsán nadřazenou doménou.

Konfigurace DNS serveru - BIND (9.8.1)

Konfigurační soubory:

/etc/bind/named.conf - include directivy pro ostatní konfigurační soubory, preferováno needitovat
/etc/bind/named.conf.local - povolení zónových transferů, rekurzivních dotazů (z adresních rozsahů), logování a zejména i konkrétních zón. Příklad konfigurace zón v souboru named.conf.local [Zytrax]:


zone "example.com" in{
  type master;
  file "master/master.example.com";
  // enable slaves only
  allow-transfer {192.168.23.1;192.168.23.2;);
};

// reverse map for class C 192.168.0.0
zone "0.168.192.IN-ADDR.ARPA" in{
  type master;
  file "192.168.0.rev";
};

/etc/bind/named.conf.default-zones - definována root zóna, localhost,...
/etc/bind/named.conf.options - globální volby serveru BIND.

Konfigurační soubory jednotlivých domén (zón) [Zytrax]:
; zone file for example.com
$TTL 2d    ; 172800 secs default TTL for zone
$ORIGIN example.com.
@             IN      SOA   ns1.example.com. hostmaster.example.com. (
                        2003080800 ; se = serial number
                        12h        ; ref = refresh
                        15m        ; ret = update retry
                        3w         ; ex = expiry
                        3h         ; min = minimum
                        )
              IN      NS      ns1.example.com.
              IN      MX  10  mail.example.net.

ns1           IN      A 192.168.254.1
joe           IN      A       192.168.254.3
www           IN      CNAME   joe 


$TTL 2d  ; 172800 seconds
$ORIGIN 23.168.192.IN-ADDR.ARPA.
@             IN      SOA   ns1.example.com. hostmaster.example.com. (
                              2003080800 ; serial number
                              3h         ; refresh
                              15m        ; update retry
                              3w         ; expiry
                              3h         ; nx = nxdomain ttl
                              )
              IN      NS      ns1.example.com.
              IN      NS      ns2.example.com.
1             IN      PTR     www.example.com.
2             IN      PTR     joe.example.com.

Typy záznamů: PTR,A,AAAA,MX,TXT,SRV,NS,LOC,...

Pro ovládání BINDu (i vzdáleně) lze využít nástroj rdnc. V konfiguraci je pak nutné nastavit klíč a adresu, ze které je povolen přístup.

Literatura