多协议标记交换(MPLS)技术作为一种新兴的路由交换技术,越来越受到业界的关注。MPLS技术是结合二层交换和三层路由的L2/L3集成数据传输技术,它不仅支持网络层的多种协议,还可以兼容第二层上的多种链路层技术。采用MPLS技术的IP路由器以及ATM、FR交换机统称为标记交换路由器(LSR),使用LSR的网络相对简化了网络层复杂度,兼容现有的主流网络技术,降低了网络升级的成本。此外,业界还普遍看好用MPLS提供VPN服务,实现负载均衡的网络流量工程。
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等功能。
标记是一个长度固定(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本地选择。
这里的路由选择是指为特定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在功能上比较相似,但在协议实现上有着本质的区别,难以实现互通,故而必须做出选择。