OpenConfirm 处于流程的哪一步
BGP 邻居状态机依次经过 Idle、Connect、Active、OpenSent、OpenConfirm、Established。进入 OpenConfirm 意味着 TCP 已建立、双方的 Open 报文都已互认且参数协商成功,此时只剩最后一步:等待对方发来第一个 Keepalive。收到 Keepalive 后立即转为 Established 并开始交换路由。
基本信息
| 正常表现 | 收到 Keepalive 后进入 Established,通常只停留毫秒到数秒 |
|---|---|
| 停留原因 | Keepalive 被丢弃、超时、对端进程异常或参数问题 |
| 观察窗口 | show ip bgp summary 反复刷新看到状态短暂出现 |
| 核对项 | 协商后的 Hold Time 是否过小、路径是否存在丢包 |
| 失败指向 | 若持续停留或反复重连,问题多在报文级而非配置级 |
典型使用场景
- 新建邻居卡在这一步:确认 Open 已互认,重点转向报文传输与定时器
- 邻居反复在 OpenConfirm 与 Idle 之间跳动:怀疑 MTU 或丢包导致 Keepalive 丢失
- 排查对端进程异常:对端 BGP 进程重启时会表现为短暂停留后重建
- 验证 Hold Time 配置:协商值过小时 Keepalive 间隔也随之缩短,对丢包更敏感
- 借助抓包确认最后一步:看到双方 Keepalive 往返即可确认状态即将收敛
观察与验证
观察与验证
# 快速循环刷新观察状态迁移
show ip bgp neighbors 10.0.0.2 | include BGP state
# 打开邻居状态变化日志,避免肉眼刷新错过瞬间状态
router bgp 65001
bgp log-neighbor-changes
!
show logging | include BGP
#
# 抓包确认 Keepalive 往返(Open 类型 1,Keepalive 类型 4)
tcpdump -i eth0 -nn 'tcp port 179' -c 20各阶段与检查重点
| 状态 | 已完成的事 | 检查重点 |
|---|---|---|
| OpenSent | Open 已发出,等待对端 Open | 版本、AS、Router ID、能力协商 |
| OpenConfirm | 双方 Open 互认,等待 Keepalive | 报文是否可双向通行、Hold Time 是否合理 |
| Established | Keepalive 已收到,开始交换路由 | 前缀计数、收发策略 |
| Idle/Active | 未建立 TCP 或重试中 | 底层可达性与 179 放行 |
持续停留时的排查顺序
持续停留时的排查顺序
# 1) 看 Hold Time 协商结果
show ip bgp neighbors 10.0.0.2 | include hold
# 2) 查链路是否丢包或存在中间设备
ping 10.0.0.2 repeat 100 size 1500
# 3) 抓包看 Keepalive 是否双向出现
tcpdump -i eth0 -nn 'tcp port 179'
# 4) 查 CPU 与进程状态,排除设备繁忙
show processes cpu | include BGPOpenConfirm 是一个极短的过程状态,正常网络中几乎看不到。能稳定观察到它,通常意味着 Keepalive 在路径上被丢弃或对端处理异常,此时抓包比反复敲命令更有效。