Migration vers Anycast et RFC 8484 DoH

Dans le cadre du lancement de DoH sur le domaine dns.google et des adresses IP Anycast bien connues pour le DNS public de Google, le service DoH bêta sur le domaine dns.google.com en utilisant d'autres adresses IP est désormais obsolète et sera désactivé.

La version expérimentale de l'API RFC 8484 est également obsolète. dns.google/experimental n'est pas compatible, et dns.google/experimental sera migré vers dns.google/dns-query.

Chronologie

Date Étape relative à l'abandon
2019-07-23 2019-08-01 dns.google.com/experimental redirige vers dns.google/dns-queryDONE
2019-08-05 2019-08-21 dns.google.com résout l'adresse IP anycast du DNS public de Google : DONE
2019-09-24 Les anciennes adresses IP de dns.google.com redirigent les utilisateurs vers dns.google : DONE
2020-06-23 dns.google.com redirige vers dns.google partout

Les modifications apportées au calendrier sont mises à jour ici et publiées sur public-dns-announce. Abonnez-vous à cette liste de diffusion pour recevoir les mises à jour.

Jeudi 1er août 2019

Les requêtes pour https://dns.google.com/experimental reçoivent une erreur HTTP 301 et sont redirigées vers https://dns.google/dns-query.

Les applications DoH qui utilisent l'API JSON dans /resolve ne sont pas affectées.

Mercredi 21 août 2019

dns.google.com résout les adresses IP Anycast du DNS public de Google.

Ce changement est transparent pour la plupart des applications DoH. Aucune modification n'est requise.

Mardi 24 septembre 2019

Les requêtes DoH vers d'anciennes adresses IP dns.google.com reçoivent une redirection HTTP 301 vers https://dns.google/.

Cela peut affecter les applications DoH qui utilisent l'API RFC 8484 ou JSON.

Les applications qui envoient des requêtes DoH à des adresses IP codées en dur, configurables ou mises en cache de manière permanente doivent être compatibles avec l'une des conditions suivantes, ou les deux:

Mardi 23 juin 2020

Les requêtes DoH vers dns.google.com sur les adresses IP Anycast obtiennent une redirection HTTP 301 vers dns.google.

Cela peut affecter les applications DoH qui utilisent l'API RFC 8484 ou JSON.

Pour fonctionner avec Google DoH, les applications doivent être compatibles avec au moins l'un des éléments suivants:

Modifications pour les clients DoH

Suivre des redirections HTTP

Les serveurs DoH ne sont que des serveurs HTTP traitant des requêtes DNS. Par conséquent, ils peuvent renvoyer des redirections HTTP (codes 301, 302, 307 ou 308), et les clients DoH doivent suivre ces redirections comme n'importe quel autre client HTTP.

Les développeurs peuvent vérifier la compatibilité de la redirection HTTP en utilisant https://8.8.8.8/experimental ou https://8.8.8.8/resolve comme base pour leurs URL DoH. Ils renvoient une redirection HTTP 301 vers https://dns.google/dns-query et https://dns.google/resolve (conservant tous les paramètres GET).

Utiliser le domaine dns.google pour Google DoH

Les applications DoH doivent utiliser dns.google au lieu de dns.google.com. Avec l'API RFC 8484 ou JSON, les applications DoH disposant d'une liste configurée de résolveurs DoH doivent remplacer dns.google.com par dns.google dans toutes les URL ou modèles d'URI.

Utiliser des adresses IP Anycast DNS publiques de Google

Les applications DoH qui envoient des requêtes DoH à une liste d'adresses IP codées en dur ou configurées (même uniquement pour l'amorçage) doivent remplacer les anciennes adresses de dns.google.com par les adresses IP Anycast du DNS public de Google.

Modèles d'URI pour la configuration

Les applications DoH doivent permettre la configurabilité des points de terminaison. La méthode standard et privilégiée consiste à utiliser des modèles d'URI. Les développeurs d'applications DoH ayant une configurabilité complète doivent informer les utilisateurs de la nouvelle URL (modèle d'URI : https://dns.google/dns-query{?dns}).

Utiliser https://dns.google/dns-query pour la norme RFC 8484 DoH

Les applications DoH avec une liste configurée ou codée en dur de résolveurs DoH doivent remplacer l'URL https://dns.google.com/experimental du brouillon de l'API DoH sur Internet par https://dns.google/dns-query et confirmer la conformité totale avec la norme RFC 8484.

L'API /experimental (disponible uniquement sur dns.google.com) accepte les requêtes utilisant un encodage Base64 non sécurisé pour le Web et un type de contenu application/dns-udpwireformat, qui sont rejetés par l'API /dns-query (uniquement disponible sur dns.google). Ces différences sont décrites dans les deux sections suivantes.

Utiliser l'encodage Base64Url pour le paramètre GET dns

Utilisez l'encodage Base64Url Web sécurisé pour le paramètre dns dans les requêtes GET, en remplaçant Base64 (+ /) par (- _) et en supprimant les caractères de remplissage (=).

Accepter et envoyer application/dns-message

Utilisez application/dns-message dans l'en-tête Accept (et pour la norme RFC 8484 POST dans l'en-tête Content-Type), et acceptez-le comme type de contenu pour les réponses.

L'utilisation de l'ancien type de contenu pour la méthode POST échouera avec le code d'erreur 415 "Unsupported Media Type" (Type de média non compatible).

Les applications utilisant l'ancien Content-Type dans l'en-tête Accept obtiendront des réponses avec Content-Type application/dns-message. Les applications DoH qui les acceptent et ne les ignorent pas en raison d'un type de contenu inattendu fonctionneront toujours.