Переход на Anycast и RFC 8484 DoH

В рамках запуска DoH в домене dns.google и широко известных Anycast IP-адресов для Google Public DNS бета- сервис DoH в домене dns.google.com с использованием других IP-адресов устарел и будет отключен. .

Экспериментальная версия API RFC 8484 также устарела; dns.google/experimental не поддерживается, а dns.google.com/experimental будет перенесен в dns.google/dns-query.

График

Дата Шаг настройки
2019-07-23 2019-08-01 dns.google.com/experimental перенаправляет на dns.google/dns-queryDONE
05.08.2019 21.08.2019 dns.google.com преобразуется в произвольные IP-адреса общедоступного DNS GoogleDONE
2019-09-24 Старые IP-адреса для перенаправления dns.google.com на dns.googleDONE
2020-06-23 dns.google.com везде перенаправляет на dns.google

Изменения в этой временной шкале обновляются здесь и публикуются в public-dns-announce . Подпишитесь на этот небольшой список рассылки для получения обновлений.

Четверг, 1 августа 2019 г.

Запросы https://dns.google.com/experimental получают перенаправление HTTP 301 на https://dns.google/dns-query .

Приложения DoH, использующие JSON API в /resolve не затронуты.

Среда, 21 августа 2019 г.

dns.google.com преобразуется в произвольные IP-адреса общедоступного DNS Google .

Это прозрачно для большинства приложений DoH и не требует никаких изменений.

Вторник, 24 сентября 2019 г.

Запросы DoH к бывшим IP-адресам dns.google.com получают перенаправление HTTP 301 на https://dns.google/ .

Это может повлиять на приложения DoH, использующие API RFC 8484 или JSON.

Приложения, которые отправляют запросы DoH на жестко запрограммированные, настраиваемые или постоянно кэшированные IP-адреса , должны поддерживать одно или оба из следующих действий:

Вторник, 23 июня 2020 г.

Запросы DoH на dns.google.com на произвольных IP-адресах получают перенаправление HTTP 301 на dns.google.

Это может повлиять на приложения DoH, использующие API RFC 8484 или JSON.

Для работы с Google DoH приложения должны поддерживать хотя бы одно из следующего:

Изменения для клиентов DoH

Следуйте HTTP-перенаправлениям

Серверы DoH — это просто HTTP-серверы, обрабатывающие DNS-запросы. Таким образом, они могут возвращать перенаправления HTTP (коды 301, 302, 307 или 308), и клиенты DoH должны следовать этим перенаправлениям, как и любой другой клиент HTTP.

Разработчики могут проверить поддержку перенаправления HTTP, используя https://8.8.8.8/experimental или https://8.8.8.8/resolve в качестве основы для своих URL-адресов DoH; они возвращают перенаправления HTTP 301 на https://dns.google/dns-query и https://dns.google/resolve (с сохранением всех параметров GET).

Используйте домен dns.google для Google DoH

Приложения DoH должны использовать dns.google вместо dns.google.com. Независимо от того, используете ли вы RFC 8484 или JSON API, любые приложения DoH с жестко закодированным или настроенным списком преобразователей DoH должны заменять dns.google.com на dns.google в любых URL-адресах или шаблонах URI.

Использовать произвольные IP-адреса Google Public DNS

Приложения DoH, которые отправляют запросы DoH на жестко закодированный или настроенный список IP-адресов (даже просто для начальной загрузки), должны заменить прежние адреса dns.google.com на произвольные IP-адреса Google Public DNS .

Шаблоны URI для настройки

Приложения DoH должны обеспечивать возможность настройки конечных точек; предпочтительный и стандартный способ сделать это — использовать шаблоны URI . Разработчики приложений DoH с полной настраиваемостью должны уведомить пользователей о новом URL-адресе (шаблон URI: https://dns.google/dns-query{?dns} ).

Используйте https://dns.google/dns-query для RFC 8484 DoH.

Приложения DoH с жестко закодированным или настроенным списком преобразователей DoH должны заменить https://dns.google.com/experimental URL-адрес интернет-проекта DoH API на https://dns.google/dns-query и подтвердить полное соответствие RFC 8484.

API /experimental (доступен только на dns.google.com) принимает запросы с использованием небезопасной для веб-безопасности кодировки Base64 и типа контента application/dns-udpwireformat , которые отклоняются API /dns-query (доступен только на dns.google). Эти различия описаны в следующих двух разделах.

Используйте кодировку Base64Url для параметра GET dns .

Используйте веб-безопасную кодировку Base64Url для параметра dns в запросах GET, заменяя Base64 ( + / ) на ( - _ ) и удаляя символы заполнения ( = ).

Принять и отправить application/dns-message

Используйте application/dns-message в заголовке Accept (а для RFC 8484 POST — в заголовке Content-Type) и примите его как Content-Type ответов.

Использование старого типа контента для POST завершится неудачей с 415 неподдерживаемым типом носителя.

Приложения, использующие старый Content-Type в заголовке Accept, будут получать ответы с Content-Type application/dns-message. Приложения DoH, которые принимают их и не игнорируют из-за неожиданного типа контента, все равно будут работать.