跳到主要内容

RFC 8277 - 使用 BGP 将 MPLS 标签绑定到地址前缀 (Using BGP to Bind MPLS Labels to Address Prefixes)

  • 状态: Proposed Standard
  • 发布日期: October 2017
  • Stream: IETF
  • 废止: RFC3107
  • 勘误: 无勘误

文档信息 (Document Information)

  • RFC 编号: 8277
  • 标题: Using BGP to Bind MPLS Labels to Address Prefixes
  • 作者: E. Rosen
  • 日期: October 2017
  • 类别: Standards Track
  • ISSN: 2070-1721
  • 废止: RFC 3107

摘要 (Abstract)

本文档规定一组规程, 用于使用 BGP 通告: 指定路由器已将指定 MPLS 标签 (或作为标签栈连续部分组织的指定 MPLS 标签序列) 绑定到指定地址前缀. 这可通过发送 BGP UPDATE 消息完成: 其网络层可达性信息 (Network Layer Reachability Information, NLRI) 字段同时包含前缀与 MPLS 标签, 其 Next Hop 字段标识在该节点上将所述前缀绑定到所述标签. 本文档废止 RFC 3107.

本备忘录状态 (Status of This Memo)

这是一份 Internet Standards Track 文档.

本文档是互联网工程任务组 (Internet Engineering Task Force, IETF) 的产物. 它代表 IETF 社区的共识. 它已接受公开审阅, 并已获互联网工程指导组 (Internet Engineering Steering Group, IESG) 批准发布. 有关 Internet Standards 的更多信息, 见 RFC 7841 第 2 节.

有关本文档当前状态、任何勘误以及如何提供反馈的信息, 见 https://www.rfc-editor.org/info/rfc8277.

Copyright (c) 2017 IETF Trust and the persons identified as the document authors. All rights reserved.

本文档受 BCP 78 以及 IETF Trust 关于 IETF 文档的法律条款 (https://trustee.ietf.org/license-info) 约束 (以本文档发布之日有效者为准). 请仔细审阅这些文件, 因为它们描述了您与本文档相关的权利与限制. 从本文档提取的代码组件必须包含 Trust Legal Provisions 第 4.e 节所述的 Simplified BSD License 文本, 并按该许可证所述不提供保证.

目录 (Table of Contents)

  1. 引言
  2. 使用 BGP 将地址前缀绑定到一个或多个 MPLS 标签
  3. 安装和/或传播 SAFI-4 或 SAFI-128 路由
  4. 数据平面
  5. SAFI-4 与 SAFI-1 路由之间的关系
  6. IANA 考虑
  7. 安全考虑
  8. 参考文献

1. 引言 (Introduction)

[RFC3107] 规定了使用 BGP 指示特定路由器已将单个 MPLS 标签或 MPLS 标签序列绑定到特定地址前缀的编码与规程. (标签序列会作为 MPLS 标签栈的连续部分组织, 见 [RFC3031] 与 [RFC3032].) 这通过发送 BGP UPDATE 消息完成: 其 NLRI 字段同时包含前缀与 MPLS 标签, 其 Next Hop 字段标识在该节点上将所述前缀绑定到所述标签. 每条此类 UPDATE 还通告经指定下一跳到达指定前缀的路径.

尽管 [RFC3107] 有许多实现与部署, 但仍有若干问题曾妨碍互操作性, 并可能在未来继续妨碍互操作性:

  • 尽管 [RFC3107] 规定了允许将 MPLS 标签序列 (而非仅单个标签) 绑定到前缀的编码, 但并未规定将标签序列绑定到前缀的语义.

  • 许多 [RFC3107] 实现不支持将标签序列绑定到前缀.

  • [RFC3107] 规定: 若 BGP UPDATE 消息将标签序列绑定到前缀, 则 BGP speaker MUST 在其 OPEN 消息中包含 BGP Capability [RFC5492], 以表明其可处理此类 UPDATE 消息. 然而 [RFC3107] 未为此目的定义 Capability Code.

本文档替换并废止 [RFC3107]. 它定义在将标签序列绑定到前缀时使用的新 BGP Capability; 通过使用该 Capability, 可避免上述互操作性问题. 本文档还移除了未实现的 "Advertising Multiple Routes to a Destination" 特性 (见 [RFC3107] 第 4 节), 同时说明如何使用 [RFC7911] 提供相同功能.

2. 使用 BGP 将地址前缀绑定到一个或多个 MPLS 标签

这通过发送多协议 BGP UPDATE 消息完成, 即带有 [RFC4760] 所规定 MP_REACH_NLRI 属性的 UPDATE 消息. 该属性的 Network Address of Next Hop 字段包含节点 N 的 IP 地址. 标签与前缀编码在 MP_REACH_NLRI 的 NLRI 字段中. NLRI 字段的编码见第 2.2 与 2.3 节.

若前缀为 IPv4 地址前缀或 VPN-IPv4 ([RFC4364]) 地址前缀, 则 MP_REACH_NLRI 属性的 Address Family Identifier (AFI) 设为 1. 若前缀为 IPv6 地址前缀或 VPN-IPv6 前缀 ([RFC4659]), 则 AFI 设为 2. 若前缀为 IPv4 或 IPv6 地址前缀, 则 Subsequent Address Family Identifier (SAFI) 字段设为 4.

在本文档其余部分, 我们使用术语 "SAFI-x UPDATE" 指代包含 MP_REACH_NLRI 属性或 MP_UNREACH_NLRI 属性 ([RFC4760]) 且 SAFI 字段值为 x 的 BGP UPDATE 消息.

2.1. Multiple Labels Capability

[RFC5492] 定义 "Capabilities Optional Parameter". BGP speaker 可在 BGP OPEN 消息中包含 Capabilities Optional Parameter. Capabilities Optional Parameter 是三元组, 包括一字节 Capability Code、一字节 Capability length 以及可变长度 Capability Value.

本文档定义称为 Multiple Labels Capability 的 BGP Optional Capabilities 参数 ([RFC5492]).

  • 除非该 Capability 由给定 BGP 会话双方的 BGP speaker 均在该会话上发送, 否则在该会话上由任一方 speaker 发送的 SAFI-4 或 SAFI-128 UPDATE 消息 MUST 仅将前缀绑定到单个标签, 并且 MUST 使用第 2.2 节的编码.

2.2. 未使用 Multiple Labels Capability 时的 NLRI 编码

若在给定 BGP 会话上 Multiple Labels Capability 尚未被双方均发送与接收, 则在该会话上 MP_REACH_NLRI 属性包含第 2 节所规定 AFI/SAFI 组合之一的 BGP UPDATE 中, NLRI 字段按图 2 编码:

    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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Length | Label |Rsrv |S|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Prefix ~
~ ~
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 2: NLRI with One Label
  • Length: Length 字段由单个八位组组成.

2.3. 使用 Multiple Labels Capability 时的 NLRI 编码

若 (a) BGP speaker 已在特定 BGP 会话的 BGP OPEN 消息中发送 Multiple Labels Capability, (b) 它已在该会话对等方的 BGP OPEN 消息中接收 Multiple Labels Capability, 且 (c) 双方 Capability 均指定 AFI/SAFI x/y, 则在使用 AFI x 与 SAFI y 的 UPDATE 通告将标签或标签序列绑定到给定前缀时, BGP speaker MUST 使用第 2.3 节的编码. 即使仅将一个标签绑定到给定前缀, 也 MUST 使用此编码.

若在给定 BGP 会话上 Multiple Labels Capability 已被双方均发送与接收, 则在该会话上 MP_REACH_NLRI 属性包含第 2 节所规定 AFI/SAFI 组合之一的 BGP UPDATE 中, NLRI 字段按图 3 编码:

    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
+-+-+-+-+-+-+-+-+
| Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Label |Rsrv |S|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ ~
~ ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Label |Rsrv |S|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Prefix ~
~ ~
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

2.4. 如何显式撤销标签到前缀的绑定

假定 BGP speaker 已在给定 BGP 会话上通告将给定标签或标签序列绑定到给定前缀. 假定它现在希望撤销该绑定. 为此, 它可发送带有 MP_UNREACH_NLRI 属性的 BGP UPDATE 消息. 该属性的 NLRI 字段编码如下:

    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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Length | Compatibility |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Prefix ~
~ ~
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 4: NLRI for Withdrawal

在发送时, Compatibility 字段 SHOULD 设为 0x800000.

2.5. 更改绑定到前缀的标签

由给定节点更改绑定到给定前缀的标签的规程见第 2.5 节 (与英文源结构对应).

3. 安装和/或传播 SAFI-4 或 SAFI-128 路由

传播 SAFI-4 与 SAFI-128 UPDATE 的规程在第 3 节讨论.

3.1. 路由可比较性 (Comparability of Routes)

3.2. 传播时对 Label(s) 字段的修改

3.2.1. 当 Next Hop 字段未更改时

3.2.2. 当 Next Hop 字段更改时

4. 数据平面 (Data Plane)

当 BGP speaker 安装并传播 SAFI-4 或 SAFI-128 UPDATE, 且更改 Network Address of Next Hop 字段的值时, 它必须相应地对其数据平面编程. 这在第 4 节讨论.

5. SAFI-4 与 SAFI-1 路由之间的关系

6. IANA 考虑 (IANA Considerations)

本文档为 VPN-IPv6 地址族定义新的 SAFI 值 (128).

7. 安全考虑 (Security Considerations)

8. 参考文献 (References)

8.1. 规范性引用 (Normative References)

  • [RFC2026] Bradner, S., "The Internet Standards Process -- Revision 3", BCP 9, RFC 2026, October 1996.
  • [RFC3031] Rosen, E., Viswanathan, A., and R. Callon, "Multiprotocol Label Switching Architecture", RFC 3031, January 2001.
  • [RFC3032] Rosen, E., Tappan, D., Fedorkow, G., Rekhter, Y., Farinacci, D., Li, T., and A. Conta, "MPLS Label Stack Encoding", RFC 3032, January 2001.
  • [RFC4364] Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private Networks (VPNs)", RFC 4364, February 2006.
  • [RFC4659] De Clercq, J., Ooms, D., Prevost, S., and F. Le Faucheur, "BGP-MPLS IP Virtual Private Network (VPN) Extension for IPv6 VPN", RFC 4659, September 2006.
  • [RFC4760] Bates, T., Chandra, R., Katz, D., and Y. Rekhter, "Multiprotocol Extensions for BGP-4", RFC 4760, January 2007.
  • [RFC5492] Scudder, J. and R. Chandra, "Capabilities Advertisement with BGP-4", RFC 5492, February 2009.
  • [RFC7841] Halpern, J., Ed., Resnick, P., Ed., and A. Farrel, Ed., "RFC Streams, Headers, and Boilerplates", RFC 7841, May 2016.
  • [RFC7911] Walton, D., Retana, A., Chen, E., and J. Scudder, "Advertisement of Multiple Paths in BGP", RFC 7911, July 2016.

8.2. 资料性引用 (Informative References)

  • [RFC3107] Rekhter, Y. and E. Rosen, "Carrying Label Information in BGP-4", RFC 3107, May 2001.

致谢 (Acknowledgements)

作者地址 (Author's Address)

E. Rosen Juniper Networks, Inc. 10 Technology Park Drive Westford, MA 01886 United States of America

Email: [email protected]