inicio mail me! sindicaci;ón
 

Bind jako serwer cache DNS

Generalnie zawsze mnie irytowało rozwiązywanie domenek przez binda na moim serwerze. Niby SDI, niby 115k2, a jednak jak miałem korzystać z modemu 33k6 to jakoś szybciej się nazwy domen rozwiązywały na komputerach klienckich. Zacząłem się zastanawiać. Co jest odpowiedzialne za resolvowanie nazw na serwerze? Wiadomo, resolv.conf. Usiadłem i zaczełem się zastanawiać…


search wiosenna.com
nameserver 127.0.0.1
nameserver 194.204.159.1
nameserver 194.204.152.34

Hm… Czyli najpierw lokalny bind, później "kochane" ns’y tpsy… A jak rozwiązuje sobie domeny spoza świata lokalny bind? Używa resolv.conf? Hm… Chyba nie… Oki, wycinamy z resolv.conf ipki, SIGHUP w named’a i jedziemy. # dig wiosenna.com @0 … Zadziałało, więc już mamy pewność że to nie resolv.conf. So what?

zone "." in {
        type hint;
        file "root.cache";
};

Czyli 13 ROOT-SERVERS… Popingujmy je. Wiem, mogą mieć zablokowane możliwości pingowania… Z 13 które ja miałem w fabrycznym root.cache odpowiedziało 5:

64 bytes from 192.33.4.12: icmp_seq=0 ttl=242 time=250.402 ms
64 bytes from 192.203.230.10: icmp_seq=0 ttl=53 time=311.281 ms
64 bytes from 192.5.5.241: icmp_seq=0 ttl=54 time=310.181 ms
64 bytes from 192.112.36.4: icmp_seq=0 ttl=240 time=280.216 ms
64 bytes from 198.32.64.12: icmp_seq=0 ttl=242 time=340.989 ms

W przypadku dns i dns2 tpsa.pl czasy te są około 30-40 ms… Więc 10 razy szybciej. Jaki z tego morał? Standardowy Bind skonfigurowany jest na ROOT-SERVERS, co w dzisiejszych czasach raczej nie wróży nam zbyt szybkiej pracy. Nie wierzącym polecam odpalenie iptrafa albo innego ustrojstwa i monitorowanie połączeń UDP. Bind ma głęboko w nosie resolv.conf, co w sumie jest bardzo logiczne. Więc należy jakoś zmusić by korzystał z bliższych ns’ów niż ROOT-SERVERS (naprawdę, dns.tpsa.pl wcale nie jest taki makabryczny). Zmodyfikować mu root.cache? Podobno można, u mnie to słabo pomogło. A może przedefiniować mu strefę "."? To już bardziej logiczne. Pół godziny studiowania wyniku komendy ‘man named.conf’ nasunął mi pewne wnioski. So, usuwamy strefę "." z /etc/named.conf i wpisujemy zamiast niej coś takiego:

zone "." IN {
        type forward;
        forward only;
        forwarders { 194.204.159.1; 194.204.152.34; };
        check-names ignore;
    // Uwaga! Opcja check-names jest obsługiwana tylko
    // przez Bind'a 8.x. W Bindzie 9.x nie jest ona wymagana!
};

Tak zupełnie BTW. ostatnio się zorientowałem że w Bind 9.x (dokładnie 9.2.1 z PLD) można to prościej. Wystarczy w sekcji options { } dopisać (bez konieczności defioniowania strefy ".":

options {
    forwarders { 194.204.159.1; 194.204.152.34; };
}

W miejsce 194.204… Należy wpisać IPki serwerów dns z których chcemy korzystać. Polecam ns1.ikp.pl – niestety nie wszystkich on lubi ;). Istnieje także dns.tpi.pl – działa jak narazie całkiem cacy. Dobra. Mniam! Mimo tego iż wygląda na to że bind nie cachuje nic z forwardowanych zapytań (przynajmniej ja tak wnioskowałem), to jednak pamięta wpisy o które się odpytywaliśmy :-). HUPnełem named’a znowu, odpytałem się któryś z root servers o domenkę unroutable.net: Total query time: 5319 msec – no i teraz sobie wyobraź(cie) ile czasu trwało odpytanie root-server’s… Błe… A później się dziwie że mi nie rozwiązuje domenek a przez modem jak ustawiam dns’y providera to prawie odrazu. A wogóle po co mi to? Otóż uparłem się iż w sieci lokalnej będę korzystał z DNS’a na serwerze od maskarady ;)… Po kilku chwilach namysłu z resolv.conf wyciełem wszystkie ipki poza 127.0.0.1 – po co lokalny resolver ma puszczać coś poza serwer?

aBajt:

4 sie 2008, 18:09

Dzięki za pomocny artykuł, bardzo mi się te informacje przydały

wojtek:

3 sty 2009, 1:47

To jest opis DNS forwarder.
W skrócie polega to na tym, że serwer DNS przekierowuje zapytanie na serwery wymienione w „forwarders” i korzysta z ich cachu.

DNS cache to było by:

zone „.” IN {
type hint;
file „named.root”;
};

options {
//to co normalnie
//+
recursion yes;
};

Baseciq:

6 sty 2009, 3:36

Ale sam też robi cache. Inaczej – bind domyślnie ma recursion i cache włączony. Tutaj dodatkowo, aby przyspieszyć jego działanie dodaje się lokalne jakieś DNSy. Zresztą, zerknij na datę utworzenia tego tekstu – to było grubo przed 2002 rokiem na pewno. Wtedy były inne łącza, inne warunki i przepustowości.

risstof:

2 sie 2009, 13:17

Odpytywanie root-server’s ma charekter rekurencyjny, Pytasz kilka serwerow o kolejne strefy, dla kazdej domeny, rozpoczynajac od domeny najwyzszego poziomu. Nic dziwnego ze trwa dluzej.

RSS dla komentarzy tego posta · TrackBack URI

Skomentuj

English users please note: since my blog is primary in Polish, English comments can be marked by Akismet (antispam) plugin as a spam. Please, allow few days for moderate action if You don't see your comment instanly.