4. BGP 能力通告的使用
[RFC5492] 定义了一种机制, 允许两个 BGP 发言者发现其 BGP 对等体是否支持某个特定能力, 从而判断能否与该对等体一起使用该能力. 本文档定义了一种可使用 [RFC5492] 通告的能力, 称为 "Extended Next Hop Encoding capability". 对于给定 NLRI <AFI/SAFI>, 该能力允许 BGP 发言者发现对等体是否支持使用这样一种下一跳进行通告: 其网络协议由 Length of Next Hop Address 字段的值确定, 如第 3 节所规定.
希望按本规范向 BGP 对等体为 IPv4 NLRI 或 VPN-IPv4 NLRI 通告 IPv6 下一跳的 BGP 发言者, MUST 使用 [RFC5492] 中定义的能力通告过程以及 Extended Next Hop Encoding capability, 来确定其对等体是否支持相关 NLRI AFI/SAFI 对. Capabilities Optional Parameter 中的字段 MUST 按如下方式设置:
-
Capability Code 字段 MUST 设置为 5 (表示 Extended Next Hop Encoding capability).
-
Capability Length 字段设置为可变值, 即随后 Capability Value 字段的长度.
-
Capability Value 字段具有以下格式:
+-----------------------------------------------------+
| NLRI AFI - 1 (2 octets) |
+-----------------------------------------------------+
| NLRI SAFI - 1 (2 octets) |
+-----------------------------------------------------+
| Nexthop AFI - 1 (2 octets) |
+-----------------------------------------------------+
| ..... |
+-----------------------------------------------------+
| NLRI AFI - N (2 octets) |
+-----------------------------------------------------+
| NLRI SAFI - N (2 octets) |
+-----------------------------------------------------+
| Nexthop AFI - N (2 octets) |
+-----------------------------------------------------+
其中:
-
每个三元组 <NLRI AFI, NLRI SAFI, Nexthop AFI> 表示 <NLRI AFI / NLRI SAFI> 的 NLRI 可以使用属于 Nexthop AFI 网络层协议的下一跳地址进行通告.
-
AFI 和 SAFI 值分别定义于 "Address Family Numbers" 和 "Subsequent Address Family Identifier (SAFI) Parameters" 注册表中 (分别见 [IANA-AFI] 和 [IANA-SAFI]).
由于本文档只关注使用 IPv6 下一跳通告 IPv4 NLRI 和 VPN-IPv4 NLRI, 本规范只允许 Extended Next Hop Encoding capability 的 Capability Value 字段中出现以下值:
-
NLRI AFI = 1 (IPv4)
-
NLRI SAFI = 1, 2, 4, 128, or 129
-
Nexthop AFI = 2 (IPv6)
本文档不规定 Extended Next Hop Encoding capability 与任何其他 <NLRI AFI, NLRI SAFI, Nexthop AFI> 组合一起使用. 例如, 本文档指定的 Next Hop Encoding capability 并不打算用于那些定义中已经允许同时使用 IPv4 和 IPv6 下一跳的 NLRI AFI/SAFI, 例如 [RFC4684] 中定义的 AFI/SAFI = <1/132>. 类似地, 对于已经存在不同地址族下一跳通告解决方案的 NLRI AFI/SAFI, 也不打算使用 Extended Next Hop Encoding capability, 例如按 [RFC4798] 使用 IPv4 下一跳的 AFI/SAFI = <2/1>, <2/2> 或 <2/4>, 以及按 [RFC4659] 使用 IPv4 下一跳的 AFI/SAFI = <2/128>.
预期未来如果定义新的 AFI/SAFI, 其定义将从一开始就在适当情况下为 IPv4 和 IPv6 下一跳提供规定, 并基于 Length of Next Hop Address 字段进行判定. 因此, 不预期新的 AFI/SAFI 使用 Extended Next Hop Encoding capability.
BGP 发言者只有在先通过 BGP Capability Advertisement 确认 BGP 对等体支持相关 AFI/SAFI 对的 Extended Next Hop Encoding capability 后, 才 MUST 向该 BGP 对等体通告带有 IPv6 下一跳的 IPv4 或 VPN-IPv4 NLRI.
Extended Next Hop Encoding capability 在假定某个 AFI/SAFI 已被允许的前提下, 提供该 AFI/SAFI 的下一跳编码信息. 它不影响该 AFI/SAFI 是否确实被允许. 某个 AFI/SAFI 能否在 BGP 对等体之间使用, 完全由 [RFC4760] 中定义的 Multiprotocol Extensions capability 决定.