简介
本文档回答了与多协议标签交换 (MPLS) 相关的初级常见问题。
什么是多协议标签交换 (MPLS)?
MPLS是一种数据包转发技术,它使用标签来做出数据转发决策。利用 MPLS 技术,只需一次(当数据包进入 MPLS 域时)即可完成第 3 层报头分析。 标签检查可推动后续的数据包转发。MPLS 可为以下应用带来益处:
-
虚拟专用网络 (VPN)
-
流量工程 (TE)
-
服务质量 (QoS)
-
任何基于 MPLS 的传输 (AToM)
另外,它还可减少核心路由器上的转发开销。MPLS技术适用于任何网络层协议。
什么是标签?标签的结构是什么?
标签是一个短的、四字节的、固定长度的局部重要标识符,用于标识转发等价类(FEC)。 置于特定数据包上的标签表示该数据包所分配到的转发等价类(FEC)。

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

什么是FEC?
FEC是一组IP数据包,以相同的方式通过相同路径转发,并使用相同的转发处理。FEC可以对应目的IP子网,但也可以对应边缘LSR认为重要的任何流量类。例如,具有特定IP优先级值的所有流量都可以构成FEC。
What is an upstream label switch router (LSR)?What is a downstream LSR?
上游和下游在 MPLS 领域中是相对而言的两个词。它们通常是指前缀(更确切地说,也就是 FEC)。 以下示例对此进行了进一步说明。

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

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

对于FEC 10.1.1.0/24,R1是R2的下游LSR。对于FEC 10.2.2.0/24,R2是R1的下游LSR。
数据流从上游流向下游以到达该网络(前缀)。

R4路由表将R1、R2和R3作为下一跳,以便到达10.1.1.0/24。
对于 10.1.1.0/24,R3 是否是 R4 的下游 LSR?
是,10.1.1.0/24的流量从R4向下游流到R3。
在谈到标签时,术语"传入"、"传出"、"本地"和"远程"是什么意思?
请观察以下拓扑中的 R2 和 R3。R2向R3分配FEC F的标签L。R3将数据转发到FEC-F时使用标签L(因为R2是FEC-F的下游LSR)。 在这种情况下:

