摘要

  • 10 月 27 日提交的个人互联网草案提出让 QUIC 直接承载于以太网帧,BGP 会话不再经过 IP、UDP 头。会话依赖本地接口、对端 MAC、远端 AS 和每个邻居独立的预共享密钥;交换网络还须放行提议中的新 EtherType。
  • 可选的 Link Next Hop 能把同一二层网段上第三台设备的 MAC 写进路由。草案明确承认,接收方无法验证第三方 MAC 是否属于路由发起者。认证谈话的人,与授权数据包的收件人,是两道不同的关。

把会话锁在交换机这一层

一台远处的机器无法通过 IP 路由接入这条会话,因为这里根本没有供它访问的 IP 端点。BoL2Q 草案让 QUIC 包直接进入以太网帧,不使用 IP 和 UDP 头。两名 BGP 参与者必须位于同一个二层网段。双方预先配置本地接口、邻居 MAC、远端 AS,以及只用于该邻居的密钥。草案还要求新的 EtherType,并建议硬件把这类帧送入独立的控制平面限速通道。

这种边界不是软件单方面说了算。互联网交换中心若不在交换网络里放行该 EtherType,会话无法建立;放行之后,成员路由器又得正确维护端口、MAC 和密钥。更换设备导致对端 MAC 改变时,会话重置,学来的路由也撤销。一个看似普通的硬件更新因此可能改变路由表。草案对链路的限定越严格,变更单上的物理细节就越不能含糊。

MAC 在这里选中一份邻居配置,却不能充当身份证。网段内另一台设备可以伪装该 MAC,扰乱交换机的地址学习,或者吃掉某个会话的限速额度;没有密钥,它不能凭伪装接管 QUIC 会话。TLS 握手与 BGP OPEN 中的 AS 核对才完成认证。草案要求带前向保密的外部预共享密钥,禁止 0-RTT 数据,也禁止连接迁移。这些限制保护的是控制会话。它们没有给下一跳的所有权盖章。

相对于通常运行于 TCP/IP 之上的 BGP-4,提案把入口治理从可路由地址挪到了交换结构、端口配置和邻居密钥。谁批准一种帧穿过交换网络,谁给它设置控制平面限速,已经成为协议能否工作的直接条件。

一张路由票,把流量送往第三台机器

无编号链路没有常规的 IP 下一跳地址。Link Next Hop 提供两种写法:长度为零,指向当前会话的对端;长度为六字节,写入同一网段上第三方的单播 MAC。接收方安装该路由后,会从 BoL2Q 所在接口发出数据包,目的 MAC 就是这段字段所写的值。数据包仍是普通 IPv4 或 IPv6 流量;QUIC 承载的是路由谈话,并非后续数据。

为什么需要第三方形式?路由服务器可以把最初通告路由的成员 MAC 传给其他成员,让数据在成员之间直达,而不经过服务器。位于同一网段的路由反射器也可如此。草案给传播设了边界:第三方 MAC 必须能从同一个 BoL2Q 接口到达;否则发言者需要改用自己作为下一跳,或者在没有可用地址时不通告路由。

真正刺耳的一句写在草案的安全部分:接收路由器无法核实这个第三方 MAC 是否确属路由发起设备。一个有资格发送 BGP 更新的邻居,因而可以把数据导向该网段上的任意一台设备。它通过 TLS 证明了自己是谁,并没有证明那台收件设备是谁。草案把路由服务器的传播政策和接收方的下一跳检查列为约束。交换中心若只管帧能否进入,成员若只看会话是否认证,就把最关键的流量去向留给了通告者。

这仍是一份个人草案。EtherType 与能力代码在文本中分别写作 TBD1、TBD2;不能把它们当作已分配的正式编号,也不能把设计图说成现实部署。QUIC v1 的正式规范提供传输基础,而这份草案另行限制迁移、早期数据和 BGP 流的用法。它已经足够具体,能让运营者逐项画出责任链:交换网络放行帧,路由器找到已配置邻居,TLS 验证密钥,BGP OPEN 验证 AS,更新报文给出 MAC,接收方检查 MAC,硬件最终安装转发项。前四项全绿,第六项仍可能错。

官方原始文件