MPLS技术1.MPLS的技术多协议标志交换(MPLS)技术的提出Internet业务量的飞速增长以及宽带技术的不断出现,对Internet服务提供商(ISP)的网络带宽提出了严峻的挑战。这种挑战不仅是对高带宽的要求,也是对目前Internet所基于的传统路由交换模式的要求。要建立这样一种服务质量较好且具备扩展性支持的新一代路由系统,需要由各单个路由器来维持大容量的路由信息,并能建立一种路由信息的分层结构;在增强路由器对IP分组包转发性能的同时,还需要增加对多目广播的路由支持,提供分层式的路由信息结构;此外,未来的路由体系还必需具有灵活的适应能力以满足将来可能出现的各种新型需求。从Internet的维护及应用角度考虑,如何对Internet实行合理而简便的流量控制(TrafficEngineering),实现基于IP业务的虚拟专网(VPN),保证IP级的服务质量(IP-levelQoS),也对目前基于传统网络拓扑及IP路由系统的ISP骨干网络提出了挑战。2.MPLS的技术原理2.1MPLS协议和功能(1)路由和交换概念在对MPLS技术进行详细描述前,首先回顾几个与交换技术相关的概念。路由协议(如RIP,OSPF)是一种机制,使网络中的每台设备都知道在将一个分组送向其目的地时,传送这个分组的下一跳级(Next-Hop)是哪里。路由器使用路由协议构建路由表,当它们接收到一个分组而必须进行转发判决时,路由器用分组中的目的地址IP地址作为索引(Index)查寻路由表,利用特定算法获得下一跳机器的地址。路由表的构造和它们在转发时的查寻基本上是两个独立的操作。交换概念通常用来描述从一个设备内的输入端口到输出端口的数据传递,这种传送一般是基于第二层的(如ATMVPI/VCI)信息。控制部件为一个节点建造并维护一个路由转发表(ForwardingTable)。它与其它节点的控制部件共同协作,持续并正确地交换分布路由信息,同时在本地建立转发表。标准的路由协议(如OSPF、BGP和RIP)用于在控制部件之间交换路由信息。转发部件执行分组转发功能。它使用转发表、分组所协携带的地址等信息及本地的一系列操作来进行转发判决。在传统路由器中,最长匹配算法将分组中的目的地地址与转发表中的条项进行对比,直到获得一个最优的匹配。更为重要的是,从源到目的地的沿路节点都要重复这一操作。在一个标志交换路由器中,(最佳匹配)标志交换算法使用分组的标志和基于标志的转发表来为分组获取一个新的标志及输出端口。路由转发表包含若干条项,提供信息给转发部件,执行其交换功能。转发表必须将每个分组与一个条项(传统条项为目的地址)相关联起来,为分组的下一步路由提供指引。转发同等类(FEC)定义了这样一组分组,从转发的行为来看,它们都具有相同的转发属性。一种FEC是一组单目广播分组,其目的地地址均与一个IP地址前缀相匹配。另一种FEC是分组的源及目的地地址都相同的一组分组。FEC可在不同的级别上进行定义。标志(label)相对较短,长度固定且无结构标识,可在转发进程中使用。标志通过一种绑定操作与一个FEC关联起来。标志正常情况下,对于一个单一数据链路来说仅具有本地意义,不具有全局意义。在ATM环境中相当于它们的VPI/VCI。由于ATM使用固定短区域进行交换,因此可以相信标志交换能成为一种IPoverATM应用的有效方案。在某种事件驱动下,标志与FEC进行绑定,从而具有一定意义,这种事件可分为以下两种类型:一种是数据驱动绑定,即在数据流开始产生时进行绑定。标志绑定仅在需要时建立,在转发表中只存在很少的几个条项。标志被分配给不同的IP数据流。在一个ATM网络环境中,它需要使用大量的虚电路资源,不易于扩展。另一种是拓扑驱动绑定,当在控制平面激活时来建立与数据流的产生无关。标志绑定可能与路由的更新或RSVP消息的接收有关。拓扑驱动绑定较数据驱动绑定更易于扩展,因此用于MPLS中。(2)标志交换转发部件标志与分组的绑定有若干种方式。对一些网络可以将标志嵌入到链路层的头端(ATMVCI/VPI,和帧中继的DLCI)。有时也可以将它嵌入至位于数据链路头端和数据链路协议数据单元(PDU)之间的小标志头端(如位于第二层头端与第三层数据负载之间),称为“Shim”。这种标志信息能够在链路层进行承载,“Shim”结构可以用于Ethernet,IEEE802.3,或点对点(PPP)链路上,其中一个是为单目广播,另一个是为多目广播(Multicast)。每个标志为4字节。在MPLS骨干网络边缘,边界LSR对进来的无标志分组(正常情况下)按其IP头端进行归类划分(Classification)及转发判决,这样IP分组在边界LSR被打上相应的标志,并被传送至到达目的地地址的下一跳。在后续的交换过程中,由LSR所产生的固定长度的标志替代IP分组头端,大大简化了以后的节点处理操作。后续节点使用这个标志进行转发判决。一般情况下,标志的值在每个LSR中交换后改变,这就是标志转发。如果分组从MPLS的骨干网络中出来,出口边界LSR发现它们的转发方向是一个无标志的接口,就简单地移除分组中的标志。这种基于标志转发的最重要的优势在于对多种交换类型只需要唯一一种转发算法,可以用硬件来实现非常高的转发速度。(3)标志交换控制部件标志由标志交换路径(LSP)的上游LSR(UpstreamLSR)节点来附加至分组中,下游LSR(DownstreamLSR)收到标志分组后判决处理,这由标志交换的控制部件来完成。它使用标志转发表中的条项内容作为引导。标志交换控制部件除了基本的表的建立和维护外,还负责以一种连续的方式在LSR之间进行路由的分布及进行将这些信息生成为转发表的操作。标志交换控制部件包括所有的传统路由协议(如,OSPF,BGP,PIM等等)。这些路由协议为LSR提供了FEC与下一跳地址的映射。标志信息的分布(Distribution)标志交换转发表中的条项内容最少应能提供输出的端口信息和下一个新的标志,当然也可以包含更多的信息。例如,它可以为被交换的分组产生一种输出队列原则。输入分组必须在转发表中有唯一的条项与之对应。每一个分配的标志必须与转发表中的一个条项相关联起来。这种绑定可以在本地LSR执行或在远端LSR执行。目前MPLS版本使用下游绑定,这种情况下,本地关联的标志用作进入分组标志,而远端关联标志用作输出标志。另一种方式为上游绑定,与下游绑定相反,也是一种可行的方法。在MPLS技术中,转发表又称为标志转发信息库(LFIB),LFIB的每一个条目中包括输入标志,输出标志,输入接口和输出端口MAC地址,由输入标志对条项进行检索查找。另外LFIB既可以在一个标志交换路由器上也可以存在于一个接口上。(4)标志交换路由器(LSR)MPLS的设备按其在MPLS路由网络中所处的位置可分为边界标志交换路由器和中间标志交换路由器。边界LSR除对分组的标志进行符加或移除外,还负责对流量进行分类。标志的分配除了基于目的地地址外还有其它很多因素。边界LSR判定流量是否为一个长持续流,采取管理政策和访问控制,并在可能的情况下将普通业务流汇聚成较大的数据流。这些都是在IP与MPLS的边界处所要具有的功能,因此边界LSR的能力将会是整个标志交换环境能否成功的关键环节。对于服务提供者而言,这也是一个管理和控制点。(5)MPLS和ATM协议关系MPLS为公共的转发算法,基于标志的交换技术,在与ATM技术的结合上,MPLS使用ATM的用户平面(userplane),以ATM的VPI/VCI作为其标志;MPLS的控制功能部件,以网络层的动态路由协议(如:IS-IS,OSPF,BGP,PIM)及标志分配协议(LDP)来替代ATM传统的控制平面,完成对整个MPLS网络的控制功能。3MPLS的特点传统的IP数据转发是基于逐跳式的,每个转发数据的路由器都要根据IP包头的目的地址查找路由表来获得下一跳的出口,这是个繁琐又效率低下的工作,主要的原因是两个:1、有些路由的查询必须对路由表进行多次查找,这就是所谓的递归搜索;2、由于路由匹配遵循最长匹配原则,所以迫使几乎所有的路由器的交换引擎必须用软件来实现,用软件实现的交换引擎和ATM交换机上用硬件来实现的交换引擎在效率上无法相抗衡。MPLS技术的提出主要是为了更好地将IP与ATM的高速交换技术结合起来,发挥两者的优势,充分利用目前ATM网络的各种资源,实现IP分组的快速转发交换;对传统的IP动态路由进行一些扩展,基于控制的动态路由(Constraint-BasedRouting)实现IP业务流量控制、虚拟专网应用(BGP/MPLSVPN)及IP级的服务质量(IPCos)。多协议标志交换(MPLS)技术与其它技术相比具有三个特点:(1)MPLS交换与传统IP路由不同,它是基于一种显式的路由交换(explicitrouting),源地址路由方式。(2)MPLS中所使用的标志(label)没有固定的格式,随着下层媒体的变化而变化,对于ATM媒体,标志是ATM的VCI/VPI,对于帧中继为DLCI,对于X.25为LCN。(3)MPLS的路由控制管理是一种面向网络拓扑的实现,网络拓扑驱动(topo-driven),只有当整个网络拓扑发生变化时,MPLS的路由转发表才会发生变化,而不且随网络中某个应用服务、某台工作站的改变而变化。在基于ATM的MPLS交换技术中,“标签包装”的原型与ATM交换机转发信元非常相似;从另一角度看,在一个标志交换的环境中,ATM交换机将更像是一台快速的路由器。MPLS的典型方法是,为第3层路由表中的路由前缀分配一个特定含义的标签。这种拓扑驱动(topology-driven)的标志分配技术有别于其它基于流驱动(flow-driven)的分配技术,在MPLS中所分配的标签仅随路由前缀的变化而变化,其变化频率相对会低得多。显然,因为这种技术实现独立于数据流,而采用目的地地址,因此具有很强的可扩展性。在某种程度上,标志交换有些类似于帧中继采用数据链路连接标志符(DLCI)来执行高速的交换功能。当被标志的分组最终到达标志网络的出口时,就被移去标志,分组由传统的第3层路由进行转发。4MPLS协议和功能标志交换转发部件标志与分组的绑定有若干种方式。对一些网络可以将标志嵌入到链路层的头端(ATMVCI/VPI,和帧中继的DLCI)。有时也可以将它嵌入至位于数据链路头端和数据链路协议数据单元(PDU)之间的小标志头端(如,位于第二层头端与第三层数据负载之间),称为“Shim”。这种标志信息能够在链路层进行承载,“shim”结构可以用于Ethernet,IEEE802.3,或点对点(PPP)链路上,其中一个是为单目广播(Unicast),另一个是为多目广播(Multicast)。在MPLS骨干网络边缘,边界LSR对进来的无标志分组(正常情况下)按其IP头端进行归类划分(Classification)及转发判决,这样IP分组在边界LSR被打上相应的标志,并被传送至到达目的地地址的下一跳。在后续的交换过程中,由LSR所产生的固定长度的标志替代IP分组头端,大大简化了以后的节点处理操作。后续节点使用这个标志进行转发判决。一般情况下,标志的值在每个LSR中交换后改变,这就是标志转发。在中间LSR中MPLS的转发步骤如下:第一步:从分组中获取一个标志;第二步:从LFIB中查找一条其进入标志等于分组标志的条目;第三步:将条目中的出口标志替代分组中的标志;第四步:将分组从条目中所指定的输出端口送出。当中间LSR收到标志分组,该分组标志首先被提取出来,并做为索引在LSR中的转发表中进行查寻检索,一旦发现了与输入标志匹配的条项,就提取出条项中的输出标志重新加到分组,并将新组合的分组送到条项中指向下一跳的输出接口(对于多目广播要涉及到多个输出端口)。标志转发表可以在节点级(即每个节点一个表)或在接口级(每个接口一个表)来实现。如果分组从MPLS的骨干网络中出来,出口边界LSR发现它们的转发方向是一个无标志的接口,就简单地移除分组中的标