多协议标签交换( MPLS)是一种用于快速数据包交换和路由的体系,它为网络数据流量提供了目标、路由、转发和交换等能力。更特殊的是,它具有管理各种不同形式通信流的机制。MPLS 独立于第二和第三层协议,诸如 ATM 和 IP。它提供了一种方式,将 IP地址映射为简单的具有固定长度的标签,用于不同的包转发和包交换技术。它是现有路由和交换协议的接口,如 IP、ATM、帧中继、资源预留协议(RSVP)、开放最短路径优先(OSPF)等等。

  在 MPLS 中,数据传输发生在标签交换路径(LSP)上。LSP 是每一个沿着从源端到终端的路径上的结点的标签序列。现今使用着一些标签分发协议,如标签分发协议(LDP)、RSVP 或者建于路由协议之上的一些协议,如边界网关协议(BGP)及 OSPF。因为固定长度标签被插入每一个包或信元的开始处,并且可被硬件用来在两个链接间快速交换包,所以使数据的快速交换成为可能。

   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 S TTL

   Label ― Label 值传送标签实际值。当接收到一个标签数据包时,可以查出栈顶部的标签值,并且系统知道:A、数据包将被转发的下一跳;B、在转发之前标签栈上可能执行的操作,如返回到标签进栈顶入口同时将一个标签压出栈;或返回到标签进栈顶入口然后将一个或多个标签推进栈。

   Exp ― 试用。预留以备试用。

   S ― 栈底。标签栈中最后进入的标签位置,该值为0,提供所有其它标签入栈。正因为这个字段表明了

   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 Engineering)

编辑本段

基于MPLS的×××

  传统的 ×××一般是通过GRE(Generic Routing Encapsulation)、L2TP(Layer 2 Tunneling Protocol)、PPTP(Point to Point Tunneling Protocol)、IPSec协议等隧道协议来实现私有网络间数据流在公网上的传送。而LSP本身就是公网上的隧道,所以用MPLS来实现×××有天然的优势。

  基于 MPLS的×××就是通过LSP将私有网络的不同分支联结起来,形成一个统一的网络,如图1-6所示。基于MPLS的×××还支持对不同×××间的互通控制。

   l CE(Customer Edge)是用户边缘设备,可以是路由器,也可以是交换机或主机;

   l PE(Provider Edge)是服务商边缘路由器,位于骨干网络。

  在骨干网络中,还存在 P(Provider),是服务提供商网络中的骨干路由器,不与CE直接相连。P设备只需要具备基本MPLS转发能力,不维护×××信息。

基于MPLS的×××具有以下特点:

   l PE负责对×××用户进行管理、建立各PE间LSP连接、同一×××用户各分支间路由分派。

   l PE间的路由分派通常是用LDP或扩展的BGP协议实现。

   l 支持不同分支间IP地址复用和不同×××间互通。

编辑本段

基于MPLS的QoS

   NE80E支持基于MPLS的流量工程和差分服务Diff-Serv特性,在保证网络高利用率的同时,可以根据不同数据流的优先级实现差别服务,从而为语音,视频数据流提供有带宽保证的低延时、低丢包率的服务。

  由于全网实施流量工程的难度比较大,因此,在实际的组网方案中往往通过差分服务模型来实施 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的体系结构中:

   l 控制平面(Control Plane)之间基于无连接服务,利用现有IP网络实现;

   l 转发平面(Forwarding Plane)也称为数据平面(Data Plane),是面向连接的,可以使用ATM、帧中继等二层网络。

   MPLS使用短而定长的标签(label)封装分组,在数据平面实现快速转发。

  在控制平面, MPLS拥有IP网络强大灵活的路由功能,可以满足各种新应用对网络的要求。

  对于核心 LSR,在转发平面只需要进行标签分组的转发。

  对于 LER,在转发平面不仅需要进行标签分组的转发,也需要进行IP分组的转发,前者使用标签转发表LFIB,后者使用传统转发表FIB(Forwarding Information Base)。

编辑本段

MPLS 与路由协议

   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个域:

   l Label:20比特,标签值字段,用于转发的指针;

   l Exp:3比特,保留,用于试验,现在通常用做CoS(Class of Service);

   l S:1比特,栈底标识。MPLS支持标签的分层结构,即多重标签,S值为1时表明为最底层标签;

   l TTL:8比特,和IP分组中的TTL(Time To Live)意义相同。

  标签与 ATM的VPI/VCI以及Frame Relay的DLCI类似,是一种连接标识符。

   l 如果链路层协议具有标签域,如ATM的VPI/VCI或Frame Relay的DLCI,则标签封装在这些域中;

   l 如果链路层协议没有标签域,则标签封装在链路层和IP层之间的一个垫层中

   Frame mode:帧模式

   Cell mode:信元模式

编辑本段

标签交换路由器

  标签交换路由器 LSR(Label Switching Router)是MPLS网络中的基本元素,所有LSR都支持MPLS协议。

   LSR由两部分组成:控制单元和转发单元。

   l 控制单元负责标签的分配、路由的选择、标签转发表的建立、标签交换路径的建立、拆除等工作;

   l 转发单元则依据标签转发表对收到的分组进行转发。

编辑本段

标签发布协议

  标签发布协议是 MPLS的控制协议,它相当于传统网络中的信令协议,负责FEC的分类、标签的分配以及LSP的建立和维护等一系列操作。

   MPLS可以使用多种标签发布协议。

   l 包括专为标签发布而制定的协议,例如:LDP(Label Distribution Protocol)、CR-LDP(Constraint-Routing Label Distribution Protocol);

   l 也包括现有协议扩展后支持标签发布的,例如:BGP(Border Gateway Protocol)、RSVP(Resource Reservation Protocol)。

   NE80E支持上述标签发布协议,并支持手工配置标签。

编辑本段

标签交换路径

  一个转发等价类在 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。

MPLS 的应用

  随着 ASIC技术的发展,路由查找速度已经不是阻碍网络发展的瓶颈。这使得MPLS在提高转发速度方面不再具备明显的优势。

  但由于 MPLS结合了IP网络强大的三层路由功能和传统二层网络高效的转发机制,在转发平面采用面向连接方式,与现有二层网络转发方式非常相似,这些特点使得MPLS能够很容易地实现IP与ATM、帧中继等二层网络的无缝融合,并为流量工程TE(Traffic Engineering)、虚拟专用网×××(Virtual Private Network)、服务质量QoS(Quality of Service)等应用提供更好的解决方案。

编辑本段

MPLS 环路处理

   MPLS使用基于分布式计算的传统IP路由协议,在网络拓扑结构变化的瞬间,由这些协议计算得到的路由可能会瞬时产生环路。分组进入有环路的LSP传送时可能会导致两个基本问题(1)分组无法递交到正确的目的地址(2)拥塞。发生环路后。即使采用TTL减和环路分组丢弃的方式分组仍可能在环路中存活很长时间,并占用大量的网络资源。这对其他没有产生环路的数据分组的正确传输有很大影响。产生环路数据包造成的拥塞可能导致非环路数据包延迟加长或丢弃,严重时导致网络瘫痪。

  在 MPLS网络中有很多机制防止环路形成,在环路处理的方法上,一般要考虑使用该方法后环路可能发生的数量以及使用该方法对路由计算收敛性的影响。减少环路的发生意味着路由收敛时间更长。

   MPLS网络的第二层环路处置有很多种方法,主要可以划分为三类:

   l 环路幸存 这种方法通过诸如限制环路所能使用的网络资源的大小来最小化环路对网络服务性能的影响。

   l 环路检测 允许环路的发生,但在随后的检测中发现环路时就删除它们。

   l 环路防止 避免在第二层转发路径时发生环路

转载于:https://blog.51cto.com/kobexie/455808