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.
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.
.
|
,---------|----------------,
| | |
com cz sk
| | |
,-----------| ,-----, |-----------,
| | | | | |
google github muni idnes sme eset
|
,---------|-------,
| | |
fi czs med
|
,---------,
| |
aisa erigona
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:
Autoritatívne DNS serveri vieme rozdeliť na základe vzťahov k zónam:
<doména> [<ttl>] [<trieda>] SOA <nameserver> <admin> (
<serial>
<refresh>
<retry>
<expire>
<minimum> )
doména: meno domény
trieda: pre Internet vždy "IN"
nameserver: primárny DNS server
admin: adresa správcu DNS. Znak "@" sa nahrádza znakom "."
serial: sériové číslo v tvare "YYYYMMDDxx",
[<ttl>] [<trieda>] NS <server>
[<ttl>] [<trieda>] MX <priorita> <server>
<server> [<ttl>] [<trieda>] A <adresa>
<server> [<ttl>] [<trieda>] A <adresa>
<alias> [<ttl>] [<trieda>] CNAME <server>
<špeciálnemeno> [<ttl>] [<trieda>] PTR <meno>
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:
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
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:
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
...
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: