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