Die DNS Flag Day-Initiative 2020 zur Lösung von Fragmentierungs- und TCP-Unterstützungsproblemen

Heute werden eine Reihe großer DNS-Dienste und Hersteller von DNS-Servern eine gemeinsame Veranstaltung abhalten DNS Flag Day 2020, um auf das Thema Lösung problemen von IP-Fragmentierung bei der Verarbeitung großer DNS-Nachrichten aufmerksam zu machen. Dies ist die zweite Veranstaltung dieser Art; im vergangenen Jahr konzentrierte sich der "DNS Flag Day" auf die ordnungsgemäße Verarbeitung von EDNS-Anfragen. Die Teilnehmer der Initiative DNS Flag Day 2020 fordern, die empfohlenen Puffergrößen für EDNS auf Werte von 1232 Byte (MTU-Größe 1280 minus 48 Byte für Header) festzulegen und

die Verarbeitung von Anfragen über TCP als zwingend unterstützte Funktion auf Servern zu definieren. In RFC 1035 wird nur die Unterstützung der Verarbeitung von Anfragen über UDP als verpflichtend bezeichnet, während TCP als wünschenswert, aber nicht zwingend erforderlich eingestuft wird. Die neuen RFC 7766 RFC 5966 und bezeichnen TCP ausdrücklich als eine der zwingend erforderlichen Funktionen, die für die korrekte Funktion des DNS notwendig sind. Im Rahmen der laufenden Initiative wird vorgeschlagen, den Wechsel von der Übermittlung von Anfragen über UDP zur Verwendung von TCP zu forcieren, wenn die festgelegte Puffergröße für EDNS nicht ausreicht. weisen eindeutig darauf hin, dass TCP zu den grundlegenden Funktionen gehört, die für den ordnungsgemäßen Betrieb von DNS erforderlich sind. Im Rahmen dieser Initiative wird vorgeschlagen, den Übergang von der Übermittlung von Anfragen über UDP auf die Verwendung von TCP zu forcieren, wenn der festgelegte EDNS-Puffer nicht ausreicht.

Die vorgeschlagenen Änderungen beseitigen die Verwirrung bei der Auswahl der EDNS-Puffergröße und lösen das Problem mit der Fragmentierung großer UDP-Nachrichten, die häufig zu Paketverlusten und Timeouts auf der Client-Seite führen. Auf der Client-Seite wird die EDNS-Puffergröße konstant sein, und große Antworten werden sofort über TCP an den Client gesendet. Das Verbot des Versands großer Nachrichten über UDP wird ebenfalls Probleme mit dem Verwerfen großer Pakete an bestimmten Firewalls lösen und verhindern, dass schützt man sich vor DNS-Cache-Vergiftungen auf der Grundlage der Manipulation fragmentierter UDP-Pakete auftreten (da beim Zerlegen in Fragmente das zweite Fragment keinen Header mit der Kennung enthält, kann es genug gefälscht werden, sodass nur die Prüfziffer übereinstimmt).

Ab heute werden teilnehmende DNS-Anbieter, darunter CloudFlare, Quad 9, Cisco (OpenDNS) und Google, allmählich Änderungen vornehmen. Die EDNS-Puffereinstellung wird von 4096 auf 1232 Bytes auf unseren DNS-Servern geändert (die EDNS-Änderung wird sich über einen Zeitraum von 4-6 Wochen erstrecken und schrittweise immer mehr Anfragen abdecken). Antworten auf UDP-Anfragen, die nicht in das neue Limit passen, werden über TCP gesendet. DNS-Server-Hersteller, einschließlich BIND, Unbound, Knot, NSD und PowerDNS, werden Updates mit der Standardänderung der EDNS-Puffergröße von 4096 auf 1232 Bytes veröffentlichen.

Letztendlich können die implementierten Änderungen zu Problemen bei der Auflösung führen, wenn auf DNS-Server zugegriffen wird, deren UDP-Antworten 1232 Bytes überschreiten und die keine Antworten über TCP senden können. Ein Experiment von Google zeigte, dass die Anpassung der EDNS-Puffergröße nahezu keinen Einfluss auf die Ausfallraten hat – bei einem Puffer von 4096 Bytes lag die Anzahl der gekürzten UDP-Anfragen bei 0,345 %, während die Anzahl der unerreichbaren TCP-Wiederholungsantworten bei 0,115 % lag. Bei einem Puffer von 1232 Bytes sind diese Werte 0,367 % und 0,116 %. Die Umstellung auf obligatorische TCP-Unterstützung wird zu Problemen bei der Interaktion mit etwa 0,1 % der DNS-Server führen. Es wird erwähnt, dass unter den aktuellen Bedingungen der Betrieb dieser Server ohne TCP ohnehin instabile ist.

Administratoren autoritativer DNS-Server sollten sicherstellen, dass ihr Server über TCP auf Port 53 antwortet und dieser TCP-Port nicht von einer Firewall blockiert wird. Ein autoritativer DNS-Server sollte auch keine UDP-Antworten senden, die größer sind als
die angeforderte EDNS-Puffergröße. Die Puffergröße für EDNS sollte auf dem Server auf 1232 Byte eingestellt sein. Ähnliche Anforderungen gelten für Resolver — eine verpflichtende Möglichkeit zur TCP-Antwort, die verpflichtende Unterstützung für das Senden von TCP-Wiederholungsanfragen bei Erhalt einer gekürzten UDP-Antwort und die Einstellung des EDNS-Puffers auf 1232 Byte.

Die Konfiguration der EDNS-Puffergröße in verschiedenen DNS-Servern erfolgt über folgende Parameter:

  • BIND

    options {
    edns-udp-size 1232;
    max-udp-size 1232;
    };

  • Knot DNS

    max-udp-payload: 1232

  • Knot Resolver

    net.bufsize(1232)

  • PowerDNS Authoritative

    udp-truncation-threshold=1232

  • PowerDNS Recursor

    edns-outgoing-bufsize=1232
    udp-truncation-threshold=1232

  • Unbound

    edns-buffer-size: 1232

  • NSD

    ipv4-edns-size: 1232
    ipv6-edns-size: 1232

    Quelle: opennet.ru

  • Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster