什么是MPLS?
MPLS是一个可以在多种第二层媒质上进行标记交换的网络技术。这一技术结合了第二层的交换和第三层路由的特点,将第二层的基础设施和第三层的路由有机地结合起来。第三层的路由在网络的边缘实施,而在MPLS的网络核心采用第二层交换。
MPLS通过在每一个节点的标签交换来实现包的转发。它不改变现有的路由协议,并可以在多种第二层的物理媒质上实施,目前有ATM、FR(帧中继)、Ethernet以及PPP等媒质。
通过MPLS,第三层的路由可以得到第二层技术的很好补充,充分发挥第二层良好的流量设计管理以及第三层 “Hop-By-Hop(逐跳寻径)”路由的灵活性,以实现端到端的QoS保证。
让我们来打一个比方。最简单的无外乎我们日常的走路。
我们从A地走到B地的方法大体有三种:一种是大概朝着一个方向走,直到走到了为止,就像我们所熟知的“南辕北辙”的故事;另外一种方式却截然相反,就是每过一个街区就问一次路,“我要去B地,下一步怎么走?”,就像我们去一个陌生的地方,生怕走错了路会遇到危险;最后一种情况就是在出发前就查好地图,知道如何才能到达B地,“朝东走5个街区,再向右转第6个街区就是”。
这三种情况如果和我们的包传输方式关联的话,不难想像分别是广播、逐跳寻径以及源路由。
当然,如果我们是跟在向导后面走,就会存在第四种走法。向导可以在走过的路上做好标记,你只要沿着标记的指示走就可以了。而这,就是“标记交换”,如图1所示。
实际上,我们在以往的多个网络中,都已经使用过标记,只不过标记的重要程度不同而已。我们很容易想起,在ATM网中,使用VPI/VCI作为标记;而在FR中,采用DLCI作为网络的标记;而X.25网中的LCN及TDM的时隙,都可以看做是标记。
那么,基于标准的标记交换应该包括哪些部分呢?
从IETF的众多草案中可以看出,其组成大致可以分为以下几个部分:
● 框架和结构 (Framework and Architecture),主要定义MPLS所涉及的范围、部件以及相互之间的联系。
● 封装 (Encapsulation),定义在数据层面用来转发判断的包封装格式。
● “信令”协议 (Signaling Protocol),负责如何分配标记,以建立标记交换路径(LSP)。
● 流量设计 (Traffic Engineering),描述如何设计流量管理。
为什么需要MPLS?
MPLS自提出以来就引起了各方面的广泛注意,各个厂商都相继投入大量的精力进行MPLS的研究和开发。由于不同的解决方案侧重点不同,因而所带来的好处也就不同。但至少有一点可以肯定,MPLS的快速转发将为运营商和大型企业带来众多的利益。
国内外的一些运营商以及大型企业已经开始在它们的骨干网内部利用MPLS来提高网络资源的利用率。作为一个大规模运营商网络的未来关键技术,MPLS可以为运营商或者大企业带来如下一些好处:
● 功能上的独立性。按照MPLS的思想,转发功能和路由功能是分开的,这样MPLS的核心只简单地执行转发功能,而无需检查包的全部内容,这就允许仅在网络的边缘实施一次路径及策略的选择。
● 性能的优化。MPLS很好地结合了第二层交换的高效以及第三层路由的灵活,既简化了IP路由的操作,也高效地利用了网络的资源,从而使网络的性能得到优化。
● 资源的控制。MPLS可以很好地控制资源,可以通过不同的服务等级(COS),来提供原来无法提供的IP增值业务。
● 网络的演进。MPLS正在演进到一个强大的骨干网络中去。在这个网络中,MPLS作为惟一一个运行在多种第二层媒质之上的协议,将成为承载第三层业务(IP)的一项关键技术。
当然,MPLS的好处还有很多,随着MPLS技术的逐步成熟,相信将会有更多的商业价值被开发出来。
MPLS是怎样工作的?
MPLS是一种特殊的转发机制,它为进入网络中的IP数据包分配标记,并通过对标记的交换来实现IP数据包的转发。标记作为IP包头在网络中的替代品而存在,在网络内部MPLS在数据包所经过的路径沿途通过交换标记(而不是看IP包头)来实现转发;当数据包要退出MPLS网络时,数据包被解开封装,继续按照IP包的路由方式到达目的地。
如图2所示,MPLS网络包含一些基本的元素。在网络边缘的节点就称做标记边缘路由器(LER),而网络的核心节点就称做为标记交换路由器(LSR)。LER节点在MPLS网络中完成的是IP包的进入和退出过程;LSR节点在网络中提供高速交换功能。在MPLS节点之间的路径就叫做标记交换路径。一条LSP可以看做是一条贯穿网络的单向隧道。
MPLS的工作流程可以分为几个方面,即网络的边缘行为、网络的中心行为以及如何建立标记交换路径。
1.网络的边缘行为
当IP数据包到达一个LER时,MPLS第一次应用标记。首先,LER要分析IP包头的信息,并且按照它的目的地址和业务等级加以区分。
在LER中,MPLS使用了转发等价类(FEC)的概念来将输入的数据流映射到一条LSP上。简单地说,FEC就是定义了一组沿着同一条路径、有相同处理过程的数据包。这就意味着所有FEC相同的包都可以映射到同一个标记中。
对于每一个FEC,LER都建立一条独立的LSP穿过网络,到达目的地。数据包分配到一个FEC后,LER就可以根据标记信息库(LIB)来为其生成一个标记。标记信息库将每一个FEC都映射到LSP下一跳的标记上。如果下一跳的链路是ATM,则MPLS将使用ATM VCC里的VCI作为标记。
转发数据包时,LER检查标记信息库中的FEC,然后将数据包用LSP的标记封装,从标记信息库所规定的下一个接口发送出去。
2.网络的核心行为
当一个带有标记的包到达LSR的时候,LSR提取入局标记,同时以它作为索引在标记信息库中查找。当LSR找到相关信息后,取出出局的标记,并由出局标记代替入局标签,从标记信息库中所描述的下一跳接口送出数据包。
最后,数据包到达了MPLS域的另一端,在这一点,LER剥去封装的标记,仍然按照IP包的路由方式将数据包继续传送到目的地。
3.如何建立标记交换路径
建立LSP的方式主要有两种:
(1)“Hop by Hop”路由
一个Hop-by-Hop的LSP是所有从源站点到一个特定目的站点的IP树的一部分。对于这些LSP,MPLS模仿IP转发数据包的面向目的地的方式建立了一组树。
从传统的IP路由来看,每一台沿途的路由器都要检查包的目的地址,并且选择一条合适的路径将数据包发送出去。而MPLS则不然,数据包虽然也沿着IP路由所选择的同一条路径进行传送,但是它的数据包头在整条路径上从始至终都没有被检查。
在每一个节点,MPLS生成的树是通过一级一级为下一跳分配标记,而且是通过与它们的对等层交换标记而生成的。交换是通过LDP的请求以及对应的消息完成的。
(2)显式路由
MPLS最主要的一个优点就是它可以利用流量设计“引导”数据包,比如避免拥塞或者满足业务的QoS等。MPLS允许网络的运行人员在源节点就确定一条显式路由的LSP(ER-LSP),以规定数据包将选择的路径。
不像Hop-by-Hop的LSP,ER-LSP不会形成IP树。取而代之,ER-LSP从源端到目的端建立一条直接的端到端的路径,如图3所示。MPLS将显式路由嵌入到限制路由的标记分配协议的信息中,从而建立这条路径。
MPLS术语的缩写
● LDP(Label Distribution Protocol),标记分配协议
● LSP(Label Switched Path),标记交换路径
● FEC(Forwarding Equivalence Class),转发等价类
● LSR(Label Switching Router),标记交换路由器
● LER(Label Edge Router),标记边缘路由器
● CR-LDP(Constraint Route Label Distribution Protocol),限制路由的标记分配协议