首页/网络/BGP 与广域网速查/BGP 状态机六状态总览
BGP 基础与邻居89 条

BGP 状态机六状态总览

BGP 会话经历 Idle → Connect → Active → OpenSent → OpenConfirm → Established:排障时先看卡在哪个状态,再对应排查方向。

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

六状态总览

BGP 邻居建立要经过 Idle、Connect、Active、OpenSent、OpenConfirm、Established 六个状态。排障时先确认卡在哪个状态,再按该状态的常见成因排查:Connect 与 Active 属于 TCP 层问题,OpenSent 与 OpenConfirm 属于报文参数协商问题,Established 之后才轮到前缀与选路。

基本信息

状态数量6 个(含 Idle 与 Established)
正常稳态Established
常见卡住位置Active(TCP 建不起来)
查看命令show ip bgp summary / show ip bgp neighbors <ip>
状态历史show ip bgp neighbors <ip> 中的 last reset 与 reason
重试机制Idle 与 Connect 之间有重试计时器,失败会循环

排查顺序

  • 先看状态:卡在 Active 时不要急着重启 BGP,先查底层可达性
  • 再查双向配置:一端的邻居地址与 AS 号是否与另一端对应
  • 检查中间设备:ACL、防火墙是否拦截 TCP 179
  • 核对 Open 参数:AS 号、hold time、router-id、认证是否两侧一致
  • 最后看前缀:会话已 Established 但前缀数为 0 时转查策略与地址族

状态与含义

状态含义常见停留原因
Idle初始或拒绝重试无路由、被 shutdown、认证配置
ConnectTCP 连接发起中等待 TCP 建立,SYN 无响应
Active尝试重连(含监听)TCP 建不起来(路由或 ACL 对端未配)
OpenSent已发 Open 等回应Open 报文参数不匹配
OpenConfirm已收 Open 等 Keepalive能力或参数协商、报文丢失
Established会话建立正常该状态之后的问题属策略与选路范畴

查看状态

查看状态
show ip bgp summary                   # State/PfxRcd 列显示状态或收到前缀数
show ip bgp neighbors 10.0.0.2        # BGP state 与最近一次复位原因
show ip bgp neighbors 10.0.0.2 | include reset   # 查看复位历史与原因码
show log | include BGP                # 日志中的建连与通知记录
summary 输出里该列显示数字代表已 Established,数字即收到的前缀数;显示状态名则说明会话未建立。
在状态不明时反复 reset 只会掩盖证据:先抓当前状态与日志,再动手,否则复位后现场消失、无从定位。
状态机循环是正常现象:TCP 建连失败时设备会在 Active 与 Connect 之间往复,直到建连成功或超时;看到状态变化不代表协议故障,关键看它是否曾到达 Established。

按状态定位排查方向

按状态定位排查方向
# Idle / Active / Connect  → 查底层可达性与 179 可达
# OpenSent / OpenConfirm   → 查两端参数:AS 号、hold time、router-id、认证
# Established 但前缀为 0   → 查地址族 activate 与邻居策略
# Established 且前缀正常   → 转入选路与转发排查

易错点

  • 只记 Established 正常:中间状态各有指向,Active 并非活跃而是未连上
  • 不看重试次数与日志:连续 Flapping 需要看状态历史
  • 把前缀数为 0 当成会话问题:会话正常但没前缀属于策略或地址族未激活
  • 复位前不取现场:清空后会丢失状态历史与通知错误码,定位难度上升

数据来源与参考

  • RFC 4271: BGP 有限状态机
  • Cisco: BGP 邻居排错
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