Zum Hauptinhalt springen

1. Einführung (Introduction)

Die meisten DNS [RFC1034] Transaktionen finden über UDP [RFC768] statt. TCP [RFC793] wird immer für vollständige Zonentransfers (unter Verwendung von AXFR) verwendet und oft für Nachrichten, deren Größe das ursprüngliche 512-Byte-Limit des DNS-Protokolls überschreitet. Der zunehmende Einsatz von DNS-Sicherheit (DNSSEC) und IPv6 hat die Antwortgrößen und damit die Verwendung von TCP erhöht. Die Notwendigkeit einer verstärkten TCP-Nutzung wurde auch durch den Schutz getrieben, den es gegen Adress-Spoofing und damit gegen die Ausnutzung von DNS bei Reflexions-/Verstärkungsangriffen bietet. Es wird heute häufig bei der Antwortratenbegrenzung (Response Rate Limiting) [RRL1] [RRL2] verwendet. Darüber hinaus ist die jüngste Arbeit an DNS-Datenschutzlösungen wie [DNS-over-TLS] eine weitere Motivation, die Anforderungen an DNS-über-TCP zu überdenken.

Abschnitt 6.1.3.2 von [RFC1123] besagt:

DNS-Resolver und rekursive Server MÜSSEN (MUST) UDP unterstützen und SOLLTEN (SHOULD) TCP unterstützen, um (Nicht-Zonentransfer-)Abfragen zu senden.

Einige Implementierer haben den oben zitierten Text jedoch so verstanden, dass die TCP-Unterstützung ein optionales Merkmal des DNS-Protokolls ist.

Die Mehrheit der DNS-Server-Betreiber unterstützt bereits TCP, und die Standardkonfiguration für die meisten Software-Implementierungen ist die Unterstützung von TCP. Die Hauptzielgruppe dieses Dokuments sind diejenigen Implementierer, deren begrenzte Unterstützung für TCP die Interoperabilität einschränkt und die Bereitstellung neuer DNS-Funktionen behindert.

Dieses Dokument aktualisiert daher die Kernspezifikationen des DNS-Protokolls dahingehend, dass die Unterstützung für TCP fortan ein ERFORDERLICHER (REQUIRED) Teil einer vollständigen DNS-Protokollimplementierung ist.

Es gibt mehrere Vor- und Nachteile der verstärkten Nutzung von TCP (siehe Anhang A) sowie Implementierungsdetails, die berücksichtigt werden müssen. Dieses Dokument befasst sich mit diesen Problemen und stellt TCP als gültige Transportalternative für DNS vor. Es erweitert den Inhalt von [RFC5966] um zusätzliche Überlegungen und Lektionen, die aus Forschung, Entwicklung und Implementierung von TCP in DNS und anderen Internetprotokollen gelernt wurden.

Obwohl dieses Dokument keine spezifischen Anforderungen an die Betreiber von DNS-Servern stellt, bietet es den Betreibern einige Vorschläge, um sicherzustellen, dass die Unterstützung für TCP auf ihren Servern und in ihrem Netzwerk optimal ist. Es ist zu beachten, dass das Fehlen der Unterstützung für TCP (oder das Blockieren von DNS über TCP auf der Netzwerkschicht) wahrscheinlich zu einem Auflösungsfehler und/oder Timeouts auf Anwendungsebene führt.