エニーキャストと RFC 8484 DoH への移行

dns.google ドメインでの DoH のリリースと Google Public DNS のよく知られているエニーキャスト IP アドレスでの DoH のリリースの一環として、他の IP アドレスを使用する dns.google.com ドメインでのベータ版 DoH サービスは非推奨になり、利用できなくなります。

RFC 8484 API の試験運用版バージョンも非推奨になりました。dns.google/experimental はサポートされていません。また、dns.google/experimental は dns.google/dns-query に移行される予定です。

タイムライン

日付 終了ステップ
2019-07-23 2019-08-01 dns.google.com/experimentaldns.google/dns-query にリダイレクトします - DONE
2019-08-05 2019-08-21 dns.google.com は Google Public DNS のエニーキャスト IP アドレスに解決DONE
2019-09-24 dns.google.com の古い IP アドレスdns.google にリダイレクトされるDONE
2020-06-23 dns.google.com はどこでも dns.google にリダイレクトされる

スケジュールの変更はこちらで更新され、public-dns-announce に投稿されます。 メーリング リストに登録して最新情報を入手してください。

2019 年 8 月 1 日(木曜日)

https://dns.google.com/experimental のリクエストでは、https://dns.google/dns-query への HTTP 301 リダイレクトが返されます。

/resolve の JSON API を使用する DoH アプリケーションは影響を受けません。

2019 年 8 月 21 日(水曜日)

dns.google.com は、Google Public DNS エニーキャスト IP アドレスに解決されます。

これはほとんどの DoH アプリケーションに対して透過的であり、変更の必要はありません。

2019 年 9 月 24 日(火曜日)

以前の dns.google.com IP アドレスに対する DoH クエリでは、https://dns.google/ への HTTP 301 リダイレクトが返されます。

これは、RFC 8484 または JSON API を使用する DoH アプリケーションに影響する可能性があります。

ハードコードされた、構成可能な、または永続的にキャッシュされた IP アドレスに DoH リクエストを送信するアプリケーションは、次のいずれかまたは両方をサポートする必要があります。

2020 年 6 月 23 日(火曜日)

エニーキャスト IP アドレスで dns.google.com に DoH クエリを行うと、dns.google への HTTP 301 リダイレクトが返されます。

これは、RFC 8484 または JSON API を使用する DoH アプリケーションに影響する可能性があります。

Google DoH と連携するには、アプリケーションで次のいずれか 1 つ以上をサポートする必要があります。

DoH クライアントに関する変更

HTTP リダイレクトに従う

DoH サーバーは、DNS クエリを処理する単なる HTTP サーバーです。そのため、HTTP リダイレクト(コード 301、302、307、または 308)を返すことがあり、DoH クライアントは他の HTTP クライアントと同様にこれらのリダイレクトに従う必要があります。

デベロッパーは、DoH URL のベースとして https://8.8.8.8/experimental または https://8.8.8.8/resolve を使用して HTTP リダイレクトのサポートを確認できます。これらは https://dns.google/dns-queryhttps://dns.google/resolve への HTTP 301 リダイレクトを返します(GET パラメータを維持します)。

Google DoH に dns.google ドメインを使用する

DoH アプリケーションでは、dns.google.com の代わりに dns.google を使用する必要があります。RFC 8484 と JSON API のどちらを使用する場合でも、ハードコードされた DoH リゾルバまたは構成されたリストを持つ DoH アプリケーションでは、URL または URI テンプレートで dns.google.com を dns.google に置き換える必要があります。

Google Public DNS エニーキャスト IP アドレスを使用する

ハードコードまたは構成済みの IP アドレスのリストに DoH リクエストを送信する DoH アプリケーションは、(ブートストラップのみであっても)dns.google.com の以前のアドレスを Google Public DNS エニーキャスト IP アドレスに置き換える必要があります。

構成用の URI テンプレート

DoH アプリケーションでは、エンドポイントに構成柔軟性を提供する必要があります。そのために推奨される標準的な方法は、URI テンプレートを使用することです。完全な構成が可能な DoH アプリケーション デベロッパーは、新しい URL(URI テンプレート: https://dns.google/dns-query{?dns})をユーザーに通知する必要があります。

RFC 8484 DoH に https://dns.google/dns-query を使用する

ハードコードされた、または構成された DoH リゾルバのリストを持つ DoH アプリケーションは、インターネット ドラフト DoH API の https://dns.google.com/experimental URL を https://dns.google/dns-query に置き換え、RFC 8484 に完全に準拠していることを確認する必要があります。

/experimental API(dns.google.com でのみ利用可能)は、ウェブセーフではない Base64 エンコードと application/dns-udpwireformat コンテンツ タイプを使用するクエリを受け入れましたが、/dns-query API によって拒否されました(dns.google でのみ利用可能)。これらの違いについて、以降の 2 つのセクションで説明します。

GET dns パラメータに Base64Url エンコードを使用する

GET リクエストの dns パラメータにウェブセーフの Base64Url エンコードを使用します。Base64(+ /)は(- _)に置き換え、パディング(=)文字を削除します。

同意して application/dns-message を送信します

Accept ヘッダーで application/dns-message を使用し(RFC 8484 POST の場合は Content-Type ヘッダーで)、レスポンスの Content-Type として受け入れます。

POST に古い Content-Type を使用すると、415 Unsupported Media Type で失敗します。

Accept ヘッダーで古い Content-Type を使用しているアプリケーションは、Content-Type application/dns-message でレスポンスを受け取ります。これらを受け入れ、予期しない Content-Type のために無視しない DoH アプリケーションは、引き続き機能します。