IPv6、スパム回避、DNSSECなどの新しい機能を採用する人が増えているため、応答サイズが大きいため、DNSがTCPに切り替わる可能性が高くなります。

TCPがブロックされた場合はどうなりますか?

どのような場合でも、メッセージサイズが512バイトを超えると、DNSの’TC’ビット(切り捨て)がトリガーされ、メッセージの長さが許可されたサイズを超え このような状況では、クライアントはTCP経由で再送信する必要がありますが、サイズ制限はありません。, DNSサーバーとネットワーク環境が大きなUDPパケットをサポートできない場合、TCP経由で再送信が発生します。TCPがブロックされている場合、大きなUDP応答はIPの断片化につながるか、完全にドロップされます。 エンドクライアントへの終了症状は、通常、DNS解決が遅い、または特定のドメイン名をまったく解決できないことです。

サイズは重要です:EDNS

512バイトのサイズ制限がどこから来たのか疑問に思うかもしれません。 512バイトのUDPペイロードサイズはIPv4に依存しています。, IPv4standard2では、すべてのホストが576バイト以下のパケットを再構成し、ヘッダーやその他のオプションを取り除き、ペイロードデータに512バイトを残すことが これが、もともと13のDNSルートサーバーが正確に存在する理由です3:13のドメイン名と13のIPv4アドレスは、単一のUDPパケットにうまく収まります。

このサイズ制限はずっと前に問題として認識されていました。 1999年、拡張メカニズムfor DNS(EDNS)が提案され、長年にわたって更新され、サイズは4096バイト、つまり4キロバイトに増やされました。, したがって、合理的に最新のDNSサーバーを実行している場合、TCPに切り替える可能性はslim(mer)にする必要があります。

しかし、EDNSは長い間存在していますが、そのサポートはbe4ほど普遍的ではありませんでした。 一部のネットワーク機器などのファイアウォールがもとに想定DNSパケットサイズです。 ファイアウォールは、大きなDNSパケットをドロップまたは拒否することがあります。, この動作は、過去に目に見える問題を引き起こしていない可能性があります(またはそれはしましたが、誰も理由を理解していません)が、DNSデータのサイズ ネットワーク環境が大きなDNSメッセージを完全にサポートしていない場合、dnsメッセージがnetwork gearによって拒否されたり、断片化の間に部分的にドロップされ これがエンドユーザーにとってどのように見えるかは、DNSクエリが未回答になっているか、または非常に長い時間がかかり、”DNS/ネットワークは本当に遅い。,”

現代のDNSの運用にはEDNが必要ですが、より大きなメッセージを送信する機能は、増幅や反射などのボリュームメトリック攻撃に寄与しました。