V době kdy počet stanic zapojených do Internetu nebyl příliš velký a mapování jmen na adresy se dalo zaručit jednoduchým nástrojem, používal se soubor hosts.txt, který se distribuoval k jednolivým počítačům přes InterNIC. Pak nastal zlom, kdy už byl soubor velký a nebylo v lidských silách tento systém distribuce dále udržovat. Proto byl vymyšlen DNS.
DNS se dá rozdělit na tři logické části:Jmenné prostory (DNSpace) tvoří hiearchickou stromovou strukturu. V kořeni jsou tzv. root-servers jejichž seznam je zveřejňován na ftp.internic.net. Na nich jsou uloženy informace o nameserverech (registrovaných), na které jsou delegována práva spravovat subdomény .cz .edu .com atd. Stejným postupem se dostáváme až k listům.
Nameservery můžeme rozlišit z hlediska postavení v doméně na primární (informace má uloženy v master souboru), sekundární (informace si periodicky stahuje z primárního) a cache-only (přeposílá dotazy a slouží jako cache) pro zónu.
Nameservery lze rozlišit též podle chování - iterativní v. rekurzivní.
Kromě převodu doménových jmen na IP adresy zajišťuje DNS i činnost opačnou tzv. reverzní mapování - převod IP adres na jména (doména IN-ADDR.ARPA).
Spolupráce Uživatelského programu s Resolverem a NS:z RFC1035: Local Host | Foreign | +---------+ +----------+ | +--------+ | | user queries | |queries | | | | User |-------------->| |---------|->|Foreign | | Program | | Resolver | | | Name | | |<--------------| |<--------|--| Server | | | user responses| |responses| | | +---------+ +----------+ | +--------+ | A | cache additions | | references | V | | +----------+ | | Shared | | | database | | +----------+ | A | | +---------+ refreshes | | references | / /| | V | +---------+ | +----------+ | +--------+ | | | | |responses| | | | | | | Name |---------|->|Foreign | | Master |-------------->| Server | | |Resolver| | files | | | |<--------|--| | | |/ | | queries | +--------+ +---------+ +----------+ | A |maintenance | +--------+ | +------------|->| | | queries | |Foreign | | | | Name | +------------------|--| Server | maintenance responses | +--------+
Question - Dotaz a jeho parametry,
Answer - RR s odpovědí na dotaz,
Authority - RR které popisují jiné autoritativní nameservery
Additional - RR které mohou být užitečné.
Více o struktuře DNS dotazu v části BIND
named:x:200:200:Nameserver:/chroot/named:/bin/falseA todle do /etc/group
named:x:200:Pozor ať nepoužijete existující PID a GID...
/chroot +-- named +-- dev +-- etc +-- named +-- var +-- runUděláme /dev/null v chroot-u:
mknod /chroot/named/dev/null c 1 3Taky potřebujeme čas do logů:
cp /etc/localtime /chroot/named/etc/Protože named poběží v chroot-ovaném prostředí, nemůže pro logování používat socket /dev/log. Pokud náš syslogd podporuje volbu -a, vyřešíme to tímto způsobem: V souboru se startovacím skriptem (v RedHatu /etc/rc.d/init.d/syslog) zaměníme řádku
daemon syslogd -m 0 za daemon syslogd -m 0 -a /chroot/named/dev/logStejnou volbu musíme u některých distribucí změnit též v /etc/sysconfig/syslog (nebo přibližně někde tam...)
daemon named -u named -t /chroot/named/ -c /etc/named.conf
//named.conf // c style komentare strednik na konci kazdeho radku options { directory "/var/named"; // pracovni adresar named pid-file "/var/run/named.pid"; // pid named statistics-file "/var/tmp/named.stats"; // statistiky forwarders { 147.251.48.3 147.251.48.1; 147.251.4.33; }; // kam se preposilaji dotazy allow-query { any; }; // povolit dns dotazy odkud allow-transfer { none; }; // povolit stahnuti tabulek odkud forward-only // pouze preposilat dotazy... }; zone "localhost" { //definice lokalni smycky type master; // pro localhost jsme master file "master/localhost"; // cesta k souboru localhost allow-update { none; }; allow-transfer { any; }; }; zone "0.0.127.in-addr.arpa" { //reverzni zaznam pro loopback type master; file "master/127.0.0"; allow-update { none; }; allow-transfer { any; }; }; zone "." { //zaznamy pro korenovou domenu type hint; file "named.root"; }; // dale prevzato z erigony definice subdomeny lab.fi.muni.cz acl internal_net { 10.0.0.0/8; 127.0.0.1; }; zone "lab.fi.muni.cz" { type master; file "master/lab.fi.muni.cz"; allow-query { internal_net; }; }; zone "0.0.10.in-addr.arpa" { type master; file "master/10.0.0"; allow-query { internal_net; }; };
; komentare zacinaji strednikem $ORIGIN localhost. @ IN SOA @ root.localhost. ( 2001042700 ; serial 3H ; refresh 15M ; retry 2W ; expire 1D ) ; minimum NS @ ; autoritativni nameserver pro zonu A 127.0.0.1 ; ip adresa (bez parametru origin) ; reverzni domena $TTL 1D $ORIGIN 0.0.127.in-addr.arpa. $TTL 1D @ IN SOA localhost. root.localhost. ( 2001042700 ; serial 3H ; refresh 15M ; retry 2W ; expire 1D ) ; minimum NS localhost. 0 PTR localnet. 1 PTR localhost. ;slave file fi.muni.cz z aisy ; BIND version named 8.2.2-P5 Fri Jul 21 15:50:22 MET DST 2000 ; BIND version kron@aisa2:/export/local/kron/bind/src/bin/named ; zone 'fi.muni.cz' last serial 2002030100 ; from 147.251.48.3:53 (local 147.251.48.1) using AXFR at Fri Mar 1 16:59:27 2$$ORIGIN muni.cz. fi 86400 IN SOA anxur.fi.muni.cz. postmaster.anxur.fi.muni.cz. ( 2002030101 10800 900 1209600 86400 ) 86400 IN NS anxur.fi.muni.cz. 86400 IN NS aisa.fi.muni.cz. 86400 IN NS ns.muni.cz. 86400 IN TXT "Faculty of Informatics" 86400 IN TXT "Masaryk University Brno" 86400 IN TXT "Botanicka 68a, 602 00, Brno, Czech republic" 86400 IN MX 50 relay.muni.cz. 86400 IN MX 500 adis.cesnet.cz. 86400 IN A 147.251.48.3 $ORIGIN fi.muni.cz. otos 86400 IN MX 50 relay.muni.cz. 86400 IN MX 500 adis.cesnet.cz. 86400 IN A 147.251.52.186 helios 86400 IN MX 50 relay.muni.cz. 86400 IN MX 500 adis.cesnet.cz. 86400 IN A 147.251.52.67 ;... atd ; muzete se kouknout na erigonu a aisu