BGP 计时器
2025/10/29大约 4 分钟
BGP 计时器
基础计时器
keepalive-timer
- 设置 FortiGate 向已建立连接的对等体发送 BGP 保活消息的频率(0~65535s,默认值为 60s)。
keepalive-timer是 BGP 的全局设置(config router bgp)。可以在每个对等体的配置上(config neighbor/config neighbor-group)使用keep-alive-timer选项覆盖全局配置。
holdtime-timer
- 设置 BGP 在将对等体标记为不可用之前等待的最长时间(3~65535s,默认值为 180s)。当 FortiGate 收到来自对等体的 keepalive 消息时,
holdtime-timer会重置为配置的值。如果在此期间没有收到保活消息,FortiGate 会认为对等体不再活跃,并将重置 BGP 邻居关系。 holdtime-timer是 BGP 的全局设置(config router bgp)。可以在每个对等体的配置上(config neighbor/config neighbor-group)使用holdtime-timer选项(名称相同)覆盖全局配置。
重要
- 可以在配置中将
keepalive-timer设置为大于holdtime-timer的三分之一,但 FortiOS 实际使用的keepalive-timer最多会限制为holdtime-timer的三分之一(执行 RFC 4271 中的建议)。允许使用短于holdtime-timer三分之一的keepalive-timer。例如: - 若
keepalive-timer= 20s 且holdtime-timer= 30s,FortiOS 将使用 10s 的实际keepalive-timer和 30s 的holdtime-timer。 - 若
keepalive-timer= 5s 且holdtime-timer= 30s,FortiOS 将使用 5s 的实际keepalive-timer和 30s 的holdtime-timer。 - BGP
keepalive-timer/holdtime-timer在对等体之间协商,双方会选择通告的最小保活/保持时间值。 - 更改 BGP
keepalive-timer和holdtime-timer不会影响已建立的 BGP 邻居关系,除非它们被重置并重新建立,软重置(soft-reconfiguration)在此情况下无效。
advertisement-interval
- 设置 BGP 发送路由更新的最小间隔(0~600s,默认值为 30s)。
- 受
advertisement-interval影响的路由更新包括:BGP 邻居状态变为 ESTABLISHED 后的初始路由通告、添加或撤销路由,以及软重置(soft-reconfiguration)后通告路由。 - 对等体之间的
advertisement-interval值不需要协商。每个 BGP 对等体根据本地配置的advertisement-interval等待发送自己的路由通告。 - 建议为 iBGP 连接设置较短的间隔(如 RFC 4271 的第 10 节建议)。
connect-timer
- 设置 BGP 邻居状态在转换到 idle 状态之前,尝试通过 TCP 与 BGP 对等体尝试建立连接的最长时间(1~65535s,默认值为 120s)。
- 此设置仅在每个对等体(
config neighbor/config neighbor-group)上配置,没有全局设置。
scan-time
- 设置 BGP 扫描所有 BGP 路由下一跳可达性的间隔(5~60s,默认值为 60s,设置为 0 表示禁用)。如果 BGP 路由条目的下一跳失效,则不使用该 BGP 路由条目。
路由抑制计时器
重要
- 必须先在
config router bgp下设置set dampening enable,这些路由抑制计时器才会出现在 CLI 中,且这些设置仅对 BGP 全局有效(不能在对等体的基础上配置)。 - 具体配置方法请参考:路由 → 动态路由 → BGP → BGP 常见问题 → 路由震荡章节。
dampening-max-suppress-time
- 设置路由可以被抑制的最长时间(1~255min,默认值为 60min),无论路由的稳定性如何。
- 默认值为
dampening-reachability-half-life的四倍。
dampening-reachability-half-life
- 设置惩罚的半衰期时间(1~45min,默认值为 15min)。如果路由被认为是可达的(无论是否被抑制),路由的惩罚将减少一半。
dampening-unreachability-half-life
- 设置惩罚的半衰期时间(1~45min,默认值为 15min)。如果路由被认为是不可达的,路由的惩罚将减少一半。
平滑重启计时器
重要
具体配置请参考:路由 → 动态路由 → BGP → BGP GR章节。
graceful-restart-time
- 设置 BGP 在对等体重启时等待的时间长度(1~3600s,默认值为 120s)。一旦 FortiGate 在对等体重启后收到 BGP OPEN 消息,此计时器就会结束。请确保
graceful-restart-time小于或等于holdtime-timer。 graceful-restart-time是 BGP 的全局设置(config router bgp)。可以在每个对等体的基础上(config neighbor/config neighbor-group)使用restart-time选项覆盖此设置。
graceful-stalepath-time
- 设置 BGP 保留之前从正在重启的 BGP 对等体接收的陈旧路由(stalepath)的时间(1~3600s,默认值为 360s)。
- 一旦 BGP 检测到对等体重启(例如,收到带有 Graceful Restart Capability 字段,且“Restart State”置位的 BGP Open 报文),此计时器就会启动,允许 BGP 保留现有的陈旧路由(stalepath)足够长的时间,以保证 BGP 与正在重启的对等体重建过程中路由不会中断。
graceful-stalepath-time是 BGP 的全局设置(config router bgp)。可以在每个对等体的基础上(config neighbor/config neighbor-group)使用retain-stale-time选项覆盖此设置。
graceful-update-delay
- 设置 BGP 进程在重启后等待更新 BGP 路由选择的时间(1~3600s,默认值为 120s)。
- 与前两个计时器不同,此计时器适用于 FortiGate 自身重启 BGP 的情况(而非对等体重启)。
- FortiGate 将保留重启 BGP 前的陈旧路由(stalepath),并且在以下情况之前不会更新 BGP 路由选择:
- 它从所有对等体(除了不支持 GR 的对等体以及“Restart State”置位的对等体)收到 RIB 结束的 BGP 标记。
- 此计时器到期。