跳到主要内容

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]