-
L 是 R2 上 F 的传入标签
-
L 是 R3 上 FEC-F 的传出标签
-
L 是 R2 上 FEC F 的本地绑定
-
L 是 R3 上 FEC-F 的远程绑定
LSR 能在 MPLS 接口上传输/接收本地 IP 数据包(非 MPLS)吗?
能。如果在该接口上启用了 IP 协议,就可像平常一样接收/传输本地数据包。IP 只是一种不同的协议。MPLS 数据包具有一个不同的第 2 层编码。接收 LSR 可根据第 2 层编码来判断 MPLS 数据包。
LSR 能在非 MPLS 接口上接收/传输带有标记的数据包吗?
不能。数据包从不传输在未为该协议启用的接口上。MPLS 具有与其关联的特定以太网类型代码(就如同 IP、IPX 和 Appletalk 具有唯一以太网类型一样)。 当Cisco路由器收到接口上未启用Ethertype的数据包时,它会丢弃该数据包。例如,如果路由器在未启用Appletalk的接口上收到Appletalk数据包,则会丢弃该数据包。同样,如果在未启用MPLS的接口上收到MPLS数据包,该数据包将被丢弃。
哪些平台和 Cisco IOS 支持 MPLS?
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 版本和不同平台支持的功能集的完整列表。
通用路由封装 (GRE) 隧道的开销是 24 个字节。那么,一个 MPLS LSP 隧道的开销是多少?
MPLS标签交换路径(LSP)隧道有一个开销标签(四个字节)或两个标签(例如,使用链路保护快速重新路由时)。与 GRE 隧道不同,MPLS 不会更改 IP 报头。而是将标签堆栈施加到采用隧道路径的数据包上。
LSR如何知道哪个是标签堆栈的顶部标签、底部标签和中间标签?
紧跟在第 2 层报头之后的标签是顶部标签,而 S 位设置为 1 的标签是底部标签。没有应用会要求 LSR 读取/标识中间标签。但是,如果标签不在堆栈顶部,并且S位设置为0,则该标签为中间标签。
标签值的范围是多少?What label values are reserved?这些保留值的含义是什么?
还可在 RFC3032 - MPLS 标签堆栈编码中找到这些值。
理论上,范围为 0 至 (220-1)。 标签值 0 至 15 为保留值,而值 4 至 15 留作将来使用。Values 0-3 are defined as:
-
值为 0 表示 IPv4 显式空标签。此标签表示必须对标签堆栈执行弹出操作,并且数据包转发必须基于 IPv4 报头。这有助于在到达出口路由器之前保证 Exp 位安全。它用于基于MPLS的QoS。
-
值为 1 表示路由器警报标签。如果收到的数据包在标签堆栈的顶部包含此标签值,则该数据包将传送到一个本地软件模块以进行处理。实际的数据包转发由标签堆栈中位于数据包下面的标签决定。但是,如果数据包被进一步转发,则必须在转发之前将路由器警报标签推回标签堆栈。此标签的使用类似于IP数据包中使用路由器警报选项(例如,使用记录路由选项执行ping)。
-
值为 2 表示 IPv6 显式空标签。它表示必须对标签堆栈执行弹出操作,并且数据包转发必须基于 IPv6 报头。
-
值为 3 表示隐式空标签。这是 LSR 可分配和分发的标签。不过,它从不真正出现在封装中。它表示 LSR 将从标签堆栈中弹出顶部标签,然后通过传出接口(按照 Lfib 中的项)转发数据包(标记或非标记)的剩余部分。 虽然该值从不在封装中出现,但必须在标签分发协议中指定,因此保留一个值。
LDP 和 TDP 使用哪些协议和端口号向 LDP/TDP 对等体分配标签?
LDP使用TCP端口646,TDP使用TCP端口711。仅当在接口上配置了mpls ip时,路由器接口才会打开这些端口。使用TCP作为传输协议可以可靠地传输LDP/TDP信息,同时具有强大的流量控制和拥塞处理机制。
Catalyst 6500 和 7600 光纤业务路由器 (OSR) 对 MPLS 的支持存在哪些限制?
连接到 MPLS 域的接口必须使用某种光纤服务模块 (OSM)(例如,采用并行快速转发 (PXF) 复合技术的任一模块)或 FlexWAN 模块中的一个接口。MPLS 第 3 层 VPN 存在同样的限制。即,IP帧必须进入WAN接口,该接口可以是OSM或FlexWAN模块中的接口。Supervisor 720 不存在此限制。
Where can I find MPLS configuration samples?
您可在以下位置找到许多 MPLS 配置文档:实施和配置:MPLS。
哪些选项可用于对MPLS数据包进行负载均衡?
MPLS数据包可以使用MPLS标签信息和/或基本IP报头的源地址和目的地址进行负载均衡。
是否可以通过MPLS连接在不同站点的两个Cisco Catalyst交换机之间配置802.1Q中继?
当您通过MPLS连接到远程站点时,它是第3层连接,而802.1Q中继是第2层协议,因此您不能通过MPLS连接拥有802.1Q中继。您必须具有城域以太网连接或802.1Q隧道才能扩展ISP提供的VLAN。在MPLS云中,ISP通过虚拟路由和转发(VRF)进行通信。
有关详细信息,请参阅配置 IEEE 802.1Q 隧道。
默认情况下,传出MPLS EXP值是否继承传入IP数据包中的差分服务代码点(DSCP)值,或者传入DSCP是否受信任,无需在启用MPLS的接口上进行任何额外配置?
是,无需任何其他配置。
DHCP 中继功能在 MPLS VPN 网络中是否适用?
是,DHCP 请求通过 MPLS VPN 网络在 VRF 内转发,并且出口提供商边缘设备在同一 VRF 中将该请求发送到 DHCP 服务器。
相关信息