Wir haben gerade einen rekursiven DNS-Server mit der neuesten stabilen Version von Bind 9.10 eingerichtet
Wir stellen fest, dass rekursive DNS-Suchvorgänge ziemlich langsam sind. Zwischen 1 und 3 Sekunden. Sobald sich die Suche im Cache befindet, wird DNS wie erwartet innerhalb von Millisekunden aufgelöst.
Wir verwenden ROOT-Hinweise für die rekursiven Suchvorgänge, und dies scheint der Grund für die Langsamkeit zu sein. Wenn wir eine Weiterleitung konfigurieren, wird die DNS-Auflösung auf eine sinnvolle Rekursionszeit von 100 - 300 ms reduziert.
Für den Service, den wir einrichten, möchte ich mich nicht auf Spediteure verlassen, sondern lieber Root-Hinweise verwenden.
Hier ist die Hauptkonfiguration aus unserer Datei named.conf . Alle Hinweise zur Verbesserung der Leistung wären großartig.
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";
Antworten:
Wir haben das Problem gefunden. Es war ein Problem beim Auslagern der NIC-Hardware.
Beim Ausführen
tcpdump -vvv -s 0 -l -n port 53
wurden[bad udp cksum 6279!]
für jede DNS-Abfrage eine Handvoll Fehler gefunden .Ein kleines Stöbern bei Google hat mich in die richtige Richtung gelenkt. Wie sich herausstellt, ist das NIC-Hardware-Offloading standardmäßig aktiviert, da unser CentOS-System als VM auf XenServer ausgeführt wird (ähnliche Probleme wurden bei VMWare usw. gemeldet).
Das Laufen
ethtool -k eth0 | grep on
zeigte FolgendesAusführen des
ethtool -K eth0 tx off rx off
deaktivierten TCP-TX-Offloading. Ich habe den Netzwerkdienst aus gutem Grund neu gestartetund BIND getestet. Wir bekommen jetzt sehr schnelle Antwortzeiten von BIND
quelle
Ich hatte das gleiche Problem mit sehr langsamen rekursiven Abfragen auf einem physischen CentOS 7 BIND-Server und fand diese Antwort (TX Offloading) und viele IPv6-orientierte Fixes für verschiedene Threads, von denen keiner für mich funktionierte.
Es stellte sich heraus, dass der Standort des betreffenden Servers eine ältere Cisco ASA-Firewall hatte, die die Größe der UDP-Antwortpakete auf 512 Byte beschränkte. Heutzutage scheinen UDP-Antworten für DNS-Abfragen oft viel größer zu sein, bis zu etwa 2000 Byte. Hier gibt es eine Seite darüber:
Warum hat DNS über UDP ein Limit von 512 Bytes?
Ich habe den ASA so konfiguriert, dass größere UDP-Antwortpakete zugelassen werden (hierfür gibt es einen speziellen Fixup-Befehl), wodurch das Problem behoben wurde:
https://supportforums.cisco.com/t5/getting-started-with-lans/dns-dropped-because-packets-to-big-for-configured-512/td-p/861718
quelle