メインコンテンツまでスキップ

1. はじめに (Introduction)

ほとんどの DNS [RFC1034] トランザクションは UDP [RFC768] を介して行われます。TCP [RFC793] は、完全なゾーン転送(AXFR を使用)には常に使用され、DNS プロトコルの元の 512 バイト制限を超えるサイズのメッセージには頻繁に使用されます。DNS セキュリティ (DNSSEC) および IPv6 の展開の拡大により、応答サイズが増加し、その結果 TCP の使用が増加しています。TCP の使用増加の必要性は、アドレススプーフィングに対する保護、したがってリフレクション/増幅攻撃での DNS の悪用に対する保護によっても推進されています。これは現在、応答レート制限 (Response Rate Limiting) [RRL1] [RRL2] で広く使用されています。さらに、[DNS-over-TLS] などの DNS プライバシーソリューションに関する最近の作業も、DNS-over-TCP 要件を再検討するもう 1 つの動機です。

[RFC1123] のセクション 6.1.3.2 には次のように記載されています:

DNS リゾルバおよび再帰サーバーは、(非ゾーン転送)クエリの送信に UDP をサポートしなければならず (MUST)、TCP をサポートすべきである (SHOULD)。

しかし、一部の実装者は上記の引用テキストを、TCP サポートが DNS プロトコルのオプション機能であるという意味に解釈しています。

大多数の DNS サーバーオペレーターはすでに TCP をサポートしており、ほとんどのソフトウェア実装のデフォルト設定は TCP をサポートすることです。このドキュメントの主な対象読者は、TCP のサポートが限定的であるために相互運用性が制限され、新しい DNS 機能の展開が妨げられている実装者です。

したがって、このドキュメントは、TCP のサポートが今後の完全な DNS プロトコル実装の必須 (REQUIRED) 部分となるように、コア DNS プロトコル仕様を更新します。

TCP の使用増加には、いくつかの利点と欠点(付録 A を参照)があり、考慮する必要がある実装の詳細もあります。このドキュメントはこれらの問題に対処し、TCP を DNS の有効なトランスポートの代替手段として提示します。これは [RFC5966] の内容を拡張し、DNS および他のインターネットプロトコルにおける TCP の研究、開発、実装から得られた追加の考慮事項と教訓を加えています。

このドキュメントは DNS サーバーのオペレーターに満たすべき特定の要件を課すものではありませんが、サーバーとネットワークでの TCP のサポートが最適であることを確認するのに役立ついくつかの提案をオペレーターに提供します。TCP のサポートを怠る(またはネットワーク層で DNS over TCP をブロックする)と、解決の失敗やアプリケーションレベルのタイムアウトが発生する可能性があることに注意してください。