多协议标签交换 (MPLS) : MPLS

对初学者的MPLS 常见问题

2015 年 8 月 28 日 - 机器翻译
其他版本: PDFpdf | 英语 (2015 年 4 月 22 日) | 反馈


目录


简介

本文档回答了与多协议标签交换 (MPLS) 相关的初级常见问题。

Q. 什么是多协议标签交换 (MPLS)?

A. MPLS 是一种数据包转发技术,该技术使用标签来做出数据转发决策。利用 MPLS 技术,只需一次(当数据包进入 MPLS 域时)即可完成第 3 层报头分析。标签检查可推动后续的数据包转发。MPLS 可为以下应用带来益处:

  • 虚拟专用网络 (VPN)

  • 流量工程 (TE)

  • 服务质量 (QoS)

  • 任何基于 MPLS 的传输 (AToM)

另外,它还可减少核心路由器上的转发开销。MPLS 技术适用于任何网络层协议。

Q. 什么是标签?标签的结构是什么?

A. 标签是一个由四个字节组成且只在本地有意义的固定长度短标识符,用于标识转发等效类 (FEC)。放置在特定数据包上的标签表示该数据包将要分配到的 FEC。

/image/gif/paws/4649/mpls-label.jpg

  • Label - 标签值(无结构),20 位

  • Exp - 供试验用,3 位;目前用作服务等级 (CoS) 字段。

  • S - 堆栈的底部,1 位

  • TTL —生存时间, 8个位

Q. 标签将附加到数据包中的什么位置?

A. 标签将附加到数据链路层(第 2 层)报头和网络层(第 3 层)报头之间。标签堆栈的顶部先出现在数据包中,底部最后出现。网络层数据包紧跟在标签堆栈中的最后一个标签之后。

/image/gif/paws/4649/mpls-label-insert.jpg

Q. 什么是转发等效类 (FEC)?

A. FEC 是以相同方式、通过相同路径并经过相同转发处理而转发的一组 IP 数据包。一个 FEC 可能对应于一个目标 IP 子网,但也可能对应于边缘 LSR 认为有意义的任一流量类别。例如,所有 IP 优先级为某一特定值的流量可构成一个 FEC。

Q. 什么是上游标签交换路由器 (LSR)?什么是下游 LSR?

A. 上游和下游在 MPLS 领域中是相对而言的两个词。它们始终指一个前缀(确切地说,即 FEC)。以下示例对此进行了进一步说明。

/image/gif/paws/4649/mpls-downstrmA.jpg

对于 FEC 10.1.1.0/24,R1 是 R2 的“下游”LSR。

对于 FEC 10.1.1.0/24,R2 是 R1 的“上游”LSR。

/image/gif/paws/4649/mpls-downstrmB.jpg

对于 FEC 10.1.1.0/24,R1 是 R2 的“下游”LSR。而 R2 是 R3 的“下游”LSR。

/image/gif/paws/4649/mpls-downstrmC.jpg

对于 FEC 10.1.1.0/24,R1 是 R2 的“下游”LSR。对于 FEC 10.2.2.0/24,R2 是 R1 的“下游”LSR。

数据从上游流向下游以到达相应网络(前缀)。

/image/gif/paws/4649/mpls-downstrmD.jpg

R4 路由选择表用 R1 和 R2 作为到达 10.1.1.0/24 的“下一跳”。

Q. 对于 10.1.1.0/24,R3 是 R4 的“下游”LSR 吗?

A. 不是,数据从上游流向下游。

Q. 提到标签时,术语传入、传出、本地和远程的含义是什么?

A. 请观察以下拓扑中的 R2 和 R3。对于 FEC F,R2 向 R3 分配一个标签 L。R3 在向 FEC-F 转发数据时会使用标签 L(原因是,对于 FEC-F,R2 是它的下游 LSR)。在这种情况下:

/image/gif/paws/4649/mpls-terms.jpg

  • 对于 F,L 是 R2 上的传入标签。

  • 对于 FEC-F,L 是 R3 上的传出标签。

  • 对于 FEC F,L 是 R2 上的本地绑定。

  • 对于 FEC-F,L 是 R3 上的远程绑定。

Q. LSR 能在 MPLS 接口上传输/接收本地 IP 数据包(非 MPLS)吗?

A. 能。如果在该接口上启用了 IP 协议,就可像平常一样接收/传输本地数据包。IP 只是一种不同的协议。MPLS 数据包具有一个不同的第 2 层编码。接收 LSR 可根据第 2 层编码来判断 MPLS 数据包。

Q. LSR 能在非 MPLS 接口上接收/传输带有标记的数据包吗?

A. 不能。绝不能在未启用相应协议的接口上传输数据包。MPLS 有一个与之关联的特定以太类型代码(就像 IP、IPX 和 AppleTalk 各有独特的以太类型一样)。如果 Cisco 路由器收到一个其以太类型未在相应接口上启用的数据包,它会丢弃该数据包。例如,如果路由器在没有启用 AppleTalk 的接口上接收到一个 AppleTalk 数据包,它会丢弃该数据包。同样,如果在没有启用 MPLS 的接口上接收到一个 MPLS 数据包,也会丢弃该数据包。

Q. 哪些平台和 Cisco IOS 支持 MPLS?

A. Cisco 系列 2691、3640、3660、3725、3745、6400-NRP-1、6400-NRP-2SV、6400-NSP、配有路由交换模块 (RSM) 的 Catalyst 5000、7200、7301、7400、7500、配有 WS-SUP720-3B 和 WS-SUP720-3BXL 的 Catalyst 6500/Cisco 7600 系列、千兆交换路由器 (GSR)、路由处理器模块 (RPM)、通用宽带路由器 (UBR) 7200、AS5350 以及 IGX8400-URM 均支持 MPLS。

