第1章 MPLS简介
第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章 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个域:
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标签分发示意图。
在一条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模块。