有没有办法保持路由器从另一台设备学到的 BGP 前缀,即使对等方的可达性下降,以便 bgp 不需要撤回所有路由然后重新学习它们?
有时当连接因各种原因从高 cpu 负载下降,然后 ibgp 会话中断时,我会遇到问题;那时,所有路由都被撤消,然后在会话重新建立时重新学习,但这需要太长时间。
我目前在 2 个核心设备和 ospf 之间运行 ibgp 来通告环回;我需要锦缎的解决方案。
有没有办法保持路由器从另一台设备学到的 BGP 前缀,即使对等方的可达性下降,以便 bgp 不需要撤回所有路由然后重新学习它们?
有时当连接因各种原因从高 cpu 负载下降,然后 ibgp 会话中断时,我会遇到问题;那时,所有路由都被撤消,然后在会话重新建立时重新学习,但这需要太长时间。
我目前在 2 个核心设备和 ospf 之间运行 ibgp 来通告环回;我需要锦缎的解决方案。
BGP优雅重启是您正在寻找的机制。
Graceful-restart 维护在重新启动连接时从 BGP 邻居收到的路由的转发。当邻居断开时,路由将在 BGP 表中标记为Stale (S),并且仍可用于路由选择。
有两个计时器与优雅重启相关联:
BGP 优雅重启能力在BGP OPEN
消息中公布。这意味着,如果您决定使用它,则必须为每个邻居重新启动 BGP 连接,然后它才能工作。
如果您还在链接上使用 BFD,则可能不应该使用优雅重启,因为它可能会导致问题。
适用于 Brocade Vyatta 路由器
set protocols bgp 65000 parameters graceful-restart [stalepath-time seconds]
适用于 Brocade IOS 路由器
全局启用
router bgp
graceful-restart
启用 per-vrf
router bgp
address-family ipv4 unicast vrf test
graceful-restart
Vyatta 路由器让您可以动态通告 BGP 的新功能,这使您可以测试选项,而不会冒 BGP 会话无法启动的风险。需要配置以下内容:
set protocols bgp [ASN] [neighbor address] capability dynamic
然后,您可以在不重置 BGP 对等互连的情况下配置优雅重启。
如果您无法通过更长的超时或类似时间来稳定您的 bgp 会话,这里有一个我被迫在一些场合使用的黑客:
如果只有有限数量的路由,并且您有一个稳定的环境,没有太多的定期更改,您可以插入比 bgp 路由具有更高优先级/成本的静态路由。当 bgp 会话下降时,静态路由将变为活动状态。
但是,我认为这是稳定不稳定环境的“讨厌的黑客”,无论如何都不是一个好的永久解决方案。您应该真正解决导致所有问题的 CPU 问题。