摘要
- RFC 1267 要求会话开始时传送完整 BGP 路由表,随后只传增量;因此,每个发言者都要在连接存续期间保留各对端路由表的当前版本。
- RFC 4271 将连接关闭定义为隐式撤回边界;RFC 4724 才以协商能力为条件,允许特定地址族的旧路由暂时保留,并以 stale、Restart Time 和 End-of-RIB 标明其处境与终点。
- RFC 8538 用 Hard Reset 划出不得优雅保留的故障边界;RFC 9494 若要进一步延长记忆,则要求 LLGR 标记、最低优先级、传播限制及逐地址族主动启用。
增量更新欠着一张完整表
RFC 1267 所描述的 BGP-3,不是每隔一段时间重发全部事实。两个发言者建立传输连接、完成 OPEN 等起始交换后,第一次数据流携带完整 BGP 路由表;此后,UPDATE 只报告变化。
节省带宽的同时,协议产生了一笔状态债务。单独看一条增量,无法知道它改变了哪一张表。每一方必须在连接持续期间,保存每个对端路由表的当前版本,才能把下一次变化应用在同一个历史上。
“连接持续期间”就是这份记忆的边界。KEEPALIVE 检验连接是否仍活着;错误会触发 NOTIFICATION 和关闭,有限状态机释放与连接有关的资源,再回到可以重新尝试的位置。
这并不把路由表变成永久身份或授权记录。它只是某个对端在某次会话中提供的控制平面输入。TCP 连接存在,不代表每条通告都正确;表项仍在内存,也不代表转发面与之吻合,更不代表数据包已经到达。
关闭连接,就是撤走这次会话的证据
RFC 4271 把记录拆得更清楚:Adj-RIBs-In 保存从对端学到的路由,Loc-RIB 保存本地选择,Adj-RIBs-Out 保存准备向外通告的内容。接收、选择与导出彼此关联,却不是同一个事实。
它列出三种撤回方式:明确撤回某个 NLRI、用新路由替换旧路由,或关闭 BGP 连接。第三种方式会隐式地把这一对发言者互相通告的全部路由撤出服务。
错误处理沿着同一边界展开。与连接有关的 Adj-RIB-In 被清空,依赖该对端的 Loc-RIB 选择失效,最佳路由重新计算,必要的撤回或替代再向外发布。这里失效的是对端专属的控制证据,并不等于物理邻居在同一秒消失。
转发硬件里也许还残留此前导出的表项,那是另一层观察。普通规则没有允许旧控制证据因为“尚未被擦掉”就悄悄获得新会话的效力。
优雅重启签发了一张限时通行证
RFC 4724 面对的是另一种可能:BGP 控制进程重启,但转发状态或许还能维持。规范没有把这种“或许”当作默认事实,而是要求双方协商 Graceful Restart Capability,并按 AFI/SAFI 明确适用范围。
能力支持、Restart State 和 Forwarding State 回答三个不同问题:设备是否懂得机制,发言者是否处于重启,以及它声称哪些地址族的转发状态被保留。三者都不是数据包成功的收据。
接收方只能为协商过的地址族保留路由,而且必须标记为 stale。这个词不是质量认可,而是状态警示:旧路由暂时可以参与处理,但新会话尚未重新确认它。
通行证有多种失效条件。如果在 Restart Time 内没有重建会话,陈旧路由必须删除。如果新会话没有确认某地址族的转发状态、没有包含该地址族,或根本没有相应能力,删除立即发生。新 UPDATE 则逐条替换仍陈旧的旧项。
最后由 End-of-RIB 结清。即使某地址族没有任何路由,也可以用空 UPDATE 明确表示首次更新已经结束。收到它之后,仍未被新通告替换的 stale 路由全部清除。于是“没有更多消息”不再只是沉默,而成为一条有边界的完成记录。
这套机制只证明控制平面的替换过程完成到哪一步。RFC 4724 明确警告,期间仍可能出现短暂环路或黑洞;若 IGP 与 BGP 同时重启,却没有相称的 IGP 连续性支持,收益也会下降。保留路由、保留转发和恢复服务必须分别举证。
Hard Reset 收回了保留许可
最初的优雅重启并不把所有 NOTIFICATION 都视作可以保留旧路由的情形。RFC 8538 增加可协商的 N bit:只有双方交换了该能力,NOTIFICATION 或 Hold Time 到期后才可以采用相应的优雅语义。
同一份规范也留下明确的停止按钮。Cease/Hard Reset 子码要求回到基础协议的完整重置。故障原因与“不得保留此前状态”的处置是两条记录;Hard Reset 本身不完成根因诊断,却清楚结束了记忆例外。
RFC 8538 还要求可配置的 stale 计时器,建议值为 180 秒,并禁止无限保留成为默认。否则,反复重置可能不断续期一条从未重新变成当前事实的旧路由。
LLGR 把更长的记忆变成更重的责任
RFC 9494 的 Long-Lived Graceful Restart 把保留时间延伸到普通 Restart Time 之后。帮助方为保留项加上可传递的 LLGR_STALE community;标有 NO_LLGR 的路由不得保留;长期陈旧路由被置为最低偏好,通常也不会传播给没有 LLGR 能力的对端。
Long-Lived Stale Time 按 AFI/SAFI 设定,本地还可以缩短。每个地址族都必须主动配置,规范明确禁止默认开启。时间的延长因此是一项可追责的选择,而不是后台悄然发生的“高可用”。
RFC 9494 直接警告:把长期陈旧路由用于普通可达性,可能造成连接丢失。最低偏好只在存在更好选择时有用;传播受限也不等于转发风险已经封闭。下一跳是否可用、政策是否仍授权、数据包是否到达,都需要自己的证据。
来源
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance
