Po celem Internetu je rozmisteno 13 tzv. root-serveru, coz jsou servery obstaravajici vyrizovani pozadavku na Top Level Domain urovni. Jejich jedinou funkci je sdelovani tazajicim klientum, jakych name-serveru se maji ptat dale pro zjisteni jejich pozadavku. Jsou tedy nastaveny jako non-recursive, tj. nereknou vam presne co po nich chcete, jen vas navedou jinam, kde vam toho reknou zase o trosku vic. Z tohoto duvodu je neni mozne pouzivat jako resolvery.
Komunikace probiha po portu 53/udp. Pokud by odpoved mela prekrocit rozumnou velikost (data se prenasi pouze pomoci jednoho paketu), pouzije se pro prenos dat portu 53/tcp.
Priklad odpovedi na konkretni dotaz:[yanek@aimee]-[~]$ host -a www.fi.muni.cz A.ROOT-SERVERS.NET. Trying "www.fi.muni.cz" Using domain server: Name: A.ROOT-SERVERS.NET. Address: 198.41.0.4#53 Aliases: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25355 ;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 6, ADDITIONAL: 7 ;; QUESTION SECTION: ;www.fi.muni.cz. IN ANY ;; AUTHORITY SECTION: cz. 172800 IN NS NS2.NIC.FR. cz. 172800 IN NS SUNIC.SUNET.SE. cz. 172800 IN NS NS-EXT.VIX.COM. cz. 172800 IN NS NS.TLD.cz. cz. 172800 IN NS NSS.TLD.cz. cz. 172800 IN NS NS-CZ.RIPE.NET. ;; ADDITIONAL SECTION: NS2.NIC.FR. 172800 IN A 192.93.0.4 SUNIC.SUNET.SE. 172800 IN A 192.36.125.2 NS-EXT.VIX.COM. 172800 IN A 204.152.184.64 NS.TLD.cz. 172800 IN A 217.31.196.10 NSS.TLD.cz. 172800 IN A 217.31.200.10 NS-CZ.RIPE.NET. 172800 IN AAAA 2001:610:240:0:53:cc:12:60 NS-CZ.RIPE.NET. 172800 IN A 193.0.12.60 Received 303 bytes from 198.41.0.4#53 in 190 ms [yanek@aimee]-[~]$
Jak je vidno, odpoved se sklada pouze ze seznamu nameserveru a jejich IP adres. Aktualni seznam root-serveru je mozno ziskat z ftp://ftp.internic.net/ (toho casu na 192.0.34.27 :-).
Pro funkci prekladu pro bezne pocitace je nutno pouzit tzv. recursive name server, tj. server ktery je nastaveny tak, ze vam sezene presne odpoved na kterou se tazete. Pokud vi kde ji vzit.
Zkusime se tedy zeptat treba cesnetiho nameseveru co nam povi na stejny dotaz...
[yanek@aimee]-[~]$ host -a www.fi.muni.cz 195.113.144.194 Trying "www.fi.muni.cz" Using domain server: Name: 195.113.144.194 Address: 195.113.144.194#53 Aliases: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12386 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 2 ;; QUESTION SECTION: ;www.fi.muni.cz. IN ANY ;; ANSWER SECTION: www.fi.muni.cz. 40801 IN CNAME aisa.fi.muni.cz. ;; AUTHORITY SECTION: fi.muni.cz. 68553 IN NS anxur.fi.muni.cz. fi.muni.cz. 68553 IN NS ns.muni.cz. fi.muni.cz. 68553 IN NS aisa.fi.muni.cz. ;; ADDITIONAL SECTION: aisa.fi.muni.cz. 64867 IN A 147.251.48.1 anxur.fi.muni.cz. 52417 IN A 147.251.48.3 Received 134 bytes from 195.113.144.194#53 in 69 ms [yanek@aimee]-[~]$Jak je videt, tento nameserver nam rekl podstatne informace. V linuxovem prostredi se resolver, tj. cast starajici se o preklad nastavuje v konfiguracnim souboru /etc/resolv.conf, tento konfiguracni soubor vypada asi takto:
[yanek@aimee]-[~]$ cat /etc/resolv.conf search ya.bofh.cz nameserver 10.136.0.1 nameserver 213.211.52.96 [yanek@aimee]-[~]$
Zde muzeme rovnez nastavit ktere domenove jmeno se "prilepi" k nami hledanemu retezci. Takze je mozne, pro usnadneni si zivota, v nekterych aplikacich pouzivat pouze prvni cast hledaneho zaznamu.
Berkeley Internet Name Domain (http://www.isc.org) v revizi 9 je nejpouzivanejsi software pro preklad domenovych jmen. Pouziva se pro beh jak autoritativnich name serveru, tak "proxy" serveru pro stredni a velke site.
Vzhledem k nemalym bezpecnostnim problemum v jeho historii je velmi vhodne jej behat v chroot-rezimu. Toho se da dosahnout vytvorenim spravne struktury treba uvnitr adresare /var/named/.
[root@aimee]-[/var/named]# tree . |-- dev | `-- random |-- etc | `-- bind | `-- named.conf -> ../../var/named/named.conf `-- var |-- named | |-- master | | |-- 127.0.0 | | |-- localhost | | `-- ya.bofh.cz | |-- named.conf | |-- named.root | `-- slave |-- run | `-- bind | `-- run `-- tmp 11 directories, 7 files [root@aimee]-[/var/named]#
Velmi se mi zalibilo mit toho chroot prostredi schovane v systemu tak, ze vlastne ani nepoznate ze tam je. Coz se da snadno docilit tim ze proste nasymlinkujete do /etc/named adresar /var/named/var/named/.
Obsah konfiguracniho souboru vypada asi takto:
[root@aimee]-[/var/named/var/named]# cat named.conf options { directory "/var/named"; notify yes; }; zone "localhost" { type master; file "master/localhost"; allow-transfer { any; }; }; zone "0.0.127.in-addr.arpa" { type master; file "master/127.0.0"; allow-transfer { any; }; }; zone "." { type hint; file "named.root"; }; zone "ya.bofh.cz" { type master; file "master/ya.bofh.cz"; allow-transfer { 62.24.64.27; 3ffe:80ee:108c::/48; }; allow-query { any; }; notify yes; }; [root@aimee]-[/var/named/var/named]#
Bind, tedy jeho proces named, spustime prikazem /usr/sbin/named -u bind -t /var/named/, cimz zajistime jak beh pod jinym uzivatelem, tak beh uvnitr chroot prostredi.
V uvedenem konfiguracnim souboru vidime obecne nastaveni, tj. kde ma hledat sva data (pozor na chroot!) a definice nekolika zon. Kazdy name-server by mel znat tyto lokalni domeny. U posledni zony je videt nastaveni allow-transfer, ktere povoluje AXFR prenos zony pouze pro vymezeny seznam IP adres (nemusi vsichni vedet co mame pekneho).
1) apt-get install bind9 2) do /etc/default/bind9 dopsat '-t /var/named' 3) mkdir /var/named 4) cd /var/named 5) mkdir -p var/named/slave/ \ var/named/master/ \ dev \ etc/bind \ var/run/bind/run \ tmp 6) vytvorit named.conf v /var/named/var/named/ 7) nakopirovat named.root z /etc/bind/ 8) nakopirovat lokalni domeny 9) chown -Rc bind /var/named/ 10) schovat /etc/bind/ 11) ln -s /var/named/var/named/ /etc/bind/ 12) /etc/init.d/bind9 start 13) zkontrolovat logy (/var/log/daemon.log) a opravit pripadne chyby
Typ | Nazev | Funkce |
---|---|---|
SOA | Start Of Authority | Obecne platne nastaveni pro domenu |
NS | Name Server | Rika kdo ma byt jmenny server pro danou domenu |
MX | Mail eXchange | Postovni server, tento zaznam ma navic i prioritu dorucovani |
A | host Address (ipv4) | Ukazuje na konkretni IPv4 adresu |
AAAA | host Address (ipv6) | Ukazuje na konkretni IPv6 adresu |
CNAME | Canonical NAME | Alias, pouziva se pro urceni stejne IP pro vice jmen |
PTR | Pointer | Ukazuje na jmeno, pouziva se u reverzniho prekladu |
ns01# cat /etc/named/master/ya.bofh.cz $ORIGIN . $TTL 1h ya.bofh.cz IN SOA ns01.ya.bofh.cz. hostmaster.ya.bofh.cz. ( 2005100100 ; serial 3600 ; refresh (1 hour) 900 ; retry (15 minutes) 1209600 ; expire (2 weeks) 43200 ; minimum (12 hours) ) NS ns.cnl.tuke.sk. NS ns.cortex.cz. NS ns01.ya.bofh.cz. NS ns03.ya.bofh.cz. NS bravo.intrak.tuke.sk. A 213.211.52.96 MX 5 atlantis.mitranet.cz. MX 10 leeloo.ya.bofh.cz. MX 20 osiris.flexible.cz. AAAA 3ffe:80ee:108c:1::1 $ORIGIN ya.bofh.cz. arabela A 213.211.52.110 atlantis A 213.211.52.96 AAAA 3ffe:80ee:108c:1::1 enigma A 195.39.102.82 giza A 194.108.93.194 leeloo A 213.211.52.100 AAAA 3ffe:80ee:108c::1 naked AAAA 3ffe:80ee:108c:110:200:e8ff:fe68:19be aimee A 212.96.181.100 ns01 A 213.211.52.96 AAAA 3ffe:80ee:108c:1::1 ns03 A 213.211.52.100 AAAA 3ffe:80ee:108c::1 test NS rover.ya.bofh.cz. NS siberia pixla A 212.96.181.101 AAAA 3ffe:80ee:108c:0:20e:a6ff:fe84:88c rover A 62.24.64.27 siberia A 217.67.30.247 AAAA 3ffe:80ee:f29:3000::247 sms CNAME leeloo ns01#