グローバルEDNS (DNS拡張メカニズム) チェッカー
RFC 6891で正式に定義されているEDNS (Extension Mechanisms for DNS) は、従来のゾーンファイルレコードではありません。これは、コアとなるDNSプロトコル自体の構造的な変更です。1980年代にDNSが最初に設計されたとき、プロトコルはステートレスなUser Datagram Protocol (UDP) 上で実行されるクエリが、最大ペイロード512バイトに厳密に制限されるべきであると定めていました。何十年もの間、この制限は基本的なIPアドレスの転送には十分でした。しかし、インターネットが進化するにつれて、この厳しい制限は巨大なアーキテクチャ上のボトルネックになりました。
512バイトのUDPバリアを克服する
現代のインフラ要件、特に128ビットのIPv6アドレスやDNSSECによって生成される大規模な暗号化署名の導入により、DNS応答が日常的に1,500バイトを超えるようになりました。EDNSがない場合、大規模なペイロードをUDP経由で返そうとする権威サーバーはパケットを切り捨て (Truncate)、ヘッダーに「TC」(Truncated) ビットを設定し、クライアントに対して低速でステートフルなTCP接続でクエリを完全に再開するよう強制します。このTCPフォールバックプロセスは、アプリケーションの解決に深刻で複合的なレイテンシをもたらし、ネームサーバーのリソースを圧迫します。EDNSは、DNSヘッダーに「OPT疑似レコード」を注入することでこれを解決します。
OPT疑似レコードとバッファネゴシエーション
OPTレコードは静的なゾーンファイルには存在しません。アクティブなトランザクション中に動的に生成されます。EDNS準拠のリゾルバがサーバーにクエリを行う際、このOPTレコードを添付して許容される最大UDPペイロードサイズ (一般的には1232または4096バイト) をアドバタイズ (Advertise) します。権威サーバーがEDNSをサポートしている場合、ネゴシエートされたバッファサイズを利用して、遅いTCPフォールバックを完全にバイパスし、単一の高速なUDPトランザクションで大規模なDNSSECペイロードを送信します。
ネットワークのブラックホールとファイアウォールによる破棄の診断
EDNSコンプライアンスチェッカーを使用することは、高度なネットワークデバッグのための必須ステップです。多くのレガシーな企業のファイアウォール、古くなった侵入検知システム (IDS)、不適切に設定されたコンシューマー向けルーターは、依然として512バイトを超える受信UDPパケットをバッファオーバーフロー攻撃やUDPフラッドと解釈し、積極的に破棄 (Drop) します。これが発生すると、クライアントは深刻なDNSタイムアウトを経験し、サイトが断続的に利用できなくなります。さらに、EDNSはEDNS Client Subnet (ECS) などの高度なルーティングテレメトリを導入し、再帰的リゾルバがユーザーのIPアドレスのフラグメントを権威サーバーに渡すことを可能にし、CDNが極めて高い精度で最も近い地理的データセンターにトラフィックをルーティングできるようにします。