V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
dreamage
V2EX  ›  DNS

dns https 记录用途

  •  
  •   dreamage · 2023-02-02 17:45:53 +08:00 · 5049 次点击
    这是一个创建于 651 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    19 条回复    2023-02-06 11:01:12 +08:00
    xipuxiaoyehua
        1
    xipuxiaoyehua  
       2023-02-02 17:48:29 +08:00
    dns over udp, dns over http(s), dns over tls ...
    leonshaw
        2
    leonshaw  
       2023-02-02 18:08:23 +08:00   ❤️ 1
    看看 IETF draft draft-ietf-dnsop-svcb-https
    oxromantic
        3
    oxromantic  
       2023-02-02 18:36:10 +08:00   ❤️ 1
    DoH, 防 DNS 污染,能来这个站的应该能领会吧
    leido
        4
    leido  
       2023-02-02 20:02:50 +08:00 via Android
    leido
        5
    leido  
       2023-02-02 20:07:42 +08:00 via Android
    国内最早是腾讯云推出的 httpdns ,那时候 doh 还没有普及,现在谷歌 cf 阿里腾讯都支持 doh dot
    dreamage
        6
    dreamage  
    OP
       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
        7
    dreamage  
    OP
       2023-02-02 20:39:59 +08:00
    @leonshaw 感谢
    johnjiang85
        8
    johnjiang85  
       2023-02-02 21:59:16 +08:00   ❤️ 3
    https 记录类型承载的功能比较多,类似传统的 srv 记录的一种扩展,最常见的使用场景是设置服务器支持的 https 协议版本( h3/h2/h1.1 等)、端口、优先级、兜底 IP 等,如果客户端支持 https 记录类型( ios14 以上),在某些场景下可以减少一些协议探测协商的过程。
    zhengjian
        9
    zhengjian  
       2023-02-03 01:55:56 +08:00
    iOS14 结合 DNS 的 HTTPS 记录进行 HTTP/3 连接的实测 /t/712074
    jim9606
        10
    jim9606  
       2023-02-03 03:22:11 +08:00
    这个记录可以在客户端连接前通过 DNS 了解服务器支持的 http 协议版本、端口号和偏好等。例如 HTTP 2/3 就可以直接建立连接,而不是先建立 HTTP/1.1 (可能还要加个 TLS )后通过 Alt-Svc 头和 Protocol Upgrade 机制升级,改善首包响应时间。
    RRyo
        11
    RRyo  
       2023-02-03 08:39:55 +08:00
    家宽环境下最大用途就是可以在非标准端口开 https ,然后利用 type65 的 SVCB 解析 直接用 https://url 访问,不需要再手动加 :端口 了
    客户端这边目前主要是苹果在推,ios 现在会发出这种请求
    kincaid
        12
    kincaid  
       2023-02-03 09:00:48 +08:00
    目前只有苹果在用这种记录,还处于实验阶段,国内的话去年底 DNSPod 已经支持添加该类型记录了
    kincaid
        13
    kincaid  
       2023-02-03 09:04:31 +08:00
    @dreamage 文档里确实没写明白,可以看看添加记录页面的说明 https://im.gurl.eu.org/file/d1daa060e4a5983296169.png
    julyclyde
        14
    julyclyde  
       2023-02-03 09:54:06 +08:00
    到底是指“名字叫 https 的 resource record”还是一个 DNS over https 的 request ?
    dreamage
        15
    dreamage  
    OP
       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
        16
    julyclyde  
       2023-02-03 10:13:40 +08:00
    @dreamage type HTTPS class IN
    应该是 resource record
    也就是
    @johnjiang85
    @zhengjian
    @jim9606
    @RRyo
    @kincaid
    说的这件事
    david98
        17
    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
        18
    aes114514gcm  
       2023-02-03 23:49:29 +08:00 via Android
    恰好最近 cloudflare 在测试 ech ,一些免费计划的小站点 HTTPS 记录里已经有 ech 公钥了
    xusp
        19
    xusp  
       2023-02-06 11:01:12 +08:00
    老哥专业。
    @david98
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3579 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 00:48 · PVG 08:48 · LAX 16:48 · JFK 19:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.