Zum Hauptinhalt springen

4. Diskussion (Discussion)

In Abwesenheit von EDNS0 (Extension Mechanisms for DNS 0 [RFC6891]; siehe unten) besteht das normale Verhalten jedes DNS-Servers, der eine UDP-Antwort senden muss, die das 512-Byte-Limit überschreiten würde, darin, die Antwort so abzuschneiden, dass sie in dieses Limit passt, und dann das TC-Flag im Antwort-Header zu setzen. Wenn der Client eine solche Antwort erhält, nimmt er das TC-Flag als Hinweis darauf, dass er es stattdessen über TCP erneut versuchen sollte.

RFC 1123 sagt auch:

... es ist auch klar, dass einige neue DNS-Eintragstypen, die in Zukunft definiert werden, Informationen enthalten werden, die das für UDP geltende 512-Byte-Limit überschreiten, und daher TCP erfordern werden. Daher sollten Resolver und Nameserver heute TCP-Dienste als Backup für UDP implementieren, in dem Wissen, dass sie den TCP-Dienst in Zukunft benötigen werden.

Bestehende Bereitstellungen von DNSSEC [RFC4033] haben gezeigt, dass das Abschneiden an der 512-Byte-Grenze heute alltäglich ist. Beispielsweise ist eine Antwort für eine nicht existierende Domain (NXDOMAIN) (RCODE == 3) aus einer DNSSEC-signierten Zone unter Verwendung von NextSECure 3 (NSEC3) [RFC5155] fast ausnahmslos größer als 512 Byte.

Seit die ursprünglichen Kernspezifikationen für DNS geschrieben wurden, wurden die Erweiterungsmechanismen für DNS eingeführt. Diese Erweiterungen können verwendet werden, um anzuzeigen, dass der Client bereit ist, UDP-Pakete zu empfangen, die größer als 512 Byte sind. Ein EDNS0-kompatibler Server, der eine Anfrage von einem EDNS0-kompatiblen Client empfängt, kann UDP-Pakete bis zu der vom Client angekündigten Puffergröße ohne Abschneiden senden.

Der Transport von UDP-Paketen, die die Größe der Pfad-MTU überschreiten, verursacht jedoch eine IP-Paketfragmentierung, die sich unter vielen Umständen als unzuverlässig erwiesen hat. Viele Firewalls blockieren routinemäßig fragmentierte IP-Pakete, und einige implementieren nicht die Algorithmen, die zum Wiederzusammensetzen fragmentierter Pakete erforderlich sind. Schlimmer noch, einige Netzwerkgeräte weigern sich absichtlich, DNS-Pakete zu verarbeiten, die EDNS0-Optionen enthalten. Andere Probleme im Zusammenhang mit UDP-Transport und Paketgröße werden in [RFC5625] diskutiert.

Die im Kern des Internets am häufigsten anzutreffende MTU liegt bei etwa 1500 Byte, und selbst dieses Limit wird routinemäßig von DNSSEC-signierten Antworten überschritten.

Die Zukunft, die in RFC 1123 erwartet wurde, ist eingetroffen, und der einzige standardisierte UDP-basierte Mechanismus, der das Paketgrößenproblem hätte lösen können, hat sich als unzureichend erwiesen.