摘要

  • RFC 7606 把多种畸形 BGP 属性原本触发的会话重置改为 treat-as-withdraw:从 Adj-RIB-In 移除坏 UPDATE 携带的路由,同时保留邻接与其他有效路径。
  • 选择性处置有明确边界;若无法可靠解析 NLRI,或具体属性规则要求更强动作,仍须重置会话或禁用相关 AFI/SAFI。

一条坏消息曾经连好路由一起撤走

BGP 通过增量更新累积可达性。一条会话可以承载大量长期有效的路径,但 RFC 4271 的一般处置是发送 NOTIFICATION 并关闭连接。错误消息消失的同时,依赖这条会话的正确路由也会消失,重连与重新收敛把成本扩散到无关目的地。

可选传递属性使问题更不对称。不认识该属性的中间路由器可能在未检查内容的情况下继续传播。错误经过复制和扇出,最终由能够识别它的设备发现;被重置的邻接未必靠近真正的源头。一份坏属性因此可能造成多条会话波动。

Treat-as-withdraw 改变了故障单位。接收方把该 UPDATE 中的路由当作已经明确撤回,从 Adj-RIB-In 删除,却不拆掉整个邻接。其权力变得更窄:隔离可识别的路由集合,而不是终止全部关系。

解析确定性划定选择权边界

RFC 7606 对 ORIGIN、AS_PATH、NEXT_HOP、MULTI_EXIT_DISC、LOCAL_PREF 的特定错误以及必备属性缺失规定 treat-as-withdraw,除非更具体规则另有要求。其他错误可能需要丢弃属性、禁用地址族或重置会话。

决定性边界是可达信息能否解析。若 NLRI、MP_REACH_NLRI 或 MP_UNREACH_NLRI 无法被可靠解码,接收方就不知道应该撤回哪些路由。此时仍必须采用更强响应。韧性不等于猜测的授权。

RFC 7607 给出 AS 0 的具体例子:指定路径属性中含 AS 0 的路由属于畸形,应交由相应修订流程处置。一项规则确定什么无效,另一项规则限定无效信息造成多大后果。

保留会话只是转移成本

受影响目的地可能完全不可达,也可能改走较差路径。在 IBGP 内,不同路由器的处置时点可能造成不一致,包括长期转发环路或黑洞。RFC 7606 认为这种风险通常小于整条会话重置,却从未声称风险消失。

Treat-as-withdraw 也不是简单忽略 UPDATE。忽略增量更新可能让旧的无效路径继续存在;撤回会明确改变路由状态。RFC 7606 建议提供诊断能力,其最低范围包括记录相关 NLRI 并保留完整畸形 UPDATE;这是运营指导,不是大写规范词 MUST。会话仍绿但路由消失时,运营证据必须更强。

证据与边界

RFC 7606、RFC 4271 与 RFC 7607 支撑上述机制和风险;IANA 确认 UPDATE Message Error 为代码 3。权力与治理判断属于基于规范的推论。这些来源不证明任何具名网络的部署、故障或成效。

来源