付録 B. HTTP または他のフォーマットでの DNS に関する以前の作業 (Previous Work on DNS over HTTP or in Other Formats)
DoH の標準化以前に、HTTP を通じた DNS の転送や代替 DNS フォーマットの使用に関する複数の提案と実装がありました。
Google DNS over HTTPS:
DoH の標準化以前に、Google は DNS クエリのための JSON API を提供していました。この API は HTTP GET リクエストを使用し、DNS Wire Format ではなく JSON フォーマットのレスポンスを返します。このAPIは現在も利用可能ですが、本文書で定義された DoH プロトコルには準拠していません。
Cloudflare DNS over HTTPS:
Cloudflare も DNS over HTTPS サービスを提供しており、DoH 標準化作業の積極的な参加者です。Cloudflare のサービスは「application/dns-message」メディアタイプを使用して本文書で定義された DoH プロトコルをサポートしています。
DNS Wire Format over HTTP:
一部の初期の提案では、専用のメディアタイプや URI 構造を使用せずに DNS Wire Format メッセージを単純に HTTP にカプセル化することが提案されました。
DNS-JSON:
一部の提案では DNS データの交換フォーマットとして JSON の使用が提案されました。JSON の利点には人間が読みやすいことと Web 技術との良好な統合が含まれます。ただし、JSON フォーマットは通常 DNS Wire Format より大きく、追加の解析とシリアライズロジックが必要です。
他の DNS トランスポートプロトコル:
DNS over HTTPS に加えて、安全な DNS トランスポートを提供する他のいくつかのプロトコルがあります。
-
DNS over TLS (DoT) [RFC7858]: 専用ポート 853 を使用して TLS で DNS クエリを直接保護します。DoT は DoH より単純ですが、HTTP の機能を活用できず、識別とブロックが容易な場合があります。
-
DNS over QUIC (DoQ) [RFC9250]: QUIC プロトコルを使用して DNS クエリを転送します。QUIC は低遅延と良好なモビリティパフォーマンスを提供します。
-
DNSCrypt: DNS クエリを暗号化するための初期のプロトコル。DNSCrypt は IETF 標準ではありませんが、いくつかの実装と展開があります。
教訓と影響:
これらの以前の作業は DoH の設計に貴重な教訓を提供しました。
- 相互運用性の重要性: 初期の独自実装は、異なる実装間の相互運用性を確保するための標準化プロトコルの必要性を示しました。
- パフォーマンスの考慮事項: DNS Wire Format の効率性は良好なパフォーマンスを維持するために重要です。
- プライバシーのトレードオフ: 異なるアプローチは異なるレベルのプライバシー保護を提供し、異なるトレードオフを伴います。
- HTTP との統合: HTTP の機能(キャッシュやコンテンツネゴシエーションなど)を十分に活用することで大きな利点が得られますが、正しいセマンティクスを確保するための慎重な設計が必要です。
- 展開の実用性: 標準ポート(443)と標準プロトコル(HTTPS)の使用により、既存のインフラストラクチャとファイアウォールルールを活用できるため、DoH の展開が容易になります。