多协议标记交换(MPLS)技术作为一种新兴的路由交换技术,越来越受到业界的关注。MPLS技术是结合二层交换和三层路由的L2/L3集成数据传输技术,它不仅支持网络层的多种协议,还可以兼容第二层上的多种链路层技术。采用MPLS技术的IP路由器以及ATM、FR交换机统称为标记交换路由器(LSR),使用LSR的网络相对简化了网络层复杂度,兼容现有的主流网络技术,降低了网络升级的成本。此外,业界还普遍看好用MPLS提供VPN服务,实现负载均衡的网络流量工程。
一、MPLS的基本原理
(1)MPLS基础
MPLS将面向非连接的IP业务移植到面向连接的标记交换业务之上,实现上将路由选择层面与数据转发层面分离。MPLS网络中,在入口LSR处分组按照不同转发要求划分成不同转发等价类(FEC),并将每个特定FEC映射到下一跳,即进入网络的每一特定分组都被指定到某个特定的FEC中。每一特定FEC都被编码为一个短而定长的值,称为标记,标记加在分组前成为标记分组,再转发到下一跳。在后续的每一跳上,不再需要分析分组头,而是用标记作为指针,指向下一跳的输出端口和一个新的标记,标记分组用新标记替代旧标记后经指定的输出端口转发。在出口LSR上,去除标记使用IP路由机制将分组向目的地转发。
选择下一步的工作可分为两部分:将分组分成FEC和将FEC映射到下一跳。在面向非连接的网络中,每个路由器通过分析分组头来独立地选择下一跳,而分组头中包含有比用来判定下一跳丰富得多的信息。传统IP转发中,每个路由器对相同FEC的每个分组都要进行分类和选择下一跳;而在MPLS中,分组只在进入网络时进行FEC分类,并分配一个相应的标记,网络中后续LSR则不再分析分组头,所有转发直接根据定长的标记转发。有些传统路由器在分析分组头的同时,不但决定分组的下一跳,而且要决定分组的业务类型(COS:Class of Service),以给予不同的服务规则。MPLS可以(但不是必须)利用标记来支持COS,此时标记用来代表FEC和COS的结合。MPLS的转发模式和传统网络层转发相比,除相对地简化转发、提高转发速度外,并且易于实现显式路由、流量工程、QoS和VPN等功能。
(2)标记栈操作与标记交换路径
标记是一个长度固定(20bit/s)、具有本地意义的标识符,和另外12bit/s控制位构成MPLS包头,也成为垫层(shim)。MPLS包头位于二层和三层之间,通常的服务数据单元是IP包,也可以通过改进直接承载ATM信元和FR帧。
MPLS分组上承载一系列按照“后进先出”方式组织起来的标记,该结构称作标记栈,从栈顶开始处理标记。若一个分组的标记栈深度为m,则位于栈底的标记为1级标记,位于栈顶的标记为m级标记。未打标记的分组可看作标记栈为空(即标记栈深度为零)的分组。标记分组到达LSR通常先执行标记栈顶的出栈(pop)操作,然后将一个或多个特定的新标记压入(push)标记栈顶。假如分组的下一跳为某个LSR自身,则该LSR将栈顶标记弹出并将由此得到的分组“转发”给自己。此后,假如标记弹出后标记栈不空,则LSR根据标记栈保留信息做出后续转发决定;假如标记弹出后标记栈为空,则LSR根据IP分组头路由转发该分组。
LSR是MPLS网络的基本单元,软件框架结构如图1所示。LSR主要由控制单元与转发单元两部分构成,这种功能上的分离有利于控制算法的升级。其中,控制单元负责路由的选择,MPLS控制协议的执行,标记的分配与发布以及标记信息库(LIB)的形成。而转发单元则只负责依据标记信息库建立标记转发表(LFIB),对标记分组进行简单的转发操作。其中,LFIB是MPLS转发的要害,LFIB使用标记来进行索引,相当于IP网络中的路由表。LFIB表项的内容包括:入标记、转发等价类、出标记、出接口、出封装方式等。
MPLS功能的本质是将分组业务划分为FEC,相同FEC的业务流在标记交换路径(LSP)上交换。一般来说,由下游节点向上游节点分发标记,连成一串的标记和路由器序列就构成了LSP。LSP的建立可以使用两种方式:独立方式(Independent)和有序方式(Ordered)。在独立方式中,任何LSR可以在任何时候为每个可识别的FEC流进行标记分发,并将该绑定分发给标记分发对等体;而在有序方式中,一个流的标记分发从这个FEC流所属的出口节点开始,由下游向上游逐级绑定,这样可以保证整个网络内标记与流的映射完整一致。
LSP有序控制方式和独立控制方式应能够相互操作。一条LSP中,假如并非所有LSR均使用有序控制,则控制方式的整体效果为独立控制。LSR应支持两种控制方式之一,控制方式由LSR本地选择。
(3)MPLS路由选择
这里的路由选择是指为特定FEC选择LSP的选路方法,MPLS使用两种路由方法:逐跳路由和显式路由。逐跳路由使用传统的动态路由算法来决定LSP的下一跳,每个节点独立地为FEC选择下一跳,对于下一跳的改变由本地决定,发生故障时路径的修复也由本地完成。显式路由则使用流量工程技术或者手工制定路由,不受动态路由影响,路由计算中可以考虑各种约束条件(如策略、CoS等级),每个LSR不能独立地选择下一跳,而由LSP的入口/出口LSR规定位于LSP上的LSR。
逐跳路由实现上比较简单,可以利用传统路由协议(如OSPF、IS-IS)以及现有设备中的路由功能,但对于故障路径的恢复有赖于路由协议的汇聚时间,并且不具备流量工程能力。显式路由可以根据各种约束参数来计算路径,可以赋予不同LSP以不同的服务等级,可以为故障的LSP进行快速重路由,适于实现流量工程与QoS业务,能够更好的满足ISP的特定要求。
二、标记分发协议
LSP实质上是一个MPLS隧道,而隧道建立过程则是通过标记分发协议的工作实现的。标记分发协议是LSR将它所做的标记/FEC绑定通知到另一个LSR的协议族,使用标记分发协议交换标记/FEC绑定信息的两个LSR被称为对应于相应绑定信息的标记分发对等实体。标记分发协议还包括标记分发对等实体为了获知彼此的MPLS能力而进行的任何协商。
目前主要研究三种标记分发协议:基本的标记分发协议(LDP)、基于约束的LDP(CR-LDP)和扩展RSVP(RSVP-TE)。LDP是基本的MPLS信令与控制协议,它规定了各种消息格式以及操作规程,LDP与传统路由算法相结合,通过在TCP连接上传送各种消息,分配标记、发布<标记,FEC>映射,建立维护标记转发表和标记交换路径。但假如需要支持显式路由、流量工程和QoS等业务时,就必须使用后两种标记分发协议。CR-LDP是LDP协议的扩展,它仍然采用标准的LDP消息,与LDP共享TCP连接,CR-LDP的特征在于通过网管制定或是在路由计算中引入约束参数的方法建立显式路由,从而实现流量工程等功能。RSVP本来就是为了解决TCP/IP网络服务质量问题而设计的协议,将该协议进行扩展得到的RSVP-TE也能够实现各种所需功能,在协议实现中将RSVP作用对象从流转变为FEC,降低了颗粒度,也就提高了网络的扩展性。可以看到,CR-LDP和RSVP-TE在功能上比较相似,但在协议实现上有着本质的区别,难以实现互通,故而必须做出选择。
p#三、MPLS技术应用
(1)MPLS VPN
MPLS的一个重要应用是VPN,MPLS VPN根据扩展方式的不同可以划分为BGP MPLS VPN 和LDP扩展VPN,根据PE(Provider Edge)设备是否参与VPN 路由可以划分为二层VPN 和三层VPN。
BGP MPLS VPN 主要包含骨干网边缘路由器(PE),用户网边缘路由器(CE)和骨干网核心路由器(P)。PE上存储有VPN的虚拟路由转发表(VRF),用来处理VPN-IPv4 路由,是三层MPLS VPN 的主要实现者;CE上分布用户网络路由,通过一个单独的物理/逻辑端口连接到PE;P路由器是骨干网设备,负责MPLS 转发。多协议扩展BGP(MP-BGP)承载携带标记的IPv4/VPN 路由,有MP-IBGP 和MP-EBGP之分。
BGP MPLS VPN中扩展了BGP NLRI中的IPv4 地址,在其前增加了一个8字节的RD(Route Distinguisher)来标识VPN的成员(Site)。每个VRF 配置策略规定一个VPN 可以接收来自哪些Site的路由信息,可以向外发布哪些Site 的路由信息。每个PE根据BGP扩展发布的信息进行路由计算,生成相关VPN的路由表。
PE-CE之间交换路由信息可以通过静态路由、RIP、OSPF、IS-IS以及BGP等路由协议。通常采用静态路由,可以减少CE设备治理不善等原因造成对骨干网BGP路由产生震荡影响,保障了骨干网的稳定性。
目前运营商网络规划现状决定现有城域网或广域网可能自成一个自治域,这时就需要解决跨域互通问题。在三层BGP MPLS VPN中引入了自治系统边界路由器(ASBR),在实现跨自治系统的VPN互通时,ASBR同其它自治系统交换VPN 路由。现有的跨域解决方案有VRF-to-VRF、MP-EBGP和Multi-Hop MP-EBGP三种方式。
对于二层MPLS VPN,运营商只负责提供给VPN用户提供二层的连通性,不需要参与VPN用户的路由计算。在提供全连接的二层VPN时与传统的二层VPN一样,存在N方问题,即每个VPN的CE到其它的CE都需要在CE与PE之间分配一条物理/逻辑连接,这种VPN的扩展性存在严重问题。
用LDP扩展实现的二层VPN,也可以承载ATM、帧中继、以太网/VLAN以及PPP等二层业务,但它的主要应用是以太网/VLAN,实现上只需增加一个新的能够标识ATM、帧中继、以太网/VLAN或PPP的FEC类型即可。相对于BGP MPLS VPN,LDP扩展在于只能建立点到点的VPN,二层连接没有VPN的自动发现机制;优点是可以在城域网的范围内建立透明LAN服务(TLS),通过LDP 建立的LSP进行MAC地址学习。
(2)GMPLS
随着智能光网络技术以及MPLS技术的发展,自然希望能将二者结合起来,使IP分组能够通过MPLS的方式直接在光网络上承载,于是出现了新的技术概念多协议波长交换(MPλS)。随着对未来网络发展的的研究,MPLS的外延和内涵不断扩展产生了通用MPLS(GMPLS)技术,其中也包含MPλS相关内容。
GMPLS也是MPLS的扩展,更准确地说,是MPLS-TE的扩展。由于GMPLS主要是扩展了对于传输网络的治理,而传输网络的主要业务为点到点业务,这与MPLS-TE的业务模型非常相似,因此GMPLS主要借助MPLS-TE的协议栈,将其加以扩展而形成。
与MPLS完全相同,GMPLS网络也由两个主要元素组成:标记交换节点和标记交换路径。但GMPLS的LSR包括所有类型的节点,这些LSR上的接口可以细分为若干等级:分组交换能力(PSC)接口、时分复用能力(TDM)接口、波长交换能力(LSC)接口和光纤交换能力(FSC)接口。而LSP则既可以是一条传递IP包的虚通路,也可以是一条TDM电路,或是一条DWDM的波道,甚至是一根光纤。GMPLS分别为电路交换和光交换设计了专用的标记格式,以满足不同业务的需求。在非分组交换的网络中,标记仅用于控制平面而不用于用户平面。一条TDM电路(TDM-LSP)的建立过程与一条分组交换的连接(PSC-LSP)的建立过程完全相同,源端发送标记请求消息后,目的端返回标记映射消息。所不同的是,标记映射消息中所分配的标记与时隙或光波一一对应。
传统网络模型中,传输层、链路层、网络层在控制层面上相互独立,各自使用本层协议在本层内的设备之间互通,也形成了各自的标准体系。而在GMPLS的体系结构中,没有语言的差异,只有分工的不同,GMPLS成了各层设备的共同语言。
四、MPLS的标准化进展
MPLS技术的标准化工作仍在进行之中,主要的组织有IETF、ITU和MPLS Forum。最有影响力的当数IETF的MPLS工作组,它独立于各个设备实现厂家,现有的MPLS相关协议基本上来自于这个工作组,以及该组织后来派生出流量工程工作组和MPLS VPN工作组,该工作组前后公布了超过300个RFC和相关草案。
IETF MPLS工作组确定了MPLS的工作机制(底层转发、支持多种网络层协议),解决多种交换式路由技术的兼容性问题,提供弹性、扩展性好的交换式路由技术,同时加强了MPLS应用技术的研究(提供增值服务、与光纤传输网的融合、流量工程等)。其中比较重要的几个标准有RFC3031(MPLS体系结构)、RFC3032(MPLS标记栈编码)、RFC3036(LDP规范)以及RFC3037(LDP可行性)。
ITU-T将工作重点由ATM MPLS转移到IP MPLS的标准化;MPLS Forum则将工作重点在放在流量工程、服务类型、服务质量以及VPN方面。
由于MPLS标准制定尚未完成,MPLS设备的研发、试验当然也存在许多分歧。以MPLS流量工程采用什么标签分发协议为例,目前以Nortel为代表的厂商主张使用CR-LDP协议作为MPLS流量工程的信令协议,而以Cisco为代表的厂商则主张使用RSVP-TE流量工程扩展。虽然ITU-T等标准化组织推荐使用LDP/CR-LDP协议作为公网传输的标准信令,但二者都有很强的企业支持,最终将只能由市场决定胜败。
为推动我国IP多媒体数据通信网络标准化的发展,1999年由国内电信研究机构联合诸多通信企业成立了中国IP和多媒体标准研究组。研究组成立后,便将MPLS系列标准作为该研究组的一项重要标准进行研究和制订。截至目前,已经制订并发行《MPLS总体技术要求》,《MPLS测试规范》也已经完成征求意见稿,有望在2002年10月研究组会议中对该规范征求意见稿进行审查。
《MPLS总体技术要求》适用于MPLS边缘节点设备、MPLS域内节点设备以及MPLS与特定链路层技术相结合的设备。该标准规定了MPLS的基本技术、控制协议以及MPLS在网络层和链路层的功能、性能参数、标记封装与分发以及流量工程等各方面的要求。尤其需要指出的是在总体技术要求中,根据我国电信网建设的实际情况,选择了LDP/CR-LDP作为MPLS设备必须支持的信令协议。RSVP-TE协议只作为可选,在附录中进行了描述。
《MPLS测试规范》的制定将为我国多协议标记交换设备的研制、生产、检验和工程应用提供统一的依据,也为进口该类品提供统一的检验标准。该标准主要规定了MPLS设备的标记交换功能测试、标记分发协议一致性测试、MPLS设备性能测试以及MPLS CoS功能性能测试等内容。
由于MPLS VPN、GMPLS、MPLS TE等技术受到业界的广泛关注,在研究组内也加强了对这些热点问题的跟踪研究,MPLS相关标准也在紧张制订中。