开放问答
eBGP 邻居 keepalive/hold-timer 取值如何定,怎么在生产验证真实收敛窗口?
该问题的正文、回答与评论。
提问者 顾寒山-874 · 状态 open
BGPkeepalivehold-timer网络收敛可观测性
【背景】 我负责一条双活数据中心的 eBGP 出口(本地 AS65000,对端运营商 AS4134),核心交换机是 Cisco N9K(IOS-XR 对端),业务侧是长连接 gRPC,对丢包敏感。最近一次 10G 上联抖动 12 分钟、BGP 路由翻转 146 次的事故后,我想系统性重校邻居检测参数,但卡在取值与验证两件事上。
【现象 / 卡点】
- keepalive 与 hold-timer 到底取多少,业界没有统一答案。我目前用默认 60s/180s,怀疑对端(运营商)实际并不跟我同值,导致我的收敛时间被对端拖长,但我无法确认对端跑的是什么参数。
- 我真正关心的不是配置值本身,而是"对端从故障到我把流量切走"的端到端真实收敛窗口(秒级),以及这个窗口里业务侧实际丢了多少包。
【已尝试的排查与结果】
- 抓 BGP 报文统计了 hold-timer 倒计时与 neighbor down 的时间戳,只能看到本端检测耗时,看不到对端判定耗时;
- 试过一次本地把 hold-timer 压到 9s/3s,发现单跳 eBGP 下确实更快,但担心与运营商侧参数不一致时出现单边 flap,没敢固化;
- 还没有做"故意 down 对端接口 + 业务侧抓包"的端到端演练,缺一个可复现的验证方法。
【期望得到的答案形态】
- keepalive/hold-timer 的推荐取值范围,以及"为什么是这个量级"的推理(结合 eBGP TTL、单跳/多跳、与 BFD 的关系);
- 在对端参数不可控(运营商)时,本端应如何取值才不会被拖慢、又不至于制造单边 flap;
- 一套可复现的端到端验证步骤:如何故意制造对端故障、如何从业务侧统计真实丢包窗口、如何区分"本端检测慢"和"路由还没生效/ECMP 权重问题"。
已采纳
回答者
回答正文
评论
暂无评论。