Migration zu Anycast und RFC 8484 DoH

Im Rahmen der Einführung von DoH auf der Domain dns.google und der bekannten Anycast-IP-Adressen für Google Public DNS wurde der DoH-Dienst Beta in der Domain dns.google.com über andere IP-Adressen eingestellt und eingestellt.

Die experimentelle Version der RFC 8484 API wurde ebenfalls verworfen. dns.google/experimental wird nicht unterstützt und dns.google/experimental wird zu dns.google/dns-query migriert.

Zeitplan

Datum Einstellungsschritt
2019-07-23 2019-08-01 dns.google.com/experimental leitet weiter zu dns.google/dns-queryDONE
2019-08-05 2019-08-21 dns.google.com wird in anycast-IP-Adressen von Google Public DNS aufgelöstDONE
2019-09-24 Alte IP-Adressen für dns.google.com leiten zu dns.google weiterDONE
2020-06-23 Von dns.google.com zu dns.google weitergeleitet

Änderungen an diesem Zeitplan werden hier aktualisiert und unter public-dns-announce veröffentlicht. Abonnieren Sie diese Mailingliste, um aktuelle Informationen zu erhalten.

Donnerstag, 1. August 2019

Bei Anfragen für https://dns.google.com/experimental erfolgt HTTP 301-Weiterleitung an https://dns.google/dns-query.

DoH-Anwendungen, die die JSON API unter /resolve verwenden, sind nicht betroffen.

Mittwoch, 21. August 2019

dns.google.com wird in die Google Public DNS-Anycast-IP-Adressen aufgelöst.

Dies ist bei den meisten DoH-Anwendungen transparent, ohne dass Änderungen erforderlich sind.

Dienstag, 24. September 2019

DoH-Abfragen an frühere IP-Adressen von dns.google.com erhalten HTTP 301-Weiterleitungen zu https://dns.google/.

Dies kann DoH-Anwendungen betreffen, die entweder RFC 8484 oder die JSON API verwenden.

Anwendungen, die DoH-Anfragen an hartcodierte, konfigurierbare oder dauerhaft im Cache gespeicherte IP-Adressen senden, müssen eine oder beide der folgenden Funktionen unterstützen:

Dienstag, 23. Juni 2020

DoH-Abfragen an dns.google.com über Anycast-IP-Adressen erhalten HTTP 301-Weiterleitungen an dns.google.

Dies kann DoH-Anwendungen betreffen, die entweder RFC 8484 oder die JSON API verwenden.

Damit Anwendungen mit Google DoH funktionieren können, müssen sie mindestens eines der folgenden Elemente unterstützen:

Änderungen für DoH-Kunden

HTTP-Weiterleitungen folgen

DoH-Server sind nur HTTP-Server, die DNS-Abfragen verarbeiten. Sie können also HTTP-Weiterleitungen mit den Codes 301, 302, 307 oder 308 zurückgeben. DoH-Clients sollten diesen Weiterleitungen wie jeden anderen HTTP-Client folgen.

Entwickler können die Unterstützung von HTTP-Weiterleitungen mit https://8.8.8.8/experimental oder https://8.8.8.8/resolve als Grundlage für ihre DoH-URLs prüfen. Diese geben HTTP 301-Weiterleitungen zu https://dns.google/dns-query und https://dns.google/resolve zurück, wobei alle GET-Parameter beibehalten werden.

Domain „dns.google“ für Google DoH verwenden

DoH-Anwendungen sollten dns.google anstelle von dns.google.com verwenden. Unabhängig davon, ob Sie die RFC 8484- oder die JSON-API verwenden, müssen DoH-Anwendungen mit einer hartcodierten oder konfigurierten Liste von DoH-Resolvern in allen URLs oder URI-Vorlagen „dns.google.com“ durch „dns.google“ ersetzen.

Anycast-IP-Adressen von Google Public DNS verwenden

DoH-Anwendungen, die DoH-Anfragen an eine hartcodierte oder konfigurierte Liste von IP-Adressen senden (auch nur für Bootstrapping), müssen die ehemaligen Adressen von dns.google.com durch die Google Public DNS-Anycast-IP-Adressen ersetzen.

URI-Vorlagen für die Konfiguration

DoH-Anwendungen sollten eine Konfigurierbarkeit für Endpunkte bieten. Die bevorzugte und Standardmethode hierfür sind URI-Vorlagen. DoH-Anwendungsentwickler mit vollständiger Konfigurierbarkeit sollten Nutzer über die neue URL (URI-Vorlage: https://dns.google/dns-query{?dns}) informieren.

https://dns.google/dns-query für RFC 8484 DoH verwenden

DoH-Anwendungen mit einer hartcodierten oder konfigurierten Liste von DoH-Resolvern müssen die https://dns.google.com/experimental-URL für die DoH API im Internetentwurf durch https://dns.google/dns-query ersetzen und die vollständige RFC 8484-Compliance bestätigen.

Die /experimental API (nur unter dns.google.com verfügbar) akzeptierte Abfragen mit nicht websicherer Base64-Codierung und application/dns-udpwireformat-Inhaltstyp, die von der /dns-query API (nur verfügbar unter dns.google) abgelehnt werden. Diese Unterschiede werden in den folgenden beiden Abschnitten beschrieben.

Base64Url-Codierung für GET-Parameter dns verwenden

Verwenden Sie die websichere Base64Url-Codierung für den Parameter dns in GET-Anfragen. Ersetzen Sie Base64 (+ /) durch (- _) und entfernen Sie Leerzeichen (=).

Akzeptieren und application/dns-message senden

Verwenden Sie application/dns-message im Accept-Header (und für RFC 8484 POST im Content-Type-Header) und akzeptieren Sie es als Content-Type der Antworten.

Die Verwendung des alten Content-Type für POST schlägt mit der Meldung 415 Supported Media Type (Nicht unterstützte Medientyp) fehl.

Anwendungen, die den alten Content-Type im Accept-Header verwenden, erhalten Antworten mit Content-Type application/dns-message. DoH-Anwendungen, die diese akzeptieren und nicht aufgrund eines unerwarteten Inhaltstyps ignorieren, funktionieren weiterhin.