
Původně odeslal
Gregy
Dobrá, vypnul jsem forwarders (zakomentoval) a vše funguje. Dobrá, ale mohl by mi někdo ještě vysvětlit koho se tedy ptá? A hlavně....kde najde koho se má ptát?
Nejhezčí je za pomoci příkazu:
tcpdump -i eth0 -n port 53
{eth0 nahraď názvem EXTERNÍHO interface}
Je důležíté vědět, že existuje cca 15 kořenových serverů s již danými IP adresami (ty má každý DNS server uložen na disku) - kde ten soubor leží najdeš v named.conf u "root" zone (předpokládám /var/lib/named/root.hint)
aktuální verze je k dispozici na ftp serveru ftp.internic.net v souboru /domain/named.root
princip dohledávání domény je jednoduchý, podle teček se rozseká na jednotlivé části (domény).
třeba 4um.ocguru.cz se rozdělí na 4um ocguru a cz. Prvně se hledá názvový server pro doménu cz - a to se tvůj server bude ptát právě jednoho z kořenových serverů. To se dá napsat tímto příkazem (ta tečka na konci je SPRÁVNĚ - součástí příkazu):
dig @IP_adresa_jednoho_z_korenovych_serveru ns cz.
Kód:
;; QUESTION SECTION:
;cz. IN NS
;; ANSWER SECTION:
cz. 18000 IN NS nss.tld.cz.
cz. 18000 IN NS ns-cz.ripe.net.
cz. 18000 IN NS ns-ext.isc.org.
cz. 18000 IN NS c.ns.nic.cz.
cz. 18000 IN NS e.ns.nic.cz.
cz. 18000 IN NS ns.tld.cz.
pak jednoho (nebo více, pokud jeden neodpoví) z těchto cz serverů se zeptá, na názvový server domény ocguru.cz. Příkaz:
dig @IP_adresa_jednoho_z_cz_serveru ns ocguru.cz.
Kód:
;; QUESTION SECTION:
;ocguru.cz. IN NS
;; ANSWER SECTION:
ocguru.cz. 3600 IN NS ns1.dkm.cz.
ocguru.cz. 3600 IN NS ns2.dkm.cz.
ocguru.cz. 3600 IN NS nemesis.sinister.cz.
ocguru.cz. 3600 IN NS fox.murder.cz.
No a pak se bude ptát na A záznam 4um.ocguru.cz jednoho z těchto ocguru.cz serverů. Zase příkaz:
dig @IP_adresa_jednoho_z_ocguru_cz_serveru 4um.ocguru.cz.
Kód:
;; QUESTION SECTION:
;4um.ocguru.cz. IN A
;; ANSWER SECTION:
4um.ocguru.cz. 3600 IN CNAME bogus.ocguru.cz.
bogus.ocguru.cz. 3600 IN A 62.24.64.132
no a všechny tyto informace si schovává ve své paměti po dobu TTL (time to live) aby se neptal serverů pořád dokola.
takže když si teď zadáš dig ns cz. tak uvidíš, že se číslo pořád snižuje (každou sekundu o jedno).
Ten zavináč a ip adresa nejsou nutné, můžeš psát dig ns cz. - zavináč určuje, kterého serveru se bude program dig ptát. Pokud jej nezapíšeš, tak se bude ptát defaultního serveru.