dns https 记录用途

2023-02-02 17:45:53 +08:00
 dreamage

抓包才发现 dns 有个 https 记录请求,这个是做什么用途,在哪些场景下会用到?

5069 次点击
所在节点    DNS
19 条回复
xipuxiaoyehua
2023-02-02 17:48:29 +08:00
dns over udp, dns over http(s), dns over tls ...
leonshaw
2023-02-02 18:08:23 +08:00
看看 IETF draft draft-ietf-dnsop-svcb-https
oxromantic
2023-02-02 18:36:10 +08:00
DoH, 防 DNS 污染,能来这个站的应该能领会吧
leido
2023-02-02 20:02:50 +08:00
leido
2023-02-02 20:07:42 +08:00
国内最早是腾讯云推出的 httpdns ,那时候 doh 还没有普及,现在谷歌 cf 阿里腾讯都支持 doh dot
dreamage
2023-02-02 20:38:18 +08:00
应该不是 DoH 和 DoT 。比如本机访问 www.xx.com ,会向 DNS 服务器发送 A www.xx.com 和 https www.xx.com 两个请求。
我看 dnspod 可以做 https 解析配置,没明白文档写的解释:

https://docs.dnspod.cn/dns/help-https/
操作场景
如果需要将域名指向另一个域名指定值,再由另一个域名提供 IP 地址,就需要添加 HTTPS 记录,最常用到 HTTPS 的场景包括接口调用等。本文档指导您如何添加 HTTPS 记录。
dreamage
2023-02-02 20:39:59 +08:00
@leonshaw 感谢
johnjiang85
2023-02-02 21:59:16 +08:00
https 记录类型承载的功能比较多,类似传统的 srv 记录的一种扩展,最常见的使用场景是设置服务器支持的 https 协议版本( h3/h2/h1.1 等)、端口、优先级、兜底 IP 等,如果客户端支持 https 记录类型( ios14 以上),在某些场景下可以减少一些协议探测协商的过程。
zhengjian
2023-02-03 01:55:56 +08:00
iOS14 结合 DNS 的 HTTPS 记录进行 HTTP/3 连接的实测 /t/712074
jim9606
2023-02-03 03:22:11 +08:00
这个记录可以在客户端连接前通过 DNS 了解服务器支持的 http 协议版本、端口号和偏好等。例如 HTTP 2/3 就可以直接建立连接,而不是先建立 HTTP/1.1 (可能还要加个 TLS )后通过 Alt-Svc 头和 Protocol Upgrade 机制升级,改善首包响应时间。
RRyo
2023-02-03 08:39:55 +08:00
家宽环境下最大用途就是可以在非标准端口开 https ,然后利用 type65 的 SVCB 解析 直接用 https://url 访问,不需要再手动加 :端口 了
客户端这边目前主要是苹果在推,ios 现在会发出这种请求
kincaid
2023-02-03 09:00:48 +08:00
目前只有苹果在用这种记录,还处于实验阶段,国内的话去年底 DNSPod 已经支持添加该类型记录了
kincaid
2023-02-03 09:04:31 +08:00
@dreamage 文档里确实没写明白,可以看看添加记录页面的说明 https://im.gurl.eu.org/file/d1daa060e4a5983296169.png
julyclyde
2023-02-03 09:54:06 +08:00
到底是指“名字叫 https 的 resource record”还是一个 DNS over https 的 request ?
dreamage
2023-02-03 10:12:08 +08:00
@julyclyde


Domain Name System (query)
Transaction ID: 0xe263
Flags: 0x0100 Standard query
Questions: 1
Answer RRs: 0
Authority RRs: 0
Additional RRs: 0
Queries
xxx.xxx.com: type HTTPS, class IN
Name: xxx.xxx.com
[Name Length: 22]
[Label Count: 3]
Type: HTTPS (HTTPS Specific Service Endpoints) (65)
Class: IN (0x0001)
[Response In: 69]
julyclyde
2023-02-03 10:13:40 +08:00
@dreamage type HTTPS class IN
应该是 resource record
也就是
@johnjiang85
@zhengjian
@jim9606
@RRyo
@kincaid
说的这件事
david98
2023-02-03 12:44:37 +08:00
这个是 DNS SVCB/HTTPS 记录
SVCB 记录的结构如下:
_端口._协议.子域名 TTL IN SVCB 优先级 目标域名 [服务参数...]

目标是通过一次 DNS 查询来加速通信连接过程
优先级 == 0 表示别名模式( AliasMode )
支持绑定根域名
优先级 != 0 表示服务模式( ServiceMode )
服务参数是任意键值对,主要的有:
TLS ALPN 提示信息
端口
ECH 配置信息(公钥等)
IP 提示信息

理论上可以使用 SVCB 记录发现其他服务的协议、端口等信息。
HTTPS 记录记录是一类特殊的 svcb 记录,功能上没有任何区别,但不需要指定 _https 协议前缀。
可以更好地支持通配符域名。
aes114514gcm
2023-02-03 23:49:29 +08:00
恰好最近 cloudflare 在测试 ech ,一些免费计划的小站点 HTTPS 记录里已经有 ech 公钥了
xusp
2023-02-06 11:01:12 +08:00
老哥专业。
@david98

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/912654

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX