简介
本文档回答了与多协议标签交换 (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。
什么是上游标签交换路由器 (LSR)?什么是下游 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?
不是,数据从上游流向下游。
在谈到标签时,术语"传入"、"传出"、"本地"和"远程"是什么意思?
请观察以下拓扑中的 R2 和 R3。对于 FEC F,R2 向 R3 分配一个标签 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 具有唯一以太网类型一样)。当思科路由器收到包含接口上未启用的以太网类型的数据包时,它会丢弃该数据包。例如,如果路由器在没有启用 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,则该标签即为中间标签。
标签值的范围是多少?保留了哪些标签值?这些保留值的含义是什么?
还可在 RFC3032 - MPLS 标签堆栈编码中找到这些值。
理论上,范围为 0 至 (220-1)。标签值 0 至 15 为保留值,而值 4 至 15 留作将来使用。值 0 至 3 分别被定义为:
-
值为 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 不存在此限制。
在哪里能找到 MPLS 配置示例?
在实施和配置:MPLS中有许多MPLS配置文档。
哪些选项可用于负载均衡 MPLS 数据包?
可使用 MPLS 标签信息和/或重要 IP 报头的源地址和目标地址对 MPLS 数据包进行负载均衡处理。
能否通过 MPLS 连接配置不同站点上两台 Cisco Catalyst 交换机之间的 802.1Q trunk?
当通过 MPLS 连接到远程站点时,它是第 3 层连接,而 802.1Q trunk 是第 2 层协议,因此不能通过 MPLS 连接配置 802.1Q trunk。您需要有城域以太网连接或 802.1Q 隧道才能扩展 ISP 提供的 VLAN。在 MPLS 网云中,ISP 通过 VRF 进行通信。
有关详细信息,请参阅配置 IEEE 802.1Q 隧道。
传出 MPLS EXP 值在默认情况下是否继承传入 IP 数据包中的 DSCP 值,或者在支持 MPLS 的接口上没有任何其他配置的情况下传入 DSCP 是否受信任?
是,无需任何其他配置。
DHCP 中继功能在 MPLS VPN 网络中是否适用?
是,DHCP 请求通过 MPLS VPN 网络在 VRF 内转发,并且出口提供商边缘设备在同一 VRF 中将该请求发送到 DHCP 服务器。
相关信息