Właśnie skonfigurowaliśmy rekursywny serwer DNS przy użyciu najnowszej stabilnej wersji Bind 9.10
Stwierdzamy, że rekurencyjne wyszukiwania DNS są dość wolne. Gdziekolwiek od 1 do 3 sekund. Gdy wyszukiwanie jest w pamięci podręcznej, DNS rozwiązuje się w ciągu milisekund zgodnie z oczekiwaniami.
Wykorzystujemy wskazówki ROOT do wyszukiwania rekurencyjnego i wydaje się, że to właśnie z tego wynika powolność. Jeśli skonfigurujemy usługę przesyłania dalej, rozdzielczość DNS sprowadza się do rozsądnego czasu rekurencji wynoszącego 100–300 ms.
W przypadku usługi, którą konfigurujemy, nie chcę polegać na usługach przesyłania dalej, wolałbym używać wskazówek dotyczących roota.
Oto główna konfiguracja z naszego pliku named.conf . Wszelkie wskazówki pomagające poprawić wydajność byłyby świetne.
options{
allow-recursion { any; };
allow-query-cache { any; };
allow-query { any; };
listen-on port 53 { any; };
listen-on-v6 port 53 { any; };
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
zone-statistics yes;
max-cache-ttl 3600;
max-ncache-ttl 3600;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/stats/named_stats.txt";
memstatistics-file "/var/named/stats/named_mem_stats.txt";
rate-limit {
responses-per-second 10;
log-only yes;
};
prefetch 5;};
zone "." {
type hint;
file "named.ca";};
include "/var/named/conf/logging.conf";
Odpowiedzi:
Znaleźliśmy problem. To był problem z rozładowaniem sprzętu karty sieciowej.
Uruchomienie
tcpdump -vvv -s 0 -l -n port 53
znalazło garść[bad udp cksum 6279!]
błędów dla każdego zapytania DNS.Trochę przeglądania w Google wskazało mi właściwy kierunek. Jak się okazuje, ponieważ nasz system CentOS działa jako VM na XenServer (podobne problemy zgłaszane w VMWare itp.) Odciążanie sprzętowe NIC jest domyślnie włączone.
Bieganie
ethtool -k eth0 | grep on
pokazało, co następujeUruchamianie
ethtool -K eth0 tx off rx off
wyłączone odciążanie TCP TX. Ponownie zrestartowałem usługę sieciowąi przetestowałem BIND. Otrzymujemy teraz bardzo szybkie czasy reakcji od BIND
źródło
Miałem ten sam problem z bardzo powolnymi zapytaniami rekurencyjnymi na fizycznym serwerze BIND CentOS 7 i znalazłem tę odpowiedź (TX Offloading) oraz wiele poprawek zorientowanych na IPv6 wokół różnych wątków, z których żaden nie działał dla mnie.
Okazuje się, że lokalizacja tego serwera miała starszą zaporę Cisco ASA, która ograniczała rozmiar pakietów odpowiedzi UDP do 512 bajtów; wydaje się, że w dzisiejszych czasach odpowiedzi UDP na zapytania DNS są często znacznie większe, do około 2000 bajtów. Tutaj jest o tym strona:
Dlaczego DNS przez UDP ma limit 512 bajtów?
Skonfigurowałem ASA, aby zezwalał na większe pakiety odpowiedzi UDP (jest do tego specjalne polecenie naprawy), które rozwiązały problem:
https://supportforums.cisco.com/t5/getting-started-with-lans/dns-dropped-because-packets-to-big-for-configured-512/td-p/861718
źródło