5. Transport
5. Transport
Andere DNS-Operationen wie DNS Update [RFC2136] KÖNNEN entweder DNS über User Datagram Protocol (UDP) [RFC0768] oder DNS über Transmission Control Protocol (TCP) [RFC0793] als Transportprotokoll verwenden, vorausgesetzt, sie folgen dem historischen Präzedenzfall, dass DNS-Abfragen zuerst mit DNS über UDP gesendet werden müssen und nur bei Bedarf zu DNS über TCP wechseln [RFC1123]. Diese Anforderung, UDP zu bevorzugen, wurde später gelockert [RFC7766].
In Übereinstimmung mit dem neueren Präzedenzfall ist DNS Push Notification nur für TCP definiert. DNS Push Notification-Clients MÜSSEN DNS Stateful Operations [RFC8490] verwenden, die über TLS über TCP [RFC7858] laufen.
Die Verbindungseinrichtung über TCP gewährleistet die Rück-Erreichbarkeit und mindert Bedenken hinsichtlich einer Zustandsüberlastung auf dem Server, ein potenzielles Problem bei verbindungslosen Protokollen, die anfälliger dafür sein können, von Angreifern mit gefälschten Quelladressen ausgenutzt zu werden. Alle Abonnenten sind durch den TCP-Drei-Wege-Handshake garantiert vom Server erreichbar. Flooding-Angriffe sind mit jedem Protokoll möglich, und ein Vorteil von TCP ist, dass es bereits etablierte Best Practices der Branche gibt, um sich gegen SYN-Flooding und ähnliche Angriffe zu schützen [SYN] [RFC4953].
Die Verwendung von TCP ermöglicht es DNS Push Notifications auch, aktuelle und zukünftige Entwicklungen in TCP zu nutzen, wie Multipath TCP (MPTCP) [RFC8684], TCP Fast Open (TFO) [RFC7413], den TCP RACK Fast Loss Detection-Algorithmus [TCPRACK] und so weiter.
Transport Layer Security (TLS) [RFC8446] ist gut verstanden und wird von vielen Anwendungsschichtprotokollen verwendet, die über TCP laufen. TLS ist darauf ausgelegt, Abhören, Manipulation und Nachrichtenfälschung zu verhindern. TLS ist ERFORDERLICH für jede Verbindung zwischen einem Client-Abonnenten und einem Server in dieser Protokollspezifikation. Zusätzliche Sicherheitsmaßnahmen wie die Client-Authentifizierung während der TLS-Verhandlung können ebenfalls eingesetzt werden, um die Vertrauensbeziehung zwischen Client und Server zu erhöhen.