Poprawa odpytywania serwerów DNS
Napisał: Patryk Krawaczyński
13/09/2012 w Administracja Brak komentarzy. (artykuł nr 369, ilość słów: 277)
S
ystemy linuksowe wyposażone są w lokalny resolver, który jest odpowiedzialny za tłumaczenie żądań programów o informacje o hostach w zapytania dla serwerów DNS oraz przekształcanie ich odpowiedzi w informacje dla tychże programów. Od wersji BIND 8.2 możemy dodać kilka nowych opcji do reslover’a, które teoretycznie mogą poprawić nam czasy odpowiedzi i wykorzystanie więcej niż jednego serwera DNS. Poniżej znajduje się przykładowy plik konfiguracyjny /etc/resolv.conf, który zawiera wpisy:
search pl nameserver 208.67.220.220 nameserver 208.67.222.222 nameserver 8.8.8.8 nameserver 8.8.4.4 options timeout:2 attempts:2 rotate
Pierwszym krokiem do optymalizacji jest używanie więcej niż jednego serwera DNS (nameserver) – w powyższym przykładzie wykorzystano publiczne serwery DNS OpenDNS oraz Google. Drugim – skrócenie czasu oczekiwania z pięciu do dwóch sekund na odpowiedź przed użyciem kolejnego serwera DNS (timeout:2). Trzecim – zmniejszenie liczby zapytań z pięciu do dwóch, które resolver wysyła do każdego serwera DNS znajdującego się w /etc/resolv.conf przed uznaniem o braku odpowiedzi. Czwartym użycie opcji rotate, która pozwala na użycie wszystkich serwerów DNS (bez tej opcji tak długo, jak pierwszy serwer będzie odpowiadał resolver nigdy nie odpyta reszty serwerów).
Przy włączonej opcji rotate i zapytaniu o dowolną domenę – reslover nadal odpyta pierwszy serwer umieszczony w pliku konfiguracyjnym, jednak przy odpytaniu o kolejną zostanie użyty już następny serwer DNS itd. Należy jednak liczyć się z faktem, że w głównej mierze możliwość rozkładania zapytań DNS zależy głownie od programu. Na przykład program ping – mimo, że zostanie wielokrotnie użyty zawsze skorzysta z pierwszego serwera DNS, ponieważ za każdym inicjuje on i zamyka proces komunikacji z resolverem – przeciwieństwie do serwera SMTP jakim jest sendmail.
Więcej informacji: man resolv.conf

