跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • iOS14 结合 DNS 的 HTTPS 记录进行 HTTP/3 连接的实测
未分類
7 10 月 2020

iOS14 结合 DNS 的 HTTPS 记录进行 HTTP/3 连接的实测

iOS14 结合 DNS 的 HTTPS 记录进行 HTTP/3 连接的实测

資深大佬 : domosekai 1

前情提要: https://www.v2ex.com/t/699027

上次发现 iOS14 会查询域名的 HTTPS 记录(TYPE65,以前叫 HTTPSSVC)后,本以为只是个试探性功能没多大用,结果今天看到 cloudflare 的贴文,已经完全实用化了。

简单来说,使用 CF 的域名已增加 HTTPS 记录,记录里罗列服务器支持的协议类型(如 HTTP/3,HTTP/2 ),同时提供 IPv4 和 v6 地址,免去查询 A 和 AAAA 记录的必要,使得客户端可以直接用合适的协议连接,不需要先 HTTP 再 fallback 。

原文: https://blog.cloudflare.com/speeding-up-https-and-http-3-negotiation-with-dns/

不罗嗦,下面是网关上的抓包分析,以 iOS14 设备连接 V2EX 为例( Safari 要先开启 HTTP/3 支持): iOS14 结合 DNS 的 HTTPS 记录进行 HTTP/3 连接的实测

1 、包 497-499:客户端发出 HTTPS(65),A,AAAA 三种类型的 DNS 查询

2 、包 500:HTTPS 结果返回,由于 wireshark 不支持 decode 65 记录,翻译如下,data 部分共 96 字节:

0000   00 01 00 00 01 00 15 05 68 33 2d 32 39 05 68 33   ........h3-29.h3 0010   2d 32 38 05 68 33 2d 32 37 02 68 32 00 04 00 0c   -28.h3-27.h2.... 0020   68 14 09 da 68 14 0a da ac 43 03 bc 00 06 00 30   h..Úh..Ú¬C.¼...0 0030   26 06 47 00 00 10 00 00 00 00 00 00 68 14 09 da   &.G.........h..Ú 0040   26 06 47 00 00 10 00 00 00 00 00 00 68 14 0a da   &.G.........h..Ú 0050   26 06 47 00 00 10 00 00 00 00 00 00 ac 43 03 bc   &.G.........¬C.¼ 

跳过前三字节,此后每条记录有 4 字节 header,2 字节 key 和 2 字节 length 。

记录 1:00010015,0001 是 alpn,15 是长度,内容是支持的协议:h3-29,h3-28,h3-27,h2 四种,由于 http/3 还在 draft,后面带的是草案版本

记录 2:0004000c,0004 是 ipv4hint,就是 ipv4 地址,省得你去查 A 记录,值当然就是 ip 地址

记录 3:00060030,0006 是 ipv6hint,内容正好是最后 3 行,从 hex 就看得出是三条 v6 地址,2606:4700 开头

3 、包 501,504:Safari 发出 HTTP/3 请求和服务端应答,可以看到是 UDP(QUIC),没有进一步研究

4 、包 502-503:A 和 AAAA 的应答,在这里已经没用了

另外,目前 Google 、CF DNS 都可以正常返回 HTTPS 记录,dnspod 和 alidns 不支持,114 和百度支持但非常缓慢,可用dig type65 example.com测试。小白注意,HTTPS 记录和 DOH 没有任何关系。

大佬有話說 (1)

  • 主 資深大佬 : domosekai

    又想到一点,既然 HTTPS 回答包括了 IP 地址,那么所有基于 DNS 的策略(比如 ipset,比如那些不可描述的分流工具)都将可能暂时失效。即便客户端同时发出 A 和 AAAA,但可能由于时间差,连接请求早于分流发出。

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具