DNS - Systém doménových jmen

Martin Čáslavský, caslav@mail.muni.cz


Obsah


Domain Name System

Systém doménových jmen (DNS, Domain Name System) je hierarchický systém skládající se z domén, který slouží k převodu doménových jmen na ip adresy, převodu ip adres na doménová jména a jsou v něm uložené informace potřebné k doručování pošty.

Hierarchie začíná kořenovou doménou "." (tečka), která obsahuje domény nejvyšší úrovně (TLD, Top Level Domains) buď generické (com, net, org, int, mil, gov, biz, info) nebo národní (cz, sk, uk, de,...). O přidělování TLD se stará organizace ICANN, o přidělování domén pod jednotlivými TLD se starají jednotliví národní správci domén.

Ke každé doméně je v její nadřazené doméně definován jeden nebo víc nameserverů, které poskytují informace o doméně. Pro kořenovou doménu, která žádnou nadřazenou doménu nemá, je tento seznam pevně daný.

Jak probíhá převod doménového jména na ip adresu?

Průběh převodu doménového jména na ip adresu není až tak jednoduchý. Při vyřizování odpovědi se postupuje v hierarchii rekurzivně od vrcholu. Pokud tedy hodláme nalézt ip adresu ke stroji aisa.fi.muni.cz. (tečka na konci není omylem!), nameserver vyřizující dotaz se nejprve jednoho z kořenových nameserverů zeptá na nameservery, které obsluhují doménu cz. Obdrží odpověď, že CZ.EUNET.cz, NS-EXT.VIX.COM, NS.EU.NET, NS.UU.NET a NS2.NIC.FR. Jeden z nich vybere a zeptá se ho na nameservery, které obsluhují doménu muni.cz. Obdrží odpověď, že ns.ces.net, ns.muni.cz a ns1.muni.cz. Opět jeden z nich vybere a zeptá se ho na nameservery obsluhující doménu fi.muni.cz. Obdrží odpověď aisa.fi.muni.cz, anxur.fi.muni.cz a ns.muni.cz. Po posledním dotazu na jeden z těchto nameserverů se již (konečně) dozvíme kýženou ip adresu 147.251.48.1.

Při převodu ip adresy na doménové jméno se postupuje obdobně, ale doménové jméno k adrese 147.251.48.1 se začíná hledat v doméně in-addr.arpa a požadovaný záznam se nalezne v doméně 1.48.251.147.in-addr.arpa.


Berkley Internet Name Daemon

BIND je v současné době nejrozšířenějším nameserverem. Získat ho lze ze zdrojů ftp://ftp.isc.org/isc/bind/src/cur/bind-8/ nebo v podobě balíčku příslušném vaší distribuci. Po nainstalování ho pravděpodobně najdete v /usr/sbin/named a konfigurační soubory v /etc/bind.

Pro správnou funkci je nutné mít dobře nastavený systémový resolver. V souboru /etc/resolv.conf řádek nameserver 127.0.0.1 říká resolveru, který nameserver má používat, a v souboru /etc/host.conf řádek order hosts,bind udává, že nejdříve se bude prohledávat soubor /etc/hosts a poté se bude dotazovat nameserverů uvedených v resolv.conf.

Konfigurace BINDu se provádí v souboru /etc/bind/named.conf

options {
	// direktivy file se budou odkazovat do tohoto adresáře
	directory "/etc/bind";
};

zone "." {
	// definice kořenových nameserverů pro doménu .
	type hint;
	file "root.hints";
};

zone "fi.muni.cz" {
	// jsme primární nameserver pro doménu fi.muni.cz
	type master;
	file "master/fi.muni.cz";
};

zone "domena.dom" {
	// a sekundární nameserver pro doménu domena.dom
	type slave;
	masters { 192.168.0.1; };
	file "slave/domena.dom";
};

Primární i sekundární nameserver poskytují údaje na stejné úrovni. Liší se v tom, že na primárním nameserveru se dělají změny, které si sekundární nameservery stahují. Jednotlivé verze zón jsou rozlišeny sériovým číslem.

/etc/bind/master/fi.muni.cz
@		IN 	SOA		aisa.fi.muni.cz.	hostmaster.fi.muni.cz. (
							2001101601 	; sériové číslo	
							8H			; refresh
							2H			; retry
							1W			; expire
							1D)			; minimum ttl
			NS 		aisa
			NS 		ns.muni.cz.
			
			MX	 	10 aisa
			MX		20 relay.muni.cz
			
aisa			A		147.251.48.1
www			CNAME		aisa

RR Resource Records

SOA
Start of Authority
NS
nameserver
A
ip adresa (IPv4)
AAAA
ip adresa (IPv6)
MX
mail exchanger
CNAME
přezdívka, alias na A záznam
PTR
reverzní záznam
HINFO
hardware info
TXT
textový popis

Další programy

nslookup, dig
programy k zjišťování informací z DNS.
pdnsd
Proxy DNS server s podstatně menšími nároky, cache se mezi restarty ukládá na disk, vhodný na vytáčené linky.
DJBDNS
DNS server od D.J.Bernstaina, autora qmailu.