跳到主要内容

4.5. NOTIFICATION Message 格式

4.5. NOTIFICATION Message 格式 (NOTIFICATION Message Format)​

检测到错误条件 (error condition) 时会发送 NOTIFICATION 消息. 发送后会立即关闭 BGP 连接 (connection).

除了固定大小的 BGP header 外, NOTIFICATION message 还包含以下字段:

      0                   1                   2                   3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Error code | Error subcode | Data (variable) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Error Code:

这个 1 字节无符号整数 (1-octet unsigned integer) 指示 NOTIFICATION 的类型. 已定义以下错误代码 (Error Code):

Error CodeSymbolic NameReference
1Message Header Error (Message Header 错误)Section 6.1
2OPEN Message Error (OPEN Message 错误)Section 6.2
3UPDATE Message Error (UPDATE Message 错误)Section 6.3
4Hold Timer Expired (Hold Timer 过期)Section 6.5
5Finite State Machine Error (有限状态机错误)Section 6.6
6Cease (终止)Section 6.7

Error subcode:

这个 1 字节无符号整数 (1-octet unsigned integer) 提供关于所报告错误 (error) 性质的更具体信息. 每个错误代码可以关联一个或多个错误子码 (Error Subcode). 如果没有定义合适的错误子码, 则错误子码字段使用零值 (Unspecific).

Message Header Error subcodes:

  • 1 - Connection Not Synchronized (连接未同步).
  • 2 - Bad Message Length (错误的消息长度).
  • 3 - Bad Message Type (错误的消息类型).

OPEN Message Error subcodes:

  • 1 - Unsupported Version Number (不支持的版本号).
  • 2 - Bad Peer AS (错误的对等体 AS).
  • 3 - Bad BGP Identifier (错误的 BGP 标识符).
  • 4 - Unsupported Optional Parameter (不支持的可选参数).
  • 5 - [Deprecated - see Appendix A] (已废弃 - 见附录 A).
  • 6 - Unacceptable Hold Time (不可接受的保持时间).

UPDATE Message Error subcodes:

  • 1 - Malformed Attribute List (格式错误的属性列表).
  • 2 - Unrecognized Well-known Attribute (无法识别的众所周知属性).
  • 3 - Missing Well-known Attribute (缺少众所周知属性).
  • 4 - Attribute Flags Error (属性标志错误).
  • 5 - Attribute Length Error (属性长度错误).
  • 6 - Invalid ORIGIN Attribute (无效的 ORIGIN 属性).
  • 7 - [Deprecated - see Appendix A] (已废弃 - 见附录 A).
  • 8 - Invalid NEXT_HOP Attribute (无效的 NEXT_HOP 属性).
  • 9 - Optional Attribute Error (可选属性错误).
  • 10 - Invalid Network Field (无效的网络字段).
  • 11 - Malformed AS_PATH (格式错误的 AS_PATH).

Data:

这个变长字段 (variable-length field) 用于诊断 NOTIFICATION 的原因. 数据 (Data) 字段的内容取决于错误代码和错误子码. 更多细节见第 6 节.

注意, 数据字段的长度可以通过以下公式从消息长度 (message Length) 字段确定:

Message Length = 21 + Data Length

NOTIFICATION 消息的最小长度为 21 字节 (包括消息头 (message header)).