Gau*_*sal 0 domain-name-system
我收到了很多来自客户的 SVCB(类型 65)查询。在进一步挖掘中,我发现很少有客户端(如苹果 iOS 14)大量使用此 RR。
SVCB(类型65)的示例查询如下 -
dig gsp85-ssl.ls.apple.com -t type65 @1.10.10.10
; <<>> DiG <<>> gsp85-ssl.ls.apple.com -t type65 @1.10.10.10
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30904
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;gsp85-ssl.ls.apple.com. IN TYPE65
;; ANSWER SECTION:
gsp85-ssl.ls.apple.com. 1823 IN CNAME gsp85-ssl.ls2-apple.com.akadns.net.
;; AUTHORITY SECTION:
akadns.net. 117 IN SOA internal.akadns.net. hostmaster.akamai.com. 1619000353 90000 90000 90000 180
;; Query time: 1 msec
;; SERVER:
;; WHEN: Tue Aug 24 20:33:05 2021
;; MSG SIZE rcvd: 164
Run Code Online (Sandbox Code Playgroud)
我有以下疑问——
一世。type65 RR 是否可以替代 CNAME ,特别是在我们不能在区域的顶层使用 CNAME 的情况下
ii. 我如何指示浏览器为我的域请求 type65 查询而不是 A 或 AAAA,以便我直接通过 CDN 获得我的 abc.com
三、哪个版本的 bind 支持 SVCB (type 65) RR
SVCB/ HTTPSDNS 记录目前正在处理中(工作文件见https://github.com/MikeBishop/dns-alt-svc/blob/master/draft-ietf-dnsop-svcb-https.md或https:// www.ietf.org/archive/id/draft-ietf-dnsop-svcb-https-07.txt在 IETF)但尚未最终确定。
现在奇怪的模棱两可的情况是 IANA 已经为它们注册了代码(这就是为什么它们已经可以在野外发生并且可以互操作,通过 RFC 3597 处理通用记录类型的方式),即使 RFC 还没有准备好/published,一些供应商(Apple 和 Cloudflare,见下文)表示他们已经实施并使用了它。
Cloudflare 的示例参见https://blog.cloudflare.com/speeding-up-https-and-http-3-negotiation-with-dns/,其中还给出了使用它的示例。我建议阅读它,可能在技术标准本身之前阅读,除非您已经掌握了 DNS 和 TLS。
这个想法基本上是在 TLS 1.3(以及加密的 clientHello/加密 SNI 需求)、HTTP/3 和 QUIC 之后/期间出现的。该文档实际上旨在解决多个问题,其中部分问题已经被SRV当时没有浏览器决定实施的记录解决了。
摘自摘要:
SVCB 记录允许从多个替代端点提供服务,每个端点都有关联的参数(例如传输协议配置和用于加密 TLS ClientHello 的密钥)。它们还启用顶级域的别名,这是 CNAME 无法实现的。HTTPS RR 是用于 HTTPS 和 HTTP 源的 SVCB 的变体。通过在客户端尝试建立连接之前向客户端提供更多信息,这些记录为性能和隐私提供了潜在的好处。
现在谈谈你的具体观点:
一世。type65 RR 是否可以替代 CNAME ,特别是在我们不能在区域的顶层使用 CNAME 的情况下
是的,SVCB/HTTPS旨在帮助处理“顶点 CNAME”案例。参见草稿中的“10.3.2. Apex aliasing”:
Consider a zone that is using CNAME aliasing:
$ORIGIN aliased.example. ; A zone that is using a hosting service
; Subdomain aliased to a high-performance server pool
www 7200 IN CNAME pool.svc.example.
; Apex domain on fixed IPs because CNAME is not allowed at the apex
@ 300 IN A 192.0.2.1
IN AAAA 2001:db8::1
With HTTPS RRs, the owner of aliased.example could alias the apex by
adding one additional record:
@ 7200 IN HTTPS 0 pool.svc.example.
Run Code Online (Sandbox Code Playgroud)
ii. 我如何指示浏览器为我的域请求 type65 查询而不是 A 或 AAAA,以便我直接通过 CDN 获得我的 abc.com
您将不得不等待浏览器支持它:-)
查看https://mailarchive.ietf.org/arch/msg/dnsop/eeP4H9fli712JPWnEMvDg1sLEfg/上的线程;似乎以某种实验方式支持 iOS 14 和 Safari。
Cloudflare 的博客文章最后提供了两个链接来跟踪 Firefox 和 Chrome 中的功能状态:
顺便说一句,高兴不要混淆严重。example.com在文档中使用,请参阅 RFC2606
三、哪个版本的 bind 支持 SVCB (type 65) RR
还没发货。这在https://gitlab.isc.org/isc-projects/bind9/-/issues/1132中进行了跟踪 它已在6天前合并:-) 因此,根据里程碑票:“2021 年 9 月(9.11.36、9.11.36-S1、9.16.21、9.16.21-S1、9.17.18)”
但是,多亏了 RFC 3597,您应该能够使用通用语法TYPE65在区域文件中输入记录,并且 bind 应该为其提供服务。您显然没有进行语法检查和其他功能(您可以查看https://gitlab.isc.org/isc-projects/bind9/-/merge_requests/5332/diffs以准确了解“添加 SVCB/HTTPS 支持绑定”的含义)代码方面;请参阅 IETF 草案中的第 4 节,了解权威和递归解析器需要为这些记录提供哪些具体支持;这是应该的,因此如果有充分的理由,可以接受变化,例如软件中还没有真正的全面支持),但至少你可以提供记录。
但请记住,不仅有绑定:
因此,您已经可以试验其他软件的全面支持。