Cisco经典文档

当前位置: 首页Cisco经典文档对初学者的MPLS 常见问题


对初学者的MPLS 常见问题

 

 

                                                       文档下载:

切换至英文原版


 

问题

前言
什么是多协议标签交换 (MPLS)?
什么是标签? 标签的结构是什么?
标签将附加到数据包中的什么位置?
什么是转发等效类 (FEC)?
什么是上游标签交换路由器 (LSR)? 什么是下游 LSR?
对于 10.1.1.0/24,R3 是 R4 的“下游”LSR 吗?
提到标签时,术语传入、传出、本地和远程的含义是什么?
LSR 能在 MPLS 接口上传输/接收本地 IP 数据包(非 MPLS)吗?
LSR 能在非 MPLS 接口上接收/传输带有标记的数据包吗?
哪些平台和 Cisco IOS 支持 MPLS?
通用路由封装 (GRE) 隧道的开销是 24 个字节。 那么,一个 MPLS LSP 隧道的开销是多少?
LSR 如何判断哪个是标签堆栈的顶部标签、底部标签和中间标签?
标签值的范围是多少? 保留了哪些标签值? 这些保留值的含义是什么?
LDP 和 TDP 使用哪些协议和端口号向 LDP/TDP 对等体分配标签?
Catalyst 6500 和 7600 光纤业务路由器 (OSR) 对 MPLS 的支持存在哪些限制?
在哪里能找到 MPLS 配置示例?
哪些选项可用于负载均衡 MPLS 数据包?
能否通过 MPLS 连接配置不同站点上两台 Cisco Catalyst 交换机之间的 802.1Q trunk?
流出的MPLS EXP值是否继承在流入的IP数据包的DSCP值默认情况下或流入DSCP委托是否是没有在MPLS的任何更多的配置启用接口?
DHCP中继功能是否工作在MPLS VPN网络?
 


 

前言

 

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

 

问。 什么是多协议标签交换 (MPLS)?

 

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

  • 虚拟专用网络 (VPN)

  • 流量工程 (TE)

  • 服务质量 (QoS)

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

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

 

问。 什么是标签? 标签的结构是什么?

 

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

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

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

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

  • S - 堆栈的底部,1 位

  • TTL - 存活时间,8 位

 

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

 

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

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

 

问。 什么是转发等效类 (FEC)?

 

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

 

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

 

答:上游和下游在 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 的“下一跳”。

 

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

 

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

 

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

 

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 上的远程绑定。

 

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

 

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

 

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

 

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

 

问。 哪些平台和 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 版本和不同平台支持的功能集的完整列表。

 

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

 

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

 

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

 

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

 

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

 

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

理论上,范围通过是0 (2-120)。 标签值 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 中的项)转发数据包(标记或非标记)的剩余部分。 虽然此值可能从不出现在封装中,但需要在标签分配协议中指定此值,因而保留了一个值。

 

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

 

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

 

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

 

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

 

问。 在哪里能找到 MPLS 配置示例?

 

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

 

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

 

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

 

问。 能否通过 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服务器。

 


 

 

注:本人能力有限,如遇不足之处,还请指正!

China-CCIE  QQ交流群:106155045   点击与作者QQ交谈