Cloudflare 发布了一项分析,评估用于限制边界网关协议(BGP)路由泄漏的 RFC 9234 标准的普及程度。该分析基于其与各网络交换会话的数据,以及通过互联网公布测试路由的实验。公司发现,67 个网络会向其直接发送的路由添加 Only to Customer(OTC)属性,但也发现一些网络会在转发路由时移除该属性,从而削弱兼容网络发现并拒绝路由泄漏的能力。
当一个网络将从提供商或对等方获知的路由,向另一个提供商或对等方通告时,就会发生 BGP 泄漏,这违反了互联网路由所预期的商业关系和层级逻辑。这可能导致数据流量经由一个没有准备好承载这些流量、或根本无权转发这些流量的网络,从而可能造成延迟增加、丢包或更大范围的故障。
将防泄漏规则转移到协议中
传统保护机制要求每个运营商配置手动策略,例如前缀过滤器和根据 IRR 注册表生成的策略,因此必须准确界定每个 BGP 会话的关系。RFC 9234 建议通过两个组件将部分负担转移到协议本身:BGP Roles 和 OTC 属性。
BGP 角色定义 eBGP 会话中邻居之间的关系,例如 Provider、Customer 和 Peer,以及与互联网交换点路由服务器相关的 RS 和 RS-Client。当双方发送的角色不兼容时,会话会收到 Role Mismatch 通知并被拒绝,而不是继续运行,直到错误后来以实际泄漏的形式出现。在部分采用的情况下,如果只有一方发送角色,会话仍可运行,除非运营商启用了严格模式,拒绝对端未声明任何角色的会话。
当路由不再沿层级向上移动、而开始转向客户时,OTC 属性会记录首次添加该属性的自治系统编号。一旦该属性存在,路由就不应再转发给提供商、对等方或路由服务器;兼容的路由器还可以在从不允许此类路由的关系中收到带有 OTC 的路由时拒绝该路由。这样,在完成角色配置后,防护便可自动执行,而不再完全依赖运营商为每个会话编写策略。
Cloudflare 实际测量了什么?
Cloudflare 使用其路由器的 BMP 数据,在三个月内监测直接邻居发来的 OTC 值。当该属性的值与邻居的自治系统编号相同时,公司便将该网络视为可能合规,这种方法可以减少分析经过多个网络的路由时产生的歧义。这些测量显示,有 67 个自治系统添加了 OTC。公司还注意到,路由服务器可能更快采用新功能,并且由个人运营的某些网络在结果中占据了较为明显的比例。
而对 RouteViews 和 RIPE RIS 公共 RIB 数据的分析则得出了更为保守的结果。在尝试区分发送时添加 OTC 的网络与接收时填补缺失值的网络后,Cloudflare 确定了 18 个可能添加该属性的网络,以及 20 个可能填补该属性的网络;结合直接邻居的结果后,最终得到 36 个可能符合 RFC 9234 的网络。公司强调,该方法可能遗漏路由或邻居数量有限的网络。
移除 OTC 的网络
Cloudflare 通过从其交换点站点公布一个 IPv4 前缀和一个 IPv6 前缀来测试 OTC 的传播情况,这两个前缀都携带 13335 值;随后使用 RIPE RIS、RouteViews 和本地 BMP 数据,分析公布和撤回期间的 BGP 消息。在第一阶段,公司确定了 6 个移除该属性的自治系统,其中包括两个一级网络:GTT,AS3257 和 Arelion,AS1299。继续分析更长路径后,又确定了 9 个移除 OTC 的网络。
在该实验中,IPv4 的 AS_PATH 路径有 33.1% 缺少该属性,IPv6 路径则有 17% 缺少该属性。在丢失 OTC 的 IPv4 路径中,有 96.6% 包含 GTT 或 Arelion,或同时包含两者;IPv6 路径中的这一比例为 92.9%,其中大多数情况涉及 Arelion。在检查下一跳为这两个网络之一的路径时,Cloudflare 发现 GTT 始终会移除该属性,而在相关样本中,Arelion 在 71.4% 的 IPv4 路径和 40.7% 的 IPv6 路径中移除了该属性。
Cloudflare 表示,这两个网络确认,移除 OTC 是在发生与 BGP 错误处理相关的事件后形成的防御性实践的一部分。根据公布的结果,GTT 的配置仍会移除该属性,而 Arelion 在与 Cloudflare 沟通后开始保留该属性;后续对测试路由的分析验证了这一点。
这对网络运营商实际上意味着什么?
这些结果表明,RFC 9234 的采用不仅取决于路由器是否支持该功能,也取决于中间网络是否继续选择性地传递这一透明属性。在一个处于中心位置的网络中移除 OTC,可能会阻止位于其后数跳之外的兼容网络发现原本可以被阻止的泄漏。
Cloudflare 表示,Junos OS 和 Junos OS Evolved 支持 RFC 9234,Cisco IOS XR 的支持计划于 26.4.1 版本提供;其表格还列出了其他实现,但未确定完整的支持状态,包括 Arista EOS、Nokia SR OS、Huawei、Extreme SLX-OS、RouterOS、BIRD、OpenBGPD、FRR、ArcOS、GoBGP 和 ExaBGP。公司建议拥有该功能的运营商在维护窗口期间逐步配置 BGP 角色,因为启用该功能需要重置 BGP 会话。Cloudflare 也已开始在其全球网络中逐步部署相关配置,并计划在 Cloudflare Radar 的路由部分提供采用情况数据。