Adresace hostitelů v sítích na bázi protokolu TCP/IP (IPv4) se provádí pomocí 32 bitových čísel. Počítačům se však pro snadnější zapamatování dávají "klasická" jména. S tímto mapováním jmen na IP adresy vznikla potřeba vést aktuální seznam jmen strojů a jejich adres. V malých sítích čítajících několik počítačů se vystačilo se souborem /etc/hosts (nebo jemu podobných), který se rozkopíroval na jednotlivé počítače.
U větších sítí je nutné takovou databázi spravovat centrálně. Tento problém řešil systém NIS firmy SUN Microsystems (známý také jako YP - Yellow Pages), který ukládá soubor "hosts" (spolu s dalšími informacemi) do databáze na hlavním hostiteli, odkud si ho mohou klienti zkopírovat. Tento přístup se však hodí pouze pro malé a středně velké sítě. Při větším počtu hostitelů dochází k velkému zatížení spojeného s přenosem souboru hosts a navíc při jakékoliv změně se musí aktualizovat seznam na centrálním počítači. V roce 1984 však přišel Paul Mockapetris s návrhem systému, který řešil oba tyto problémy. Jednalo se o systém DNS.
named:x:200:200:Nameserver:/chroot/named:/bin/falseTento pak do /etc/group
named:x:200:Shell je nastaven na /bin/false, to proto, že se tento uživatel nikdy nebude logovat. Jen dejte pozor, ať nepoužijete existující PID a GID.
/chroot +-- named +-- dev +-- etc +-- named +-- var +-- runVytvoříme /dev/null:
mknod /chroot/named/dev/null c 1 3Dále budeme potřebovat čas do logu:
cp /etc/localtime /chroot/named/etc/Protože named poběží v chroot-ovaném prostředí, nemůžeme pro logování používat socket /dev/log. Pokud náš syslogd podporuje volbu -a, dá se to vyřešit 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 0za
daemon syslogd -m 0 -a /chroot/named/dev/logStejnou volbu musíme u některých distribucí změnit rovněž v /etc/sysconfig/syslog
configure make make install DESTDIR=/chroot/namedStartovací skript /etc/rc.d/init.d/named je součástí balíčku, případně se můžete inspirovat zde: http://linux.com/howto/Chroot-BIND-HOWTO.html
daemon named -u named -t /chroot/named/ -c /etc/named.conf
named.conf ---------- options { directory "/var/named"; # pracovní adresář named datasize 20M; query-source address * port 1053; }; acl in_nase { 192.168.1/24; }; acl in_moje { 172.16.2/24; 172.16.200/24; }; acl ascs { 147.251.60/24; 147.251.62/24; }; zone "localhost" { # definice lokální smyčky type master; # pro localhost jsme master file "master/db.localhost"; # cesta k zónovému souboru localhost allow-update { none; }; allow-transfer { any; }; }; zone "0.0.127.in-addr.arpa" { # reverzni zaznam pro loopback type master; file "master/db.rev.127.0.0"; allow-update { none; }; allow-transfer { any; }; }; zone "." { type hint; file "named.root"; }; zone "in.nase" { type master; file "master/db.in.nase"; allow-update { none; }; allow-transfer { localhost; in_nase; in_moje; }; allow-query { localhost; in_nase; in_moje; }; }; zónové soubory -------------- ../master/db.localhost $TTL 1D $ORIGIN localhost. @ IN SOA @ root.localhost. ( 2001042700 ; serial 3H ; refresh 15M ; retry 2W ; expire 1D ) ; minimum IN NS @ IN A 127.0.0.1 ../master/db.rev.127.0.0 $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.Níže uvedený "slave" soubor administrátor DNS serveru nevytváří. Tento soubor "vytvoří" DNS server sám tím, že si jej stáhne od serveru uvedeného na patřičném místě v named.conf
Slave soubor ------------ $ORIGIN . $TTL 86400 ; 1 day ascs.muni.cz IN SOA trinity.ascs.muni.cz. root.trillian.as cs.muni.cz. ( 2002100801 ; serial 10800 ; refresh (3 hours) 1800 ; retry (30 minutes) 3600000 ; expire (5 weeks 6 days 16 hours) 21600 ; minimum (6 hours) ) NS trinity.ascs.muni.cz. NS trillian.ascs.muni.cz. A 147.251.60.141 MX 100 trillian.ascs.muni.cz. ; 100 - $ORIGIN ascs.muni.cz. abcd A 147.251.60.60 acer A 147.251.62.93 acerp A 147.251.62.76 acid A 147.251.60.112 ady A 147.251.60.33 albert A 147.251.60.18 alberto A 147.251.62.3 alex A 147.251.62.30
SOA | Start Of Authority | parametry MNAME, RNAME, SERIAL, REFRESH, RETRY, EXPIRE |
NS | Autoritativní nameserver | |
A | IP adresa IPv4 | |
AAAA | IP adresa IPv6 | |
MX | Mail exchange | |
CNAME | canonical name, přezdívka | |
PTR | Ukazatel na jinou část DNSpace - reverzní záznam | |
HINFO | host info informace o CPU, OS apod. Nepovinné. | |
TXT | textový retězec |
chown root /chroot chmod 700 /chroot chown named:named /chroot/named -R chmod 700 /chroot/named chown named:named /chroot/named/var/run + pokud nevěříte ani sami sobě: chattr +i etc etc/localtime var (v adresáři /chroot/named )