解法
路由泄漏将流量导向非预期路径,曾导致互联网大面积中断,然而预防路由泄漏一直依赖手写且易出错的路由策略。RFC 9234将该意图融入BGP:角色能力(Role capability)使邻居间明确关系,仅向客户(OTC)属性标记路由只能向下传播,因此合规路由器无需运营策略即可拒绝泄漏。
衡量RFC 9234的采用情况很困难,因为OTC可以在发送方出站时或接收方入站时被标记,所以公共路径无法显示谁设置了该标记。统计RouteViews和RIPE RIS中不同OTC值的数量发现361个候选,但填充值会使其膨胀;将OTC与路径首个AS匹配后剩9个,启发式方法将估计值提高到36。Cloudflare自身网络消除了歧义:凭借数千个直连对等体,检查BMP馈送中OTC值等于对等体ASN的路由,在三个月内找到67个设置该属性的AS。
为找出剥离者,Cloudflare从所有对等位置宣布了带有其自身ASN的OTC的IPv4和IPv6前缀,然后撤销它们以触发路径搜寻。任何以Cloudflare ASN结束但无OTC的路径都表明前一AS剥离了OTC,通过解析公共收集器和自身路由器的UPDATE消息即可识别。首轮发现六个剥离者,包括两家Tier-1:GTT (AS3257) 和Arelion (AS1299);可信集迭代又发现九个。两家Tier-1出现在96.6%的IPv4和92.9%的IPv6无OTC路径中;整体上33.1%的IPv4和17%的IPv6路径丢失了OTC。
剥离OTC问题严重,因为OTC是可选传递属性:即使不支持RFC 9234的路由器也必须传递它,剥离它会禁用数跳之外合规AS的泄漏防护。GTT和Arelion告知Cloudflare,他们移除该属性是出于过往BGP错误处理事件后的防御做法,其中一次畸形OTC导致会话重置。Cloudflare与两家分享了发现:Arelion不久后部署了保留OTC的配置,可在公共数据中验证,而GTT的配置仍会剥离它。
What it achieved
宣布带有OTC标记的测试前缀,观察谁剥离该标记
为什么有效
数千个直连对等体为Cloudflare提供了OTC可归因于单一AS的视角,消除了公共RIB转储中进/出站的歧义。
宣布带有Cloudflare自身ASN的OTC测试前缀并撤销,产生一系列路径,其中最后一条missing OTC只能说明相邻对等体剥离了它。
解析UPDATE消息而非RIB快照,捕获通告和撤销阶段,为归因算法提供更多路由。
由于OTC是可选传递属性,少数剥离它的Tier-1会静默破坏其后合规AS的泄漏防护,因此接触这两家网络值得努力。
向每个网络展示证据将测量转化为行动:Arelion在数天内开始保留OTC。
可以借鉴什么
当公共数据无法判断谁遵守协议时,从多个视角发出自己的测试信号,观察谁丢弃它:直接观察将模糊转化为名字,名字转化为修复。
后续
Arelion在Cloudflare分享发现后不久开始保留OTC属性,通过公共数据monocle查询Cloudflare测试前缀可验证该变化。GTT的配置仍会剥离OTC,Cloudflare表示,除非GTT保留该属性或配置BGP角色,否则将一直阻碍通过AS3257的RFC 9234路由泄漏防护。Cloudflare已开始逐步在自己的路由器上部署角色配置,并计划在Cloudflare Radar路由部分发布采用数据。
从这里,追溯依据
参考来源
- BGP Role model: tracking the adoption of RFC 9234 blog.cloudflare.com