首页/网络/BGP 与广域网速查/Hold Time 与 Keepalive 定时器
BGP 基础与邻居89 条

Hold Time 与 Keepalive 定时器

Hold Time 是「多久收不到报文算超时」:默认 180s,Keepalive 默认 60s(取 1/3);调小加速故障感知但增加开销。

BGP 与广域网速查网络更新于 2026-10-13

两个定时器的作用

Hold Time 定义「多久收不到对端任何报文就认为会话失效」,默认 180 秒;Keepalive 是周期性保活报文,默认 60 秒,即 hold time 的三分之一。两端协商时取较小的 hold time,因此实际生效值可能小于本机配置值。

基本信息

默认值Hold 180 秒 / Keepalive 60 秒
取值关系Keepalive 通常为 Hold 的三分之一
协商规则两端取较小的 Hold 值,避免出现 1 或 2 这类非法值
作用检测对端是否仍在通信,衡量收敛速度
推荐做法与 BFD 配合做快速检测,保持默认定时器
查看show ip bgp neighbors <ip> 输出的定时器字段

典型使用场景

  • 会话频繁中断:核对两端定时器与实际链路质量
  • 快速收敛需求:用 BFD 做毫秒级检测而非一味调小 hold time
  • 跨长距链路:路径时延较大时需要评估定时器余量
  • 排障期间临时调小定时器加快故障暴露
  • 核对实际生效值:两端配置不同时以协商结果为准

配置与核对

配置与核对
# 建议优先用 BFD 做快速检测,保持 BGP 定时器默认值
!
# 需要调整时按 hold 与 keepalive 成对设置
bgp timers 30 10                            # hold 30 秒,keepalive 10 秒
!
show ip bgp neighbors 10.0.0.2              # 查看协商后的实际定时器
show ip bgp summary                         # 会话状态与抖动观察
show ip bgp neighbors 10.0.0.2 | include reset

取值与影响

配置实际效果风险
Hold 180 / Keepalive 60默认值,收敛依赖超时链路中断到感知最长约 3 分钟
Hold 30 / Keepalive 10感知更快网络抖动时容易误断邻居
Hold 0不使用保活机制仅测试场景使用,生产环境禁用
配合 BFD检测时间可降至毫秒级需两端都支持并正确配置
Hold=0 表示不使用保活机制:会话不会因超时中断,故障也不会被检测到,只适合实验室环境。
粗暴调小 Hold 值会让抖动直接转化为邻居重建,重建期间路由撤销与重新学习会造成丢包,调优前先确认链路质量并优先启用 BFD。
观察会话是否真在抖动,看邻居详情里的复位计数与最近复位时间:单次复位与周期性复位的原因不同,后者往往指向链路质量或定时器配置。

易错点

  • 粗暴调小 Hold 值:网络抖动时容易误断邻居,配合 BFD 更稳
  • 两端同时调参不同步:按协商较小值运行,分析时以实际值为准
  • 只看本机配置判断超时时间:实际生效值是双方协商结果,必须查看邻居详情
  • 把会话中断全部归因于定时器:先排除链路抖动与报文丢弃,再考虑调参

数据来源与参考

  • RFC 4271: 定时器
  • 厂商: BFD 与 BGP 联动指南
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