bgp 4 中, trap, update, keepalive, notification 的作用?

在 BGP-4(Border Gateway Protocol version 4) 中,协议通过 消息(Message) 实现邻居会话的建立、维护和路由信息交换。BGP 定义了 4 种核心消息类型
OPEN、UPDATE、KEEPALIVE、NOTIFICATION(RFC 4271),此外还有 ROUTE-REFRESH(RFC 2918)。

以下是每种消息的作用和机制详解:


1. OPEN 消息

作用

  • 用于 建立 BGP 邻居(Peer)关系,是 TCP 连接建立后的第一个消息。
  • 协商双方的 BGP 参数(如 AS 号、Hold Time、BGP Identifier 等)。

关键字段

字段说明
VersionBGP 版本(默认为 4)。
My AS发送方的 AS 号(用于验证对端是否合法)。
Hold Time保持时间(秒),双方协商取最小值(默认为 180s)。
BGP Identifier发送方的 Router ID(通常为环回口 IP)。
Optional Parameters可选项(如支持多协议扩展、路由刷新能力等)。

示例流程

plaintext

BGP Peer A(AS 100) --- TCP 179 ---> BGP Peer B(AS 200)
A 发送 OPEN 消息 → B 回复 OPEN 消息 → 双方校验通过后发送 KEEPALIVE 确认。

2. UPDATE 消息

作用

  • 通告或撤销路由,是 BGP 的核心功能。
  • 包含 可达路由(NLRI) 或 不可达路由(Withdrawn Routes)

关键字段

字段说明
Withdrawn Routes要撤销的路由前缀列表(长度 + 前缀)。
Path Attributes路径属性(如 AS_PATH、NEXT_HOP、LOCAL_PREF、MED 等)。
NLRI (Network Layer Reachability Info)新增的可达路由前缀。

示例

plaintext

UPDATE 消息示例:
- 撤销路由:Withdrawn Routes = [192.168.1.0/24]
- 新增路由:NLRI = [10.1.1.0/24], Path Attributes = [AS_PATH: 100 200, NEXT_HOP: 1.1.1.1]

3. KEEPALIVE 消息

作用

  • 维持 BGP 邻居关系,周期性发送(默认间隔为 Hold Time/3,即 60s)。
  • 若 Hold Time 内未收到 KEEPALIVE 或 UPDATE,则认为邻居失效。

特点

  • 无实际数据,仅包含 BGP 头部(19 字节)。
  • Hold Time = 0 时表示不发送 KEEPALIVE(仅依赖 UPDATE)。

示例

plaintext

Peer A 每 60s 发送 KEEPALIVE → Peer B 回复 KEEPALIVE。

4. NOTIFICATION 消息

作用

  • 报告错误并立即终止 BGP 会话,用于异常场景(如参数不匹配、报文格式错误)。
  • 发送后,TCP 连接会被主动关闭。

关键字段

字段说明
Error Code错误类型(如 1=消息头错误,2=OPEN 消息错误,3=UPDATE 消息错误)。
Error Subcode子错误码(如 2.1=不支持的版本号,3.4=无效的 NEXT_HOP)。
Data错误详情(如错误的 AS 号)。

常见错误

错误码含义触发场景示例
2OPEN 消息错误AS 号不匹配、不支持的认证方式。
3UPDATE 消息错误无效的 AS_PATH、属性冲突。
4Hold Timer 超时未收到 KEEPALIVE/UPDATE。
6连接关闭(Cease)管理员手动重置邻居。

5. ROUTE-REFRESH 消息(可选)

作用

  • 动态请求对端重新发送路由表(需双方支持 Route Refresh 能力)。
  • 用于策略(Policy)变更后快速更新路由,避免手动重置会话。

触发条件

  • 通过 capability route-refresh 在 OPEN 消息中协商支持。
  • 命令触发(如华为设备:refresh bgp all import)。

6. 消息交互流程(BGP 状态机)

  1. Idle → Connect(TCP 连接建立)
  2. Connect → OpenSent(发送 OPEN 消息)
  3. OpenSent → OpenConfirm(收到对端 OPEN 并校验通过)
  4. OpenConfirm → Established(交换 KEEPALIVE)
  5. Established 后:
    • 周期性发送 KEEPALIVE
    • 通过 UPDATE 交换路由。
    • 错误时发送 NOTIFICATION 终止会话。

7. 总结

消息类型作用触发场景是否必需
OPEN建立邻居,协商参数TCP 连接建立后
UPDATE通告/撤销路由路由变化、策略更新
KEEPALIVE保活,维持会话Hold Time 定时触发是(除非 Hold Time=0)
NOTIFICATION报告错误并终止会话协议错误、配置冲突否(异常时触发)
ROUTE-REFRESH请求重新发送路由表策略变更后动态更新可选