跳到主要内容

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 决定.