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ý.
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.
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