即将推出的 DNS SVCB RR 与旧的 SRV 记录之间的主要区别是什么?

即将推出的 DNS SVCB RR 与旧的 SRV 记录之间的主要区别是什么?

DNS 中很久以前就定义了 SRV 记录,它允许将域的某些服务定向到不同的机器。例如,这是我在TCP 端口 389example.com上为域发布 LDAP 服务的方式:server1.example.net

_ldap._tcp.example.com IN SRV 100 1 389 server1.example.net 

此类记录可能不止一条,这样我就可以实现一些负载平衡。

某些服务通常支持相应的 DNS 查找,包括 LDAP、Kerberos、SIP、XMPP 和其他一些服务。但是,对于电子邮件,我们使用一种SRV称为记录的“简化形式” MX。它不允许我们定义权重和更改端口(它始终使用 tcp 25)。有些服务根本不使用这种类型的查找,例如,HTTP 客户端从不发出相应的 DNS 请求,并且始终连接到相应主机的 TCP 端口 80(或 HTTPS 的 443)。

最近新草案出现了,建议使用一种特殊的新类型的 DNS 记录,称为 SVCB 记录。它还定义了一种特殊的 SVCB 记录类型,即 HTTPS 记录。在草案中,作者确认这本质上是一种新型的 SRV 记录。

所以我想知道为什么他们发明了一种具有全新语义的新型记录,而不是推动采用众所周知且广泛使用的 SRV 记录?为什么不使用类似

_https._tcp.example.net IN SRV 100 1 443 server2.example.com

缺点也类似:这需要更换软件。旧客户端软件既不会执行 SRV 请求,也不会执行 SVCB/HTTPS DNS 请求,因此两者都不起作用。

然而,SVCB 还有一个很大的缺点:记录类型是新的,因此它还需要 DNS 服务器更新和管理员培训。顺便说一句,记录的语义并不是那么简单。

作为一名负责十几个公共 DNS 域的专业管理员,我对此感到担忧。

有哪些显著的优势?

答案1

引自草案附录 C.1

C.1.  Differences from the SRV RR type

   An SRV record [SRV] can perform a similar function to the SVCB
   record, informing a client to look in a different location for a
   service.  However, there are several differences:

   *  SRV records are typically mandatory, whereas SVCB is intended to
      be optional when used with pre-existing protocols.

   *  SRV records cannot instruct the client to switch or upgrade
      protocols, whereas SVCB can signal such an upgrade (e.g. to
      HTTP/2).

   *  SRV records are not extensible, whereas SVCB and HTTPS RRs can be
      extended with new parameters.

   *  SRV records specify a "weight" for unbalanced randomized load-
      balancing.  SVCB only supports balanced randomized load-balancing,
      although weights could be added via a future SvcParam.

相关内容