3. 多协议可达 NLRI - MP_REACH_NLRI (类型代码 14)
这是一个可选且非传递的属性, 可用于以下目的:
(a) 向对等方通告一条可行路由.
(b) 允许路由器通告应作为下一跳使用的路由器网络层地址, 该下一跳用于到达 MP_NLRI 属性的 Network Layer Reachability Information 字段中列出的目标.
该属性按如下方式编码:
+---------------------------------------------------------+
| Address Family Identifier (2 octets) |
+---------------------------------------------------------+
| Subsequent Address Family Identifier (1 octet) |
+---------------------------------------------------------+
| Length of Next Hop Network Address (1 octet) |
+---------------------------------------------------------+
| Network Address of Next Hop (variable) |
+---------------------------------------------------------+
| Reserved (1 octet) |
+---------------------------------------------------------+
| Network Layer Reachability Information (variable) |
+---------------------------------------------------------+
这些字段的用途和含义如下:
Address Family Identifier (AFI):
此字段与 Subsequent Address Family Identifier 字段共同标识以下信息: Next Hop 字段所携带地址必须归属的网络层协议集合, 下一跳地址的编码方式, 以及后续 Network Layer Reachability Information 的语义. 如果允许 Next Hop 来自多个网络层协议, 则 Next Hop 的编码 必须 提供一种方法来确定其网络层协议.
Address Family Identifier 字段当前已定义的值在 IANA 的 Address Family Numbers 注册表 [IANA-AF] 中给出.
Subsequent Address Family Identifier (SAFI):
此字段与 Address Family Identifier 字段共同标识以下信息: Next Hop 所携带地址必须归属的网络层协议集合, 下一跳地址的编码方式, 以及后续 Network Layer Reachability Information 的语义. 如果允许 Next Hop 来自多个网络层协议, 则 Next Hop 的编码 必须 提供一种方法来确定其网络层协议.
Length of Next Hop Network Address:
这是一个 1-octet 字段, 其值表示 "Network Address of Next Hop" 字段的长度, 以八位字节为单位.
Network Address of Next Hop:
这是一个可变长度字段, 包含通往目标系统路径上下一台路由器的 Network Address. 与 Network Address of the Next Hop 关联的网络层协议由该属性中携带的 <AFI, SAFI> 组合标识.
Reserved:
这是一个 1 octet 字段, 必须 设置为 0, 接收时 应该 忽略.
Network Layer Reachability Information (NLRI):
这是一个可变长度字段, 列出此属性中所通告可行路由的 NLRI. NLRI 的语义由该属性中携带的 <AFI, SAFI> 组合标识.
当 Subsequent Address Family Identifier 字段设置为本文档定义的某个值时, 每个 NLRI 都按本文档 "NLRI encoding" 章节中的规定进行编码.
MP_REACH_NLRI 路径属性中携带的下一跳信息定义了路由器的 Network Layer 地址. 对于 UPDATE 消息中 MP_NLRI 属性列出的目标, 该路由器 应该 作为下一跳使用.
下一跳信息的规则与 NEXT_HOP BGP 属性中携带信息的规则相同, 见 [BGP-4] 的 Section 5.1.3.
携带 MP_REACH_NLRI 的 UPDATE 消息 必须 同时携带 ORIGIN 和 AS_PATH 属性, 在 EBGP 和 IBGP 交换中均如此. 此外, 在 IBGP 交换中, 此类消息 必须 同时携带 LOCAL_PREF 属性.
如果 UPDATE 消息除了 MP_REACH_NLRI 属性中编码的 NLRI 之外不携带其他 NLRI, 则该消息 不应该 携带 NEXT_HOP 属性. 如果此类消息包含 NEXT_HOP 属性, 接收该消息的 BGP 发言者 应该 忽略此属性.
UPDATE 消息 不应该 在以下多个字段中包含同一地址前缀, 且该地址前缀属于同一 <AFI, SAFI>: WITHDRAWN ROUTES 字段, Network Reachability Information 字段, MP_REACH_NLRI 字段, 以及 MP_UNREACH_NLRI 字段. 对这种形式的 UPDATE 消息的处理未定义.