Ich bin dabei, eine Überwachung der DNS-Server mehrerer großer Webhosts einzurichten. Mein Ziel ist es, die Antwortzeiten ihrer DNS-Server zu vergleichen, indem sie ihre Antwort auf Ping verfolgen.
Dabei stellte ich fest, dass Bluehost-Nameserver nicht auf Ping reagieren. Ich habe versucht, durch Ausführen von Pingdom DNS Check auf bluehost.com mehr Informationen zu erhalten. Dabei ist der folgende Fehler aufgetreten :
Der Nameserver ns1.bluehost.com (74.220.195.31) beantwortet keine Anfragen über TCP.
Der Nameserver konnte keine über TCP gesendeten Anfragen beantworten. Dies liegt wahrscheinlich daran, dass der Nameserver nicht richtig eingerichtet ist oder dass die Filterung in einer Firewall falsch konfiguriert ist. Es ist ein weit verbreitetes Missverständnis, dass DNS kein TCP benötigt, es sei denn, es werden Zonentransfers bereitgestellt. Vielleicht ist dem Nameserveradministrator nicht bewusst, dass TCP normalerweise erforderlich ist.
Ich möchte folgendes wissen:
- Inwieweit stimmt die obige Aussage?
- Was bedeutet es, wenn ein Nameserver keine Anfragen über TCP beantwortet?
quelle
es sollte TCP und UDP unterstützen - das TCP ist für Antwortgrößen> 512 Bytes (einschließlich Zonenübertragungen) (je nachdem, was ich sowieso gelesen habe. Ich aktiviere normalerweise TCP und UDP für die NS, die ich ausführe ...)
quelle
Es ist gut zu wissen, was die RFCs zu diesem Thema sagen, und wir haben bereits eine gute maßgebliche Antwort darauf, aber aus praktischen Gründen finde ich den Rat von Prof. Daniel J. Bernstein, PhD, dem Autor von DJBDNS, ziemlich unterhaltsam.
http://cr.yp.to/djbdns/tcp.html#why (2003-01-16)
Beachten Sie, dass er eine explizite Erwähnung von DNSSEC auslässt; Der Grund dafür ist, dass DNSSEC laut DJB in die Kategorie "Immer ein Fehler" fällt. Weitere Informationen finden Sie unter https://cr.yp.to/djbdns/forgery.html . DJB hat einen alternativen Standard namens DNSCurve - http://dnscurve.org/ - der bereits von einigen Anbietern (wie OpenDNS) unabhängig übernommen wurde. Von Interesse: /security/45770/if-dnssec-is-so-questable-why-is-it-ahead-of-dnscurve-in-adoption .
Beachten Sie, dass die obige Dokumentation zum DJBDNS-Setup nur AXFR für TCP unterstützt. Da viele Anbieter immer noch DJBDNS verwenden, ist es unwahrscheinlich, dass sie DNS über TCP ohne zusätzlichen Aufwand unterstützen.
PS: DJB übt tatsächlich, was er predigt. Seine eigenen Server (1) führen DNSCurve aus (2) und beantworten TCP nicht richtig. Nur die
+notcp
würde erfolgreich sein (was Standard ist):, während a
+tcp
fehlschlagen würde (anscheinend mit einer anderen Fehlermeldung, je nachdem welcher seiner Server ausgewählt wird):quelle
TCP ist nur erforderlich und wird normalerweise nur verwendet, wenn eine lange Antwort erforderlich ist. Es kann negative Auswirkungen geben. Zonentransfers erfolgen über TCP, da sie umfangreich sind und zuverlässig sein müssen. Das Nichtzulassen von TCP von nicht vertrauenswürdigen Servern ist eine Möglichkeit, um sicherzustellen, dass nur kleine Antworten gegeben werden.
Mit der Einführung signierter DNS-Antworten wurde eine Lockerung der 512-Byte-Grenze für UPD-Antworten erforderlich. EDNS0 bietet den Mechanismus für längere UDP-Antworten. Wenn DNS über TCP nicht zugelassen wird, kann eine sichere DNS-Implementierung höchstwahrscheinlich beschädigt werden.
Es ist durchaus möglich, einen DNS-Server zu betreiben, auf dem nur der UDP-Port 53 für das Internet geöffnet ist. TCP-Zugriff auf DNS-Peers ist erforderlich, dies ist jedoch eine kleine Liste von Hosts.
Es gibt einen neueren RFC596 , der jetzt TCP für eine vollständige DNS-Implementierung benötigt. Dies richtet sich an Implementierer. Die Dokumente richten sich speziell nicht an Bediener, warnen jedoch, dass das Nichtzulassen von TCP zu einer Reihe von Fehlerszenarien führen kann. Es werden eine Vielzahl von Fehlern beschrieben, die auftreten können, wenn DNS über TCP nicht unterstützt wird.
Es gab Diskussionen über die Verwendung von TCP zur Verhinderung von DNS-Amplifikationsangriffen. TCP hat seine eigenen Denial-of-Service-Risiken, die Verteilung ist jedoch schwieriger.
quelle