这些平台支持将 Cisco 标记分配协议 (TDP) 用作标签分配协议。

可使用 Software Advisor仅限注册用户)工具查找有关标记分配协议 (LDP)、资源保留协议 (RSVP) 和边界网关协议 (BGP) 的信息。Software Advisor 可提供不同 Cisco IOS 版本和不同平台支持的功能集的完整列表。

Q. 通用路由封装 (GRE) 隧道的开销是 24 个字节。那么,一个 MPLS LSP 隧道的开销是多少?

A. 一个 MPLS LSP 隧道的开销是一个标签(四个字节)或两个标签(例如,当使用链路保护快速重新路由时)。与 GRE 隧道不同,MPLS 不会更改 IP 报头。而是将标签堆栈附加到采用该隧道路径的数据包中。

Q. LSR 如何判断哪个是标签堆栈的顶部标签、底部标签和中间标签?

A. 紧跟在第 2 层报头之后的标签是顶部标签,而 S 位设置为 1 的标签是底部标签。没有应用会要求 LSR 读取/标识中间标签。不过,如果标签不在标签堆栈的顶部且 S 位设置为 0,则该标签即为中间标签。

Q. 标签值的范围是多少?保留了哪些标签值?这些保留值的含义是什么?

A. 还可在 RFC3032 - MPLS 标签堆栈编码中找到这些值。leavingcisco.com

理论上,范围通过是0 (220-1)。标签值 0 至 15 为保留值,而值 4 至 15 留作将来使用。值 0 至 3 分别被定义为:

  • 值 0 表示“IPv4 显式 NULL 标签”。此标签表示必须对标签堆栈执行弹出操作,并且数据包转发必须基于 IPv4 报头。这有助于在到达出口路由器之前保证 Exp 位安全。它用在基于 MPLS 的 QoS 中。

  • 值 1 表示“路由器警报标签”。如果收到的数据包在标签堆栈的顶部包含此标签值,则该数据包将传送到一个本地软件模块以进行处理。实际的数据包转发由标签堆栈中位于数据包下面的标签决定。不过,如果进一步转发该数据包,则在转发之前应将“路由器警报标签”推送回标签堆栈。此标签的用法与 IP 数据包中 Router Alert 选项的用法类似(例如,带 record route 选项的 ping)

  • 值 2 表示“IPv6 显式 NULL 标签”。它表示必须对标签堆栈执行弹出操作,并且数据包转发必须基于 IPv6 报头。

  • 值 3 表示“隐式 NULL 标签”。这是 LSR 可分配和分发的标签。不过,它从不真正出现在封装中。它表示 LSR 将从标签堆栈中弹出顶部标签,然后通过传出接口(按照 Lfib 中的项)转发数据包(标记或非标记)的剩余部分。虽然此值可能从不出现在封装中,但需要在标签分配协议中指定此值,因而保留了一个值。

Q. LDP 和 TDP 使用哪些协议和端口号向 LDP/TDP 对等体分配标签?

A. LDP 使用 TCP 协议和端口 646;TDP 使用 TCP 协议和端口 711。仅当在路由器接口上配置了 mpls ip 后,该接口上才会打开这些端口。使用 TCP 作为传输协议可实现可靠的 LDP/TDP 信息传递以及强大的数据流控制和拥塞处理机制。

Q. Catalyst 6500 和 7600 光纤业务路由器 (OSR) 对 MPLS 的支持存在哪些限制?

A. 连接到 MPLS 域的接口必须使用某种光纤服务模块 (OSM)(例如,采用并行快速转发 (PXF) 复合技术的任一模块)或 FlexWAN 模块中的一个接口。MPLS 第 3 层 VPN 存在同样的限制。也就是说,IP 帧必须在某个 WAN 接口上进入,该接口可以是一种 OSM,也可以是 FlexWAN 模块中的一个接口。Supervisor 720 不存在此限制。

Q. 在哪里能找到 MPLS 配置示例?

A. 您可在以下位置找到许多 MPLS 配置文档:实施和配置:MPLS.

Q. 哪些选项可用于负载均衡 MPLS 数据包?

A. 可使用 MPLS 标签信息和/或重要 IP 报头的源地址和目标地址对 MPLS 数据包进行负载均衡处理。

Q. 能否通过 MPLS 连接配置不同站点上两台 Cisco Catalyst 交换机之间的 802.1Q trunk?

A. 当通过 MPLS 连接到远程站点时,它是第 3 层连接,而 802.1Q trunk 是第 2 层协议,因此不能通过 MPLS 连接配置 802.1Q trunk。您需要有城域以太网连接或 802.1Q 隧道才能扩展 ISP 提供的 VLAN。在 MPLS 网云中,ISP 通过 VRF 进行通信。

有关详细信息,请参阅配置 IEEE 802.1Q 隧道

Q. 流出的MPLS EXP值是否继承在流入的IP数据包的DSCP值默认情况下或流入DSCP委托,不用在MPLS启用接口的任何更多的配置?

A. 是,没有更多的配置是需要的。

Q. DHCP中继功能是否工作在MPLS VPN网络?

A. 是, DHCP请求在间MPLS VPN网络的VRF内转发,并且出口运营商边缘在同样VRF发送它对DHCP服务器。

相关的思科支持社区讨论

思科支持社区是您提问、解答问题、分享建议以及与工作伙伴协作的论坛。


相关信息


Document ID: 4649