青蛙不是癞蛤蟆

第1章 MPLS简介

1.1  MPLS 概述

MPLS Multiprotocol Label Switching )最初是用来提高路由器的转发速度而提出的一个协议,但由于其在流量工程( Traffic Engineering )和 VPN Virtual Private Network )这两项目前在 IP 网络中非常关键的技术中的表现, MPLS 已日益成为扩大 IP 网络规模的重要标准。

MPLS 协议的关键是引入了标签( Label )的概念。它是一种短的易于处理的、不包含拓扑信息、只具有局部意义的信息内容。在 MPLS 网络中, IP 包在进入第一个 MPLS 设备时, MPLS 边缘路由器就用这些标签封装起来, MPLS 边缘路由器分析 IP 包的内容并且为这些 IP 包选择合适的标签。相对于传统的 IP 路由分析, MPLS 不仅分析 IP 包头中的目的地址信息,它还分析 IP 包头中的其他信息,如 TOS 等;之后所有 MPLS 网络中的节点都是依据这个简短标签来作为转发判决依据。当该 IP 包最终离开 MPLS 网络时,标签被边缘路由器分离。

1.2  MPLS 原理

如图 1-1 所示, MPLS 网络的基本构成单元是标签交换路由器 LSR Label Switching Router ),由 LSR 构成的网络叫做 MPLS 域。位于 MPLS 域边缘和其它用户网络相连的 LSR 称为边缘 LSR LER Labeled Edge Router ),位于区域内部的 LSR 则称为核心 LSR 。标签分组沿着由一系列 LSR 构成的标签交换路径 LSP Label Switched Path )传送,其中入口 LSR Ingress ,出口 LSR Egress

图1-1 MPLS 基本原理

1.2.1  基本概念

首先介绍几个 MPLS 中特有的基本概念。

1. 标签及其结构

标签( label )是一个短的、长度固定的数值,由报文的头部所携带,不包含拓扑信息,只具有局部意义。标签同 ATM VPI/VCI 以及 Frame Relay DLCI 类似,是一种连接的标识符。如果链路层协议具有标签域,如 ATM VPI/VCI Frame Relay DLCI ,则标签封装在这些域中;如果不支持,则标签封装在链路层和 IP 层之间的一个垫层中。这样,标签能够被任意的链路层所支持。

标签的封装结构如图 1-2 所示,它位于链路层包头和网络层分组之间,长度为 4 个字节。标签共有 4 个域:

图1-2 标签的封装结构

Label :标签值字段,长度为 20bits ,用于转发的指针。

Exp 3bits ,保留,用于试验。

S 1bit MPLS 支持标签的分层结构,即多重标签。值为 1 时表明为最底层标签。

TTL 8bits ,和 IP 分组中的 TTL 意义相同。

2. 等价转发类

转发等价类( FEC —— Forwarding Equivalence Class )是在网络中遵循相同转发路径的报文的集合。例如,在传统的最长匹配算法的 IP 转发中,到同一个目的地址的所有报文是一个转发等价类。实际上,转发等价类的划分方式是非常灵活的,可以是源地址、目的地址、源端口、目的端口、协议类型、 VPN 等信息的任意组合。在 MPLS 中,一个标签标识了一个转发等价类。

3. 标签交换路径

一个转发等价类在 MPLS 网络中走过的路径称为标签交换路径 (LSP —— Label Switched Path) LSP 在功能上同 ATM Frame Relay 的虚电路是等价的,它是从入口到出口的一个单向路径。 LSP 中的每个节点称为标签转发路由器 (LSR) ,其中,入口和出口节点分别称为入口 LSR Ingress )和出口 LSR Egress )。

4. 标签分配和分发

MPLS 体系中,将特定标签分配给特定 FEC 的决定由下游 LSR 作出,下游 LSR 随后通知上游 LSR 。即标签由下游指定,分配的标签按照从下游到上游的方向分发。

MPLS 中使用的标签分发方式有两种:下游自主标签分发方式( DU Downstream Unsolicited )和下游按需标签分发方式( DoD Downstream On Demand )。

对于一个特定的 FEC LSR 无须从上游获得标签请求消息即进行标签分配与分发的方式,称为下游自主标签分配。

对于一个特定的 FEC LSR 获得标签请求消息之后才进行标签分配与分发的方式,称为下游按需标签分配。

具有标签分发邻接关系的上游 LSR 和下游 LSR 之间必须对使用哪种标签分发方式达成一致。

5. 标签控制方式

标签控制方式分为两种:独立( Independent )标签控制方式和有序( ordered )标签控制方式。

当使用独立标签控制方式时,每个 LSR 可以在任意时间向和它连接的 LSR 通告标签映射。

当使用有序标签控制方式时,只有当 LSR 收到某一特定 FEC 下一跳的特定标签映射消息或者 LSR LSP 的出口节点时, LSR 才可以向上游发送标签映射消息。

6. 标签保持方式

标签保持方式分为两种:自由标签保持方式和保守标签保持方式。

假设两台路由器 Ru Rd ,对于一个特定的 FEC ,如果 LSR Ru 收到了来自 LSR Rd 的标签绑定:当 Rd 不是 Ru 的下一跳时,如果 Ru 保存该绑定,则称 Ru 使用的是自由标签保持方式;如果 Ru 丢弃该绑定,则称 Ru 使用的是保守标签保持方式。

当要求 LSR 能够迅速适应路由变化时可使用自由标签保持方式;当要求 LSR 中保存较少的标签数量时可使用保守标签保持方式。

1.2.2  标签报文的转发

Ingress ,将进入网络的分组根据其特征划分成转发等价类 FEC (一般根据 IP 地址前缀或者主机地址来划分 FEC )。这些具有相同 FEC 分组在 MPLS 区域中将经过相同的路径(即 LSP )。 LSR 对到来的 FEC 分组分配一个短而定长的标签,然后从相应的接口转发出去。

LSP 沿途的 LSR 上都已建立了输入 / 输出标签的映射表(该表的元素叫下一跳标签转发条目,简称 NHLFE Next Hop Label Forwarding Entry )。对于接收到的标签分组, LSR 只需根据标签从表中找到相应的 NHLFE ,并用新的标签来替换原来的标签,然后对标签分组进行转发,这个过程叫输入标签映射 ILM Incoming Label Map )。

MPLS 在网络入口处指定特定分组的 FEC ,后续路由器只需简单的转发即可,比常规的网络层转发要简单的多,转发速度得以提高。

&   说明:

TTL 处理:

标签化分组时必须将原 IP 分组中的 TTL 值拷贝到标签中的 TTL 域。 LSR 在转发标签化分组时,要对栈顶标签的 TTL 域作减一操作。标签出栈时,再将栈顶的 TTL 值拷贝回 IP 分组或下层标签。

但是,当 LSP 穿越由 ATM-LSR FR-LSR 构成的非 TTL LSP 段时,域内的 LSR 无法处理 TTL 域。这时,需要在进入非 TTL LSP 段时对 TTL 进行统一处理,即一次性减去反映该非 TTL LSP 段长度的值。

 

1.2.3  LSP 的建立

LSP 的建立其实就是将 FEC 和标签进行绑定,并将这种绑定通告 LSP 上相邻 LSR 的过程。这个过程是通过标签分发协议 LDP Label Distribution Protocol )来实现的。 LDP 规定了 LSR 间的消息交互过程和消息结构,以及路由选择方式。

1. LDP 的工作过程

LSR 通过周期性地发送 Hello 消息来发现 LSR 邻居,然后与新发现的相邻 LSR 间建立 LDP 会话。通过 LDP 会话,相邻 LSR 间通告标签交换方式、标签空间、会话保持定时器值等信息。 LDP 会话是 TCP 连接,需通过 LDP 消息来维护,如果在会话保持定时器值规定的时间内没有其它 LDP 消息,那么必须发送会话保持消息来维持 LDP 会话的存在。 1-3 LDP 标签分发示意图。

图1-3 标签分发过程

在一条 LSP 上,沿数据传送的方向,相邻的 LSR 分别叫上游 LSR 和下游 LSR 。如在 1-3 中的 LSP1 上, LSR B LSR C 的上游 LSR

前面提到,标签的分发过程有两种模式: DoD downstream-on-demand )模式和 DU downstream unsolicited )模式。这两种模式的主要区别在于标签映射的发布是上游请求还是下游主动发布。

DoD downstream-on-downstream )模式下标签的分发过程是这样:上游 LSR 向下游 LSR 发送标签请求消息(包含 FEC 的描述信息),下游 LSR 为此 FEC 分配标签,并将绑定的标签通过标签映射消息反馈给上游 LSR 。下游 LSR 在何时反馈标签映射消息,取决于该 LSR 采用独立标签控制方式还是有序标签控制方式。当下游 LSR 采用有序标签控制方式时,只有收到它的下游返回的标签映射消息后才向其上游发送标签映射消息;当下游 LSR 采用独立标签控制方式时,则不管有没有收到它的下游返回的标签映射消息都立即向其上游发送标签映射消息。上游 LSR 一般是根据其路由表中信息来选择下游 LSR 的。图 1-4 LSP1 沿途的 LSR 都采用有序标签控制方式, LSP2 LSR F 采用独立标签控制方式。

DU downstream unsolicited )模式下分发标签的过程:下游 LSR LDP 会话建立成功,主动向其上游 LSR 发布标签映射消息。上游 LSR 保存标签映射信息,并根据路由表信息来处理收到的标签映射信息。

2. 基于约束路由的 LDP

MPLS 还支持基于约束路由的 LDP 机制( CR-LDP Constrain-based Routing LDP )。所谓 CR-LDP ,就是入口节点在发起建立 LSP 时,在标签请求消息中对 LSP 路由附加了一定的约束信息。这些约束信息可以是对沿途 LSR 的精确指定,此时叫严格的显式路由;也可以是对选择下游 LSR 时的模糊限制,此时叫松散的显式路由。

3. LSP 的环路控制

MPLS 域中建立 LSP 也要防止路径循环。防止 LSP 的路径循环有最大跳数和路径向量两种方式。

最大跳数方式是在传递标签绑定的消息中包含跳数信息,每经过一跳该值就加一,当该值超过规定的最大值时就认为出现了环路,从而终止 LSP 的建立过程。

路径向量方式是在传递标签绑定的消息中记录路径信息,每经过一跳,相应的路由器就检查自己的 ID 是否在此记录中,如果没有就将自己的 ID 添加到该记录中,若有就说明出现了环路,终止 LSP 的建立过程。

4. RSVP MPLS 的扩展

资源预留协议 RSVP Resource Reservation Protocol )经扩展后可以支持 MPLS 标签的分发,同时,在传送标签绑定消息时还能携带资源预留的信息。通过这种方法建立的 LSP 可以具有资源预留功能,即沿途的 LSR 可以为该 LSP 分配一定的资源,使在此 LSP 上传送的业务得到保证。

RSVP 协议的扩展主要是在其 Path 消息和 Resv 消息中增加新的对象,这些新对象除了可以携带标签绑定信息外,还可以携带对沿途 LSR 寻径时的限制信息,从而支持 LSP 约束路由的功能。扩展的 RSVP 协议还支持快速重路由,即在一定条件下 LSP 需要改变时,可以在不中断用户业务的同时,将原来的业务流重新路由到新建立的 LSP 上。

1.2.4  LSP 隧道与分层

1. LSP 隧道

MPLS 支持 LSP 隧道技术。在一条 LSP 路径上, LSR Ru LSR Rd 互为上下游,但 LSR Ru LSR Rd 之间的路径可能并不是路由协议所提供路径的一部分, MPLS 允许在 LSR Ru LSR Rd 间建立一条新的 LSP 路径 <Ru R1...Rn Rd> LSR Ru LSR Rd 分别为这条 LSP 的起点和终点。 LSR Ru LSR Rd 间的 LSP 就是 LSP 隧道,它避免了传统的网络层封装隧道。当隧道经由的路由和逐跳从路由协议取得的路由一致时,这种隧道叫逐跳路由隧道;若不一致,则这种隧道叫显式路由隧道。

图1-4 LSP 隧道

1-4 中, LSP<R2 R21 R22 R3> 就是 R2 R3 间的一条隧道。

2. 多层标签栈

当分组在 LSP 隧道中传送时,分组的标签就会有多层。在每一隧道的入口和出口处要进行标签栈的入栈和出栈操作,每发生一次入栈操作标签就会增加一层。 MPLS 对标签栈的深度没有限制。

标签栈按照“后进先出”方式组织标签, MPLS 从栈顶开始处理标签。

若一个分组的标签栈深度为 m ,则位于栈底的标签为 1 级标签,位于栈顶的标签为 m 级标签。未打标签的分组可看作标签栈为空(即标签栈深度为零)的分组。

1.3  MPLS 应用

1.3.1  基于 MPLS VPN

传统的 VPN 一般是通过 GRE L2TP PPTP 等隧道协议来实现私有网络间数据流在公网上的传送, LSP 本身就是公网上的隧道,用 MPLS 来实现 VPN 有天然的优势。基于 MPLS VPN 就是通过 LSP 将私有网络在地域上的不同分支联结起来,形成一个统一的网络。基于 MPLS VPN 还支持不同 VPN 间的互通。

图1-5 基于 MPLS VPN

1-5 给出了基于 MPLS VPN 的基本结构。 CE 是用户边缘设备,可以是路由器,也可以是交换机,甚至是一台主机; PE 是服务商边缘路由器,位于骨干网络; PE 负责对 VPN 用户进行管理、建立各 PE LSP 连接、同一 VPN 用户各分支间路由分派。

PE 间的路由分派通常是用 LDP 或扩展的 BGP 协议实现的。基于 MPLS VPN 支持不同分支间 IP 地址复用和不同 VPN 间互通,和传统的路由相比, VPN 路由中需要增加分支和 VPN 的标识信息,这就需要对 BGP 协议进行扩展才能携带 VPN 的路由信息。

1.3.2  基于 MPLS 的流量工程

1. 流量工程的作用

网络拥塞是影响骨干网络性能的主要问题。拥塞的原因一般是网络资源不足,或者网络资源的负载不均衡,导致局部拥塞。流量工程用来解决由负载不均衡导致的拥塞。流量工程通过动态监控网络的流量和网络单元的负载,实时调整流量管理参数、路由参数和资源约束参数等,使网络运行状态迁移到理想状态,优化网络资源的使用,从而避免由于负载不均衡引起的拥塞。

2. MPLS 来实现流量工程的优点

现有的 IGP 协议都是拓扑驱动的,只考虑网络静态的连接情况,不能反映带宽和流量特性等动态状况,这正是导致网络负载不均衡的主要原因。而 MPLS 具有的一系列不同于 IGP 的特性,正是实现流量工程所需要的: MPLS 支持异于路由协议路径的显式 LSP 路由; LSP 较传统单个 IP 分组转发更便于管理和维护;基于约束路由的 LDP 可以实现流量工程的各种策略;基于 MPLS 的流量工程的系统开销较其它实现方式更低等等。

3. 基于 MPLS 的流量工程的实现

MPLS 来实现流量工程时,先要根据物理网络的拓扑生成 MPLS 导出图,即由 LSR 、连接 LSR LSP LSP 属性这三种元素构成的派生拓扑图。同时,将通过 MPLS 域的数据划分成若干主干流( Traffic Trunk )。主干流一般定义为在 MPLS 域中经过相同 Ingress Egress 的所有单向流量。主干流有许多属性,包括流量参数、路径选择和维护方式、优先级、可抢占性、资源亲和度等。对资源也定义了一些属性,如资源级别、最大分配复用度等。然后,以主干流的属性、资源的属性、网络的状态信息为生成约束路由的策略,来找出主干流的路径。主干流的路径可以根据网络状态的变化动态调整。

1.3.3  基于 MPLS QoS

为了能够在 IP 网络上支持语音,视频等实时业务,需要有 QoS 的支持,以便保证重要的、敏感或者实时性较强的数据流在网络中得到优先处理。华为设备支持基于 MPLS 的流量工程和 Diff-serv 特性,在保证网络高效利用率的同时,又能根据不同数据流的优先级实现差别服务,从而为语音,视频数据流提供有带宽保证的低延时低丢包率的服务。由于目前全网实施流量工程的难度比较大,因此在实际的组网方案中往往倾向于使用差分服务模型来实施 QoS

Diff-Serv 的基本机制是在网络边缘,根据业务的服务质量要求将该业务映射到一定的业务类别中,利用 IP 分组中的 DS 字段(由 TOS 域而来)唯一的标记该类业务,然后,骨干网络中的各节点根据该字段对各种业务采取预先设定的服务策略,保证相应的服务质量。 Diff-Serv 的这种对服务质量的分类和标签机制和 MPLS 的标签分配十分相似,事实上,基于 MPLS Diff-Serv 就是通过将 DS 的分配融入 MPLS 的标签分配过程来实现的。

Diff-Serv 对不同的服务类别规定了一致的处理方法,包括队列选择、排队、丢弃等操作,这些处理组合就叫 PHB Per Hop Behavior )。同时,属于同一 PHB 的分组又可以有不同的丢弃优先级。 PHB 和丢弃优先级信息通过为分组分配不同的 DS 编码来表示,这些 DS 编码又称 DSCP Diff-Serv Code Point )。关于 Diff-Serv 的详细介绍,请参见本手册的 QoS 配置 部分。

为了支持基于 Diffserv 模型的端到端的 QoS 服务,华为提供如下几种技术手段:

l              IP Precedence for Traffic Classification

IP precedence Classification 在网络边缘进行,利用 IPv4 包头的 Type-of-Service 3 个比特对每一个 IP 包依据其地址进行优先级分类。在核心利用不同的队列技术对不同等级的流量进行不同的处理,使得不同的服务级别得到体现。为实现语音、图象、数据数据流的差分服务,对不同的业务流在进行标签交换时,即 PE 在给报文加 Label 时,会把 IP 报文携带的 TOS 值影射到标签的 CoS 域,这样原来由 IP 携带的类型信息,现在由标签携带。在 PE 路由器之间,根据标签的 CoS 域,进行有差别的调度( PQ CQ WFQ CBQ 等)。

l              TP 实现承诺带宽及限制带宽的作用

PE 上与 CE 相连的链路上配置 TP Traffic Policing )可以实现该功能。同时 TP 还提供了承诺的带宽和限制带宽的功能。

l              WRED 进行拥塞避免

WRED 在网络的瓶颈处监视并缓解网络的拥塞。一般在接入层出现拥塞的概率比较大。 WRED 监视网络的负载,当拥塞开始刚出现时,它就开始有选择的丢弃一些包以降低流量。 WRED 丢包的策略为:低优先级的流先丢,以保证高优先级的流可以顺畅通过。在可能发生拥塞的端口运行 WRED 是避免拥塞的较好选择。

在具体实现中,为了达到最好的效率,需要对任务进行分工。因为 QoS 是一个需要消耗很多处理器资源的应用,所以这一任务分配在边缘和核心路由器上运行,以减少对单独路由器的压力。

综上所述,实现基于 CoS 的差分服务结构需要 4 个步骤:

l              MPLS 边缘路由器上实现入口的带宽限制完成入口流量的分类。

l              边缘设备也需要承担带宽管理的工作,采用 TP

l              MPLS 核心路由器完成 CoS 的管理工作,进行有差别的服务质量保证。

l              出口设备,像入口设备一样,完成带宽限制工作。入口、出口设备对带宽的限制保护了网络免于拥塞,使得网络具有很高的可扩展性。

&   说明:

本模块主要介绍 MPLS MPLS TE 的配置方法,关于 BGP/MPLS VPN MPLS L2 VPN 的具体配置以及组网应用请参考本手册 VPN 模块;关于 MPLS QoS 的具体配置请参考本手册 QoS 模块。

posted on 2006-08-11 11:39 学习资料库 阅读(438) 评论(0)  编辑 收藏 引用 网摘 所属分类: MPLS/VPN


只有注册用户登录后才能发表评论。
网站导航: