多协议标签交换(Multi-Protocol Label Switching,MPLS)是新一代的IP高速骨干网络交换标准,由因特网工程任务组(Internet Engineering Task Force,IETF)提出。
MPLS是利用标记(label)进行数据转发的。当分组进入网络时,要为其分配固定长度的短的标记,并将标记与分组封装在一起,在整个转发过程中,交换节点仅根据标记进行转发。
MPLS 独立于第二和第三层协议,诸如ATM 和IP。它提供了一种方式,将IP地址映射为简单的具有固定长度的标签,用于不同的包转发和包交换技术。它是现有路由和交换协议的接口,如IP、ATM、帧中继、资源预留协议(RSVP)、开放最短路径优先(OSPF)等等。
在MPLS 中,数据传输发生在标签交换路径(LSP)上。LSP 是每一个沿着从源端到终端的路径上的结点的标签序列。
MPLS 主要设计来解决网路问题,如网路速度、可扩展性、服务质量(QoS)管理以及流量工程,同时也为下一代IP 中枢网络解决宽带管理及服务请求等问题。
在这部分,我们主要关注通用MPLS 框架。有关LDP、CR-LDP 和RSVP-TE 的具体内容可以参考个别文件。
多协议标签交换MPLS最初是为了提高转发速度而提出的。与传统IP路由方式相比,它在数据转发时,只在网络边缘分析IP报文头,而不用在每一跳都分析IP报文头,从而节约了处理时间。
MPLS起源于IPv4(Internet Protocol version 4),其核心技术可扩展到多种网络协议,包括IPX(Internet Packet Exchange)、Appletalk、DECnet、CLNP(Connectionless Network Protocol)等。“MPLS”中的“Multiprotocol”指的就是支持多种网络协议。
协议结构
MPLS 标签结构:
20 23 24 32 bit
Label Exp STTL
Label ―Label 值传送标签实际值。当接收到一个标签数据包时,可以查出栈顶部的标签值,并且系统知道:A、数据包将被转发的下一跳;B、在转发之前标签栈上可能执行的操作,如返回到标签进栈顶入口同时将一个标签压出栈;或返回到标签进栈顶入口然后将一个或多个标签推进栈。
Exp ―优先级。Experimental Bits用以表示从0到7的报文优先级字段。
S ―栈底。标签栈中最后进入的标签位置,s值为0。S值为1表明此为最底层标签。 正因为这个字段表明了MPLS的标签理论上可以无限嵌套,从而提供无限的业务支持能力。这是MPLS技术最大魅力所在。
TTL―生存期字段(Time to Live),用来对生存期值进行编码。与IP报文中的TTL值功能类似,同样是提供一种防环机制。
协议组
MPLS:相关信令协议,如OSPF、BGP、ATM PNNI等。
LDP:标签分发协议(Label Distribution Protocol)
CR-LDP:基于路由受限标签分发协议(Constraint-Based LDP)
RSVP-TE:基于流量工程扩展的资源预留协议(resource Reservation Protocol –Traffic Extension)
分类
基于MPLS的×××
传统的×××一般是通过GRE(Generic Routing Encapsulation)、L2TP(Layer 2 Tunneling Protocol)、PPTP(Point to Point Tunneling Protocol)、IPSec协议等隧道协议来实现私有网络间数据流在公网上的传送。而LSP本身就是公网上的隧道,所以用MPLS来实现×××有天然的优势。
基于MPLS的×××就是通过LSP将私有网络的不同分支联结起来,形成一个统一的网络。基于MPLS的×××还支持对不同×××间的互通控制。
CE(Customer Edge)是用户边缘设备,可以是路由器,也可以是交换机或主机。
PE(Provider Edge)是服务商边缘路由器,位于骨干网络。
在骨干网络中,还存在P(Provider),是服务提供商网络中的骨干路由器,不与CE直接相连。P设备只需要具备基本MPLS转发能力,可以将其配置为M-BGP的路由反射器,不维护×××信息。
基于MPLS的×××具有以下特点:
PE负责对×××用户进行管理、建立各PE间LSP连接、同一×××用户各分支间路由分派。
支持不同分支间IP地址复用和不同×××间互通。
减化了寻路步骤,提高了设备性能,加快了报文转发。
基于MPLS的QoS
由于全网实施流量工程的难度比较大,因此,在实际的组网方案中往往通过差分服务模型来实施QoS。
Diff-Serv的基本机制是在网络边缘,根据业务的服务质量要求将该业务映射到一定的业务类别中,利用IP分组中的DS(Differentiated Service)字段(由ToS域而来)唯一的标记该类业务;然后,骨干网络中的各节点根据该字段对各种业务采取预先设定的服务策略,保证相应的服务质量。
Diff-Serv对服务质量的分类和标签机制与MPLS的标签分配十分相似,事实上,基于MPLS的Diff-Serv就是通过将DS的分配与MPLS的标签分配过程结合来实现的。
工作过程
1. LDP和传统路由协议(如OSPF、ISIS等)一起,在各个LSR中为有业务需求的FEC建立路由表和标签映射表
2. 入节点Ingress接收分组,完成第三层功能,判定分组所属的FEC,并给分组加上标签,形成MPLS标签分组,转发到中间节点Transit
3. Transit根据分组上的标签以及标签转发表进行转发,不对标签分组进行任何第三层处理
4. 在出节点Egress去掉分组中的标签,继续进行后面的转发。
由此可以看出,MPLS并不是一种业务或者应用,它实际上是一种隧道技术,也是一种将标签交换转发和网络层路由技术集于一身的路由与交换技术平台。这个平台不仅支持多种高层协议与业务,而且,在一定程度上可以保证信息传输的安全性。
体系结构
MPLS网络是指由运行MPLS协议的交换节点构成的区域。这些交换节点就是MPLS标记交换路由器,按照它们在MPLS网络中所处位置的不同,可划分为MPLS标记边缘路由器(LER: label edge router)和MPLS标记核心路由器(LSR:label switching router)。顾名思义,LER位于MPLS网络边缘与其他网络或者用户相连;LSR位于MPLS网络内部。两类路由器的功能因其在网络中位置的不同而略有差异。
在MPLS的体系结构中:
控制平面(Control Plane)之间基于无连接服务,利用现有IP网络实现。
转发平面(Forwarding Plane)也称为数据平面(Data Plane),是面向连接的,可以使用ATM、帧中继等二层网络。
MPLS使用短而定长的标签(label)封装分组,在数据平面实现快速转发。
在控制平面,MPLS拥有IP网络强大灵活的路由功能,可以满足各种新应用对网络的要求。
对于核心LSR,在转发平面只需要进行标签分组的转发。
对于LER,在转发平面不仅需要进行标签分组的转发,也需要进行IP分组的转发,前者使用标签转发表LFIB,后者使用传统转发表FIB(Forwarding Information Base)。
路由协议
LDP利用路由转发表建立LSP
LDP通过逐跳方式建立LSP时,利用沿途各LSR路由转发表中的信息来确定下一跳,而路由转发表中的信息一般是通过IGP、BGP等路由协议收集的。LDP并不直接和各种路由协议关联,只是间接使用路由信息。
通过已有协议的扩展支持MPLS标签分发
虽然LDP是专门用来实现标签分发的协议,但LDP并不是唯一的标签分发协议。通过对BGP、RSVP(Resource Reservation Protocol)等已有协议进行扩展,也可以支持MPLS标签的分发。
通过某些路由协议的扩展支持MPLS应用
在MPLS的应用中,也可能需要对某些路由协议进行扩展。例如,基于MPLS的×××应用需要对BGP进行扩展,使BGP能够传播×××的路由信息;基于MPLS的流量工程TE(Traffic Engineering)需要对OSPF或IS-IS协议进行扩展,以携带链路状态信息。
LSPM: LSP Management
转发技术
MPLS作为一种分类转发技术,将具有相同转发处理方式的分组归为一类,称为转发等价类FEC(Forwarding Equivalence Class)。相同转发等价类的分组在MPLS网络中将获得完全相同的处理。
转发等价类的划分方式非常灵活,可以是源地址、目的地址、源端口、目的端口、协议类型、×××等的任意组合。例如,在传统的采用最长匹配算法的IP转发中,到同一个目的地址的所有报文就是一个转发等价类。
标签
标签是一个长度固定、只具有本地意义的短标识符,用于唯一标识一个分组所属的转发等价类FEC。在某些情况下,例如要进行负载分担,对应一个FEC可能会有多个标签,但是一个标签只能代表一个FEC。
标签由报文的头部所携带,不包含拓扑信息,只具有局部意义。标签的长度为4个字节,封装结构如图1-1所示。
标签共有4个域:
1. Label:20比特,标签值字段,用于转发的指针。
2. Exp:3比特,保留,用于试验,现在通常用做CoS(Class of Service)。
3. S:1比特,栈底标识。MPLS支持标签的分层结构,即多重标签,S值为1时表明为最底层标签。
4.TTL:8比特,和IP分组中的TTL(Time To Live)意义相同。
标签与ATM的VPI/VCI以及Frame Relay的DLCI类似,是一种连接标识符。
如果链路层协议具有标签域,如ATM的VPI/VCI或Frame Relay的DLCI,则标签封装在这些域中。
如果链路层协议没有标签域,则标签封装在链路层和IP层之间的一个垫层中。
Frame mode:帧模式。
Cell mode:信元模式。
标签交换路由器
标签交换路由器LSR(Label Switching Router)是MPLS网络中的基本元素,所有LSR都支持MPLS协议。
LSR由两部分组成:控制单元和转发单元。
控制单元负责标签的分配、路由的选择、标签转发表的建立、标签交换路径的建立、拆除等工作
转发单元则依据标签转发表对收到的分组进行转发。
标签发布
标签发布协议是MPLS的控制协议,它相当于传统网络中的信令协议,负责FEC的分类、标签的分配以及LSP的建立和维护等一系列操作。
MPLS可以使用多种标签发布协议。
包括专为标签发布而制定的协议,例如:LDP(Label Distribution Protocol)、CR-LDP(Constraint-Routing Label Distribution Protocol)。
也包括现有协议扩展后支持标签发布的,例如:BGP(Border Gateway Protocol)、RSVP(Resource Reservation Protocol)。
标签交换路径
一个转发等价类在MPLS网络中经过的路径称为标签交换路径LSP(Label Switched Path)。
LSP在功能上与ATM和Frame Relay的虚电路相同,是从入口到出口的一个单向路径。LSP中的每个节点由LSR组成,根据数据传送的方向,相邻的LSR分别称为上游LSR和下游LSR。
标签交换路径LSP分为静态LSP和动态LSP两种。静态LSP由管理员手工配置,动态LSP则利用路由协议和标签发布协议动态产生。
位于MPLS域边缘、连接其它用户网络的LSR称为边缘LSR,即LER(Label Edge Router),区域内部的LSR称为核心LSR。核心LSR可以是支持MPLS的路由器,也可以是由ATM交换机等升级而成的ATM-LSR。域内部的LSR之间使用MPLS通信,MPLS域的边缘由LER与传统IP技术进行适配。
分组被打上标签后,沿着由一系列LSR构成的标签交换路径LSP传送,其中,入节点LER被称为Ingress,出节点LER被称为Egress,中间的节点则称为Transit。
技术特点
1 充分采用原来的IP路由,在此基础上加以改进;保证了MPLS网络路由具有灵活性的特点
2 采用 ATM的高效传输交换方式,抛弃了复杂的ATM信令,无缝地将IP技术的优点融合到ATM的高效硬件转发中
3 MPLS网络的数据传输和路由计算分开,是一种面向连接的传输技术,能够提供有效的QOS保证
4 MPLS不但支持多种网络层技术,而且是一种与链路层无关的技术,它同时支持X.25 帧中继 ATM PPP SDH DWDM 等 ,保证了多种网络的互连互通,使得各种不同的网络传输技术统一在同一各MPLS平台上
5 MPLS支持大规模层次化的网络拓扑结构,具有良好的网络扩展性
6 MPLS的标签合并机制支持不同数据流的合并传输
7 MPLS支持流量工程 COS QOS 和大规模的虚拟专用网
工作原理
MPLS是基于标记的IP路由选择方法。这些标记可以被用来代表逐跳式或者显式路由,并指明服务质量(QoS)、虚拟专网以及影响一种特定类型的流量(或一个特殊用户的流量)在网络上的传输方式等各类信息。MPLS采用简化了的技术,来完成第三层和第二层的转换。它可以提供每个IP数据包一个标记,将之与IP数据包封装于新的MPLS数据包,由此决定IP数据包的传输路径以及优先顺序,而与MPLS兼容的路由器会在将IP数据包按相应路径转发之前仅读取该MPLS数据包的包头标记,无须再去读取每个IP数据包中的IP地址位等信息,因此数据包的交换转发速度大大加快。
目前的路由协议都是在一个指定源和目的地之间选择最短路径,而不论该路径的带宽、载荷等链路状态,对于缺乏安全保障的链路也没有一种显式方法来绕过它。利用显式路由选择,就可以灵活选择一条低延迟、安全的路径来传输数据。
MPLS协议实现了第三层的路由到第二层的交换的转换。MPLS可以使用各种第二层协议。MPLS工作组到目前为止已经把在帧中继、ATM和PPP链路以及IEEE802.3局域网上使用的标记实现了标准化。MPLS在帧中继和ATM上运行的一个好处是它为这些面向连接的技术。
带来了IP的任意连通性。目前MPLS的主要发展方向是在ATM方面。这主要是因为ATM具有很强的流量管理功能,能提供QoS方面的服务,ATM和MPLS技术的结合能充分发挥在流量管理和QoS方面的作用。标记是用于转发数据包的报头,报头的格式则取决于网络特性。在路由器网络中,标记是单独的32位报头;在ATM中,标记置于虚电路标识符/虚通道标识符(VCI/VPI)信元报头中。对于MPLS可扩展性非常关键的一点是标记只在通信的两个设备之间有意义。在网络核心,路由器/交换机只解读标记并不去解析IP数据包。
IP包进入网络核心时,边界路由器给它分配一个标记。自此,MPLS设备就会自始至终查看这些标记信息,将这些有标记的包交换至其目的地。由于路由处理减少,网络的等待时间也就随之缩短,而可伸缩性却有所增加。MPLS数据包的服务质量类型可以由MPLS边界路由器根据IP包的各种参数来确定,如IP的源地址、目的地址、端口号、TOS值等参数。
对于到达同一目的地的IP包,可根据其TOS值的要求来建立不同的转发路径,以达到其对传输质量的要求。同时,通过对特殊路由的管理,还能有效地解决网络中的负载均衡和拥塞问题。当网络中出现拥塞时,MPLS可实时建立新的转发路由来分散流量以缓解网络拥塞。
MPLS交换采用面向连接的工作方式,面向连接的工作方式 [2] 就是信息传送要经过以下三个阶段:建立连接、数据传输和拆除连接。对于MPLS来说,建立连接就是形成标记交换路径LSP的过程;数据传输就是数据分组沿LSP进行转发的过程;而拆除连接则是通信结束或发生故障异常时释放LSP的过程。
建立连接
(1)驱动连接建立的方式
MPLS技术支持三种驱动虚连接建立的方式:拓扑驱动、请求驱动和数据驱动。
(2)标记分配
(3)连接建立过程
(4)MPLS路由方式
数据传输
MPLS网络的数据传输采用基于标记的转发机制。
(1)入口LER的处理过程
当数据流到达入口LER时,入口LER需完成三项工作:将数据分组映射到LSP上;将数据分组封装成标记分组;将标记分组从相应端口转发出去。
(2)LSR的处理过程
LSR从“SHIM”中获得标记值,用此标记值索引LIB表,找到对应表项的输出端口和输出标记,用输出标记替换输入标记,从输出端口转发出去。
(3)出口LER的处理过程
出口路由器为数据分组在MPLS网络中经历的最后一个节点,所以出口路由器要进行相应的弹出标记等操作。
拆除连接
因为MPLS网络中的虚连接,也就是LSP路径是由标记所标识的裸机信道串联而成的,所以连接的拆除也就是标记的取消。标记的取消方式主要有两种,一种是采用计时器的方式;一种是不设置定时器。
应用
随着ASIC技术的发展,路由查找速度已经不是阻碍网络发展的瓶颈。这使得MPLS在提高转发速度方面不再具备明显的优势。
但由于MPLS结合了IP网络强大的三层路由功能和传统二层网络高效的转发机制,在转发平面采用面向连接方式,与现有二层网络转发方式非常相似,这些特点使得MPLS能够很容易地实现IP与ATM、帧中继等二层网络的无缝融合,并为流量工程TE(Traffic Engineering)、虚拟专用网×××(Virtual Private Network)、服务质量QoS(Quality of Service)等应用提供更好的解决方案。