Как веб-браузер использует запись ресурса DNS (RR) HTTPS или SVCB?

Как веб-браузер использует запись ресурса DNS (RR) HTTPS или SVCB?

Фон

IETF RFC 9460определяет SVCBзапись HTTPSресурса DNS (RR), которую можно использовать для обновления подключений до HTTPS, а также указывает поддерживаемые протоколы прикладного уровня (ALPN).

7 сентября 2021 года был выпущен Firefox 92, которыйдобавлена ​​поддержка HTTPS RR:

Firefox автоматически обновит HTTP-запрос до HTTPS, когда будет доступна пригодная для использования HTTPS RR. Он также будет использовать информацию, предоставленную в HTTPS RR, для оптимизации процесса установления HTTPS-соединений⁠ — это концептуально похоже на использование заголовка Alt-Svc.Ошибка Firefox 1721132).

Тест

Попробую проверить это с помощью www.google.com.

Сначала я попытался проверить, есть ли у него HTTPSRR:

$ dig 8.8.8.8 www.google.com HTTPS

...

;; ANSWER SECTION:
www.google.com.     3358    IN  HTTPS   1 . alpn="h2,h3"

Здесь мы видим, что HTTPSRR существует, и замечаем, что HTTP/3 — это поддерживаемый протокол, обозначенный значением h3параметра alpn.

Далее, попытался очистить кэш DNS моей операционной системы. Например, в Windows я запустил ipconfig /flushdns. Также запустил это прямо перед нажатием Enter в адресной строке, потому что Firefox и Chrome (или какой-то другой процесс), похоже, часто пытаются достичь google.com на одной из систем, которые я тестировал.

Открыл Firefox v120 и попытался посетить: www.google.com.

Проблема

Firefox v120, хотя в версии v92 и указано, что он будет использовать HTTPS RR для обновления и оптимизации, похоже, не запрашивает этого.

Wireshark показывает, что опрашиваются только Aи RR:AAAA

проводная акула

А Firefox изначально открывает соединение HTTP/2, а затем переключается на HTTP/3 из-за заголовка Alt-Svc:

Fire Fox

На самом деле, это не похоже на то, что любое (Chrome, IceCat, Edge и т. д.) настольное приложение на нескольких веб-сайтах HTTPSвообще запрашивает RR, потому что когда я фильтрую dns.qry.type == "HTTPS"или dns.qry.type == 65на WireShark, я не получаю никаких попаданий. Я получаю попадания только тогда, когда я явно делаю поиск через dig.

Вопрос

Почему кажется, что HTTPSRR никогда не запрашивается?

Чтобы попытаться понять проблему, я также задаю следующие наводящие вопросы, которые могут помочь найти первопричину:

  • Эта функция отключена по умолчанию?
  • Зависит ли это от настройки хоста (кроме настройки HTTPSRR)? Ни один из прочитанных мной ресурсов не указал, что нужны дополнительные шаги.
  • Кто несет ответственность за запрос HTTPSRR? Браузер или операционная система? До сих пор я пробовал это с обновленными версиями Guix System 1.4, Windows 10 и Windows 11 и всеми браузерами, которые я упомянул выше.
  • Зависит ли это от оборудования?

решение1

Я думаю, что это проблема, связанная с Windows, так как nslookup не поддерживает HTTPS-поиск и используется внутри win32. Я думаю, что браузеры зависят от функций win32. Если я протестирую это в Safari Chrome или Firefox на моем iPhone, это работает отлично.

Связанный контент