Notification 报文说什么
BGP 邻居断连时,断开方会发一个 Notification 报文说明原因,报文体里包含错误码(指出大类)与错误子码(指出具体原因)。这是排查断连最快的信息来源:错误码 1 表示消息头问题,通常与帧格式、MTU 或转发异常相关;2 是 OPEN 协商失败,涵盖版本、AS 号、Hold 时间与能力协商;3 是 UPDATE 报文问题,包括报文格式错误、缺少必需属性、非法下一跳;6 是 Cease,属于状态机类原因,比如管理性关闭或达到前缀上限。日志与抓包都能读到这对数字,读出来基本就能确定排查方向。
基本信息
| 1 消息头 | 帧格式问题,常见于 MTU 与转发异常 |
|---|---|
| 2 OPEN | 协商失败:版本、AS 号、Hold 时间、能力 |
| 3 UPDATE | 报文错误、缺失属性、非法下一跳 |
| 4 Hold 超时 | 长时间未收到任何报文 |
| 6 Cease | 状态机类:管理关闭、前缀上限等 |
| 获取渠道 | 设备日志与抓包中的 NOTIFICATION 记录 |
典型使用场景
- 邻居突然断连:先从日志里找出错误码与子码
- 频繁闪断:统计断连原因是否集中在同一子码
- 割接后邻居建立失败:确认是否为 AS 号或版本问题
- 前缀超限告警:确认是否触发 Cease 类断连
- 跨厂商对接:用子码判断是参数问题还是报文形态问题
查看方式
查看方式
# 从日志中筛选断连原因
show log | include NOTIFICATION|Cease|BGP-3
# 抓包中可直接看到错误码与子码
# BGP NOTIFICATION (3,2) 表示缺少必需属性
show ip bgp neighbors 203.0.113.2 | include Notification|last reset
# 华为侧对照
display bgp peer verbose高频组合
| 错误码/子码 | 含义 | 处置 |
|---|---|---|
| 2 / 2 | Bad Peer AS:AS 号不一致 | 核对两端 remote-as |
| 2 / 6 | Hold Time 不可接受 | 调整 Hold 时间使其在可接受范围 |
| 2 / 7 | 能力协商失败 | 确认两端支持的能力集合 |
| 3 / 2 | 缺少必需属性 | 检查更新报文属性与厂商兼容性 |
| 6 / 1 | 达到前缀上限 | 复核 maximum-prefix 配置与对端通告量 |
| 6 / 2 | 管理性关闭 | 确认是否有人执行了 shutdown |
报错码反映的是「断开方看到的问题」,因此看到日志的可能是被动一侧;两端都要查,才能确定是本地配置问题还是对端通告问题。
断连原因可能被后续事件覆盖:建议把 BGP 相关日志重定向到缓冲区或日志服务器,便于回溯历史断连。