在BGP-4中携带标签信息

RFC3107:Carrying Label Information in BGP-4,May 2001

本备忘录的状态

本文档为 Internet 团体指定了 Internet 标准跟踪协议,并请求讨论和改进建议。本协议的标准化状态和现状请参考当前版本的《互联网官方协议标准》(STD 1)。本备忘录的分发不受限制。

版权声明

版权所有 (C) 互联网协会 (2001)。版权所有。

梗概

本文档规定了在用于分发路由本身的同一边界网关协议 (Border Gateway Protocol,BGP) 更新消息中搭载特定路由的标签映射信息的方式。当 BGP 用于分发特定路由时,它也可用于分发映射到该路由的多协议标签交换 (Multiprotocol Label Switching,MPLS) 标签。

1、 需求说明

本文档中的关键词“必须”、“不得”、“要求”、“应”、“不应”、“应该”、“不应”、“推荐”、“可以”和“可选”是按照 RFC 2119 中的说明进行解释。

2、 概述

当 BGP 用于分发特定路由时,它也可以用于分发映射到该路由的 MPLS 标签 [MPLS-ARCH]。本文档指定了执行此操作的方式。特定路由的标签映射信息搭载在用于分发路由本身的同一 BGP 更新消息中。

这在以下情况下很有用:

– 如果两个直接相邻的标签交换路由器 (Label Switched Routers,LSR) 也是 BGP 对等体,则可以在不需要任何其他标签分发协议的情况下完成标签分发。

– 假设一个网络由 LSR 的两个“类”组成:外部 LSR,与其他网络接口;内部 LSR,仅用于在外部 LSR 之间传输流量。假设外部 LSR 是 BGP 发言者。如果 BGP 发言者将 MPLS 标签与它们分发的每条路由一起分发给彼此,那么只要内部路由器支持 MPLS,它们就不需要从 BGP 发言者接收任何 BGP 路由。

如果外部路由器 A 需要向目标 D 发送一个数据包,并且 A 到 D 的 BGP 下一跳是外部路由器 B,并且 B 已将标签 L 映射到 D,则 A 首先将 L 压入数据包的标签堆栈。然后 A 咨询它的 IGP 以找到到 B 的下一跳,称为 C。如果 C 已经为 A 分发了到 B 的路由的 MPLS 标签,A 可以将该标签推送到数据包的标签堆栈上,然后将数据包发送给 C。

如果一组 BGP 发言者通过路由反射器 [BGP-RR] 交换路由,那么通过在路由分布上捎带标签分布,人们也可以使用路由反射器来分布标签。这极大地提高了可扩展性。请注意,如果路由反射器不在转发路径中,它甚至不需要能够转发 MPLS 数据包。

通过使用 BGP-4 多协议扩展属性 [RFC 2283],可以在 BGP 更新消息中搭载标签分发。标签被编码到属性的NLRI字段中,SAFI(“Subsequent Address Family Identifier”)字段用于指示NLRI包含标签。BGP 发言者不能使用 BGP 向特定的 BGP 对等体发送标签,除非该对等体通过 BGP 能力通告表明它可以处理具有指定 SAFI 字段的更新消息。

3、 携带标签映射信息

标签映射信息作为多协议扩展属性中网络层可达性信息 (Network Layer Reachability Information,NLRI) 的一部分携带。像往常一样,AFI 指示相关路由的地址族。NLRI 包含标签的事实通过使用 SAFI 值 4 来表示。

网络层可达性信息被编码为 形式的一个或多个三元组,其字段描述如下:

图片

这些字段的用途和意义如下:

a) Length/长度:

长度字段表示地址前缀加上标签的比特长度。

b) Label/标签:

标签字段携带一个或多个标签(对应于标签堆栈[MPLS-ENCAPS])。每个标签被编码为 3 个八位字节,其中高 20 位包含标签值,低位包含“堆栈底部”(如 [MPLS-ENCAPS] 中定义)。

c) Prefix/前缀:

Prefix 字段包含地址前缀,后跟足够的尾随位,以使该字段的结尾落在八位字节边界上。请注意,尾随位的值无关紧要。

为特定路由指定的标签(并与其地址前缀相关联)必须由 LSR 分配,该 LSR 由路由的 Next Hop 属性的值标识。

当 BGP 发言者重新分配路由时,分配给该路由的标签不得更改(省略除外),除非发言者更改路由的 Next Hop 属性的值。

BGP 发言者可以通过以下两种方式撤销先前通告的路由(以及该路由与标签之间的绑定):

(a)通告具有与先前通告的路由相同的 NLRI 的新路由(和标签);

(b)在 Update 消息的 Withdrawn Routes 字段中列出先前通告的路由的 NLRI。Withdrawn Routes 字段中携带的标签信息(作为 NLRI 的一部分)应设置为 0x800000。(当然,终止 BGP 会话也会撤销所有之前公布的路由。)

4、 向一个目标发布多条路由

BGP 发言者可以维护(并向其对等方通告)到给定目标的多条路由,只要每条这样的路由都有自己的标签。

上述编码允许单个 BGP 更新消息携带多个路由,每个路由都有自己的标签。

在BGP发言者向一个目标发布多条路由的情况下,如果一条路由被撤回,并且在撤回时指定了一个标签,则只有具有相应标签的相应路由被撤回。如果撤消了一条路由,并且撤消时没有指定标签,则只撤消对应的未标签路由;标记的路由留在原地。

5、 能力通告

使用多协议扩展来携带标签映射信息的 BGP 发言者应使用 [BGP-CAP] 中定义的能力可选参数来通知其对等方有关此能力的信息。[BGP-MP] 中定义的 MP_EXT 能力代码用于通告特定连接上可用的(AFI,SAFI)对。

除非两个发言者之间存在标签交换路径 (Label Switched Path,LSP),否则 BGP 发言者不应将此功能通告给另一个 BGP 发言者。

能够处理到目标的多条路由(如上所述)的 BGP 发言者应使用 [BGP-CAP] 中定义的 Capabilities 可选参数来通知其对等方有关此能力的信息。此能力的值为 4。

6、 当BGP对等体不直接相邻时

考虑以下 LSR 拓扑:A–B–C–D。假设 D 将标签 L 分配给 A。在此拓扑中,A 不能简单地将 L 压入数据包的标签堆栈,然后将结果数据包发送给 B。D 必须是唯一在堆栈顶部看到 L 的 LSR。在A向B发送数据包之前,它必须推送另一个标签,该标签由B分发。B必须用另一个标签替换这个标签,该标签由C分发。换句话说,A和D之间必须有一条LSP . 如果没有这样的 LSP,A 就不能使用标签 L。无论何时在不相邻的 LSR 之间分配标签时都是如此,无论该分配是通过 BGP 还是通过其他方法完成的。

本文档未指定任何程序来确保仅当连接两个 LSR 的网络或网络中存在适当的 MPLS 基础设施时,才能实时完成非相邻 LSR 之间的标签分发。确保存在适当的基础设施是网络管理和运营的一个问题。

7、 安全考虑

当 LSR A 通过点对点接口直接连接到 LSR B 时,当 A 通过该接口接收到数据包时,它知道它们来自 B。这使得 A 很容易丢弃来自 B 的任何数据包top 标签不在 A 分发给 B 的标签中。也就是说,A 可以很容易地确保 B 只使用它有权使用的那些标签。此技术可用于防止“标签欺骗”,即 LSR 强加一个未正确分发给它的标签的情况。

当标签分发对等点不仅由点对点链路分隔,而且由 MPLS 网络分隔时,通常会使用本文档中讨论的过程。这意味着当一个 LSR A 处理一个带标签的数据包时,它确实无法确定哪个其他 LSR B 推送到顶部标签上。因此,它无法判断标签是否是 B 有权使用的标签。事实上,当使用 Route Reflector 时,A 甚至可能不知道接收其标签映射的 LSR 集合。所以上一段防止标签欺骗的技术不适用。

尽管可以使用其他技术来避免标签欺骗问题。例如,如果一个人从不接受来自网络“外部”接口的标记数据包,并且所有 BGP 分发的标签都通过 IBGP 公布,那么不受信任的路由器无法将标记数据包放入网络。人们通常可以假设一个人的 IBGP 对等体(或一个人的路由反射器的 IBGP 对等体)不会尝试标签欺骗,因为它们都在单个管理的控制之下。

这种情况实际上可以显着减弱。不需要拒绝接受来自外部接口的所有标记数据包。只需确保在外部接口上接收到的任何带标签的数据包都具有实际分发到该接口的顶部标签。

然后,只有在同一接口同时存在受信任和不受信任的系统时,才会存在标签欺骗问题。避免此问题的一种方法是简单地避免这种情况。

8、 致谢

感谢 Ravi Chandra、Enke Chen、Srihari Ramachandra、Eric Gray 和 Liam Casey 的评论。

9、 参考文献

[BGP-4] Rekhter, Y. and T. Li, "A Border Gateway Protocol 4 (BGP-4)", RFC 1771, March 1995.[BGP-CAP] Chandra, R. and J. Scudder, "Capabilities Advertisement with BGP-4", RFC 2842, May 2000.[BGP-MP] Bates, T., Rekhter, Y, Chandra, R. and D. Katz, "Multiprotocol Extensions for BGP-4", RFC 2858, June 2000.[BGP-RR] Bates, T. and R. Chandra, "BGP Route Reflection: An alternative to full mesh IBGP", RFC 1966, June 1996.[MPLS-ARCH] Rosen, E., Vishwanathan, A. and R. Callon, "Multiprotocol Label Switching Architecture" RFC 3031, January 2001.[MPLS-ENCAPS] Rosen, E., Tappan, D., Fedorkow, G., Rekhter, Y., Farinacci, D., Li, T. and A. Conta, "MPLS Label Stack Encoding", RFC 3032, January 2001.

10、 完整的版权声明

版权所有 (C) 互联网协会 (2001)。版权所有。

本文档及其翻译可以复制和提供给其他人,对其进行评论或以其他方式解释或协助其实施的衍生作品可以全部或部分准备、复制、出版和分发,不受任何形式的限制, 前提是上述版权声明和本段包含在所有此类副本和衍生作品中。但是,不得以任何方式修改本文档本身,例如删除版权声明或对 Internet 协会或其他 Internet 组织的引用,除非出于开发 Internet 标准的需要,在这种情况下,版权程序定义在必须遵循互联网标准流程,或根据需要将其翻译成英语以外的其他语言。

上述授予的有限权限是永久性的,不会被互联网协会或其继任者或受让人撤销。

本文档和此处包含的信息按“原样”提供,互联网协会和互联网工程工作组不提供任何明示或暗示的保证,包括但不限于使用此处信息不会做出的任何保证侵犯任何权利或任何对适销性或特定用途适用性的默示保证。

致谢

RFC Editor 功能的资金目前由 Internet Society 提供。

声明:文中观点不代表本站立场。本文传送门:https://eyangzhen.com/112897.html

(0)
联系我们
联系我们
分享本页
返回顶部