#https #dns
#https #dns
Вопрос:
Из недавней статьи Cloudflare, автоматически добавляющей записи DNS SVCB / HTTPS, я пытаюсь интерпретировать то, что они публикуют в записи DNS.
Текущий черновик для SVCB или HTTPS выглядит как «черновик-ietf-dnsop-svcb-https-01».
Использование dig для получения записи DNS блога cloudflare:
dig blog.cloudflare.com -t TYPE65
Ответ на запрос:
;; ANSWER SECTION:
blog.cloudflare.com. 300 IN TYPE65 # 76 000100000100150568332D32390568332D32380568332D3237026832 0004000868121A2E68121B2E00060020260647000000000000000000 68121A2E26064700000000000000000068121B2E
Возвращает формат ответа в кодировке RFC3597.
Было бы неплохо узнать, что он говорит. Что это говорит?
Ответ №1:
drill
Команда поддерживает HTTPS RR (тип 65) в последней версии git [1]. Чтобы использовать его, создайте с помощью ldns --enable-rrtype-svcb-https
. Вот примеры использования:
$ drill HTTPS blog.cloudflare.com | grep ^blog
blog.cloudflare.com. 300 IN HTTPS 1 . alpn=h3-29,h3-28,h3-27,h2 ipv4hint=104.18.26.46,104.18.27.46 ipv6hint=2606:4700::6812:1a2e,2606:4700::6812:1b2e
$ drill HTTPS crypto.cloudflare.com | grep ^crypto
crypto.cloudflare.com. 237 IN HTTPS 1 . alpn=h2 ipv4hint=162.159.135.79,162.159.136.79 echconfig=AEj CgBEhwAgACA8RalVTTRgfQYqMSqwX4GiBa6kftXcUcQZIkqhwe0PLwAEAAEAAQAAABNjbG91ZGZsYXJlLWVzbmkuY29tAAA= ipv6hint=2606:4700:7::a29f:874f,2606:4700:7::a29f:884f
Обновление 2021/09/05: dig теперь также поддерживает записи HTTPS в последней версии git [2]. Вот примеры использования:
$ dig HTTPS blog.cloudflare.com | grep ^blog
blog.cloudflare.com. 242 IN HTTPS 1 . alpn="h3,h3-29,h3-28,h3-27,h2" ipv4hint=104.18.26.46,104.18.27.46 ipv6hint=2606:4700::6812:1a2e,2606:4700::6812:1b2e
$ dig HTTPS crypto.cloudflare.com | grep ^crypto
crypto.cloudflare.com. 285 IN HTTPS 1 . alpn="h2" ipv4hint=162.159.135.79,162.159.136.79 ech=AEb DQBCmwAgACA5ysTCbPox2yTLTsrGuJ8QHfwHjqZLcNGTA7xAiBJNSQAEAAEAAQATY2xvdWRmbGFyZS1lc25pLmNvbQAA ipv6hint=2606:4700:7::a29f:874f,2606:4700:7::a29f:884f
[1] https://github.com/NLnetLabs/ldns/pull/115
[2] https://gitlab.isc.org/isc-projects/bind9/-/merge_requests/2135
Комментарии:
1.
dnscrypt-proxy -resolve
Команда также отображает записи HTTPS по умолчанию.2. Двоичный файл детализации в Ubuntu 23.04 теперь поддерживает запись DNS HTTPS. Детализация компиляции — это кошмар, поэтому самый простой способ получить этот двоичный файл
sudo docker run -it ubuntu:devel bash
Ответ №2:
Мне удалось вручную расшифровать первую его часть:
# 76 total length
0001 priority
00 full registered name, null, "."
0001 alpn key type
0015 alpn value length
05 alpn-id length
68332D3239 alpn-id: h3-29
05 alpn-id length
68332D3238 alpn-id: h3-28
05 alpn-id length
68332D3237 alpn-id: h3-27
02 alpn-id length
6832 alpn-id: h2
Возможно, я проработаю остальное позже, но интересно посмотреть типы ALPN h3-29, 28 и 27.
Я также обнаружил, что dnspython поддерживает тип записи в master, а некоторые другие программы выполняют это в соответствии с этим списком: https://github.com/MikeBishop/dns-alt-svc/blob/master/svcb-implementations.md
Ответ №3:
Похоже, что Wireshark 3.4.0 теперь поддерживает декодирование записей HTTPS, если вы можете перехватить пакет.
Это показывает мне, что Cloudflare предоставляет подсказки IPv4 и IPv6, а также информацию ALPN.
Комментарии:
1. Спасибо за обновление! Если бы вы могли включить копию какого-либо вывода, я думаю, это было бы полезно для других, помимо необработанных заметок в другом ответе.