按状态机逐级判读 BGP 邻居
BGP 邻居建立要依次经过 Idle、Connect、Active、OpenSent、OpenConfirm,最终进入 Established。状态停在某一步,就说明问题出在那一步对应的环节:卡在 Active 或 Connect,说明 TCP 连接都还没建立起来;进到 OpenSent 之后停住,说明 TCP 通了但打开报文的协商失败;进到 OpenConfirm 又掉回,则多半是保活报文没有正常往来。按状态缩范围,比从头到尾查配置快得多。
基本信息
| 适用平台 | 华为 VRP、思科 IOS、H3C Comware |
|---|---|
| 传输层依赖 | BGP 使用 TCP 179 端口,先确认底层的 TCP 可达性 |
| 查看命令 | display bgp peer verbose、show bgp summary、show bgp neighbors |
| 权限要求 | 查看类命令用户视图即可 |
| 关键信息 | 最后重置原因、邻居状态、收发报文计数 |
典型使用场景
- 邻居长期卡在 Active:从连通性与端口可达性查起
- 邻居建立后频繁重置:看最后重置原因与计数是否异常
- EBGP 直连场景不通:确认跳数与源地址设置是否符合要求
- 路由未学到但邻居已 Up:问题转移到策略与能力协商
- 割接验证:邻居与路由同时确认,避免只看到一半
华为 VRP
华为 VRP
<Huawei> display bgp peer # 邻居状态一览
<Huawei> display bgp peer 10.1.1.2 verbose # 详细状态与最后重置原因
<Huawei> display tcp status # 179 端口连接是否建立
<Huawei> display bgp peer 10.1.1.2 log-info # 邻居状态变迁记录思科 IOS
思科 IOS
SW-CORE-01# show bgp summary
SW-CORE-01# show bgp neighbors 10.1.1.2 # 含 last reset reason
SW-CORE-01# show tcp brief | include 179
SW-CORE-01# show ip route 10.1.1.2 # 邻居地址是否可达H3C Comware
H3C Comware
<H3C> display bgp peer ipv4
<H3C> display bgp peer ipv4 10.1.1.2 verbose
<H3C> display tcp status状态机逐级判读
| 状态 | 含义 | 重点排查 |
|---|---|---|
| Idle | 尚未开始或反复重试 | 配置是否存在、是否被关闭 |
| Connect / Active | 正在尝试建立 TCP 连接 | 邻居地址是否可达、179 端口是否被 ACL 拦、路由是否存在 |
| OpenSent | 已发打开报文,等待对方 | AS 号是否匹配、版本、Router-ID 是否冲突、认证是否一致 |
| OpenConfirm | 协商通过,等待保活报文 | 报文是否被丢弃、MTU 与定时器是否正常 |
| Established | 邻居建立成功 | 再查路由策略与地址族能力 |
底层 TCP 179 通不通是第一道分水岭:用 display tcp status 或 show tcp brief 确认连接是否建立。EBGP 直连场景还要留意跳数设置是否为 1,绕行转发的场景未调整跳数时,TCP 根本无法建立。