MPLS转发原理
最近一段时间太阁NP课程在讲MPLS,部分同学对MPLS的基本原理理解的不是很透彻,今天,小编给大家整理一下MPLS的基本概念和工作原理,希望能对大家的学习和考证有所帮助
定义
多协议标签交换MPLS(MultiprotocolLabelSwitching)
MPLS起源于IPv4(InternetProtocolversion4),其核心技术可扩展到多种网络协议,包括IPv6(InternetProtocolversion6)、IPX(InternetPacketExchange)和CLNP(ConnectionlessNetworkProtocol)等。MPLS中的“Multiprotocol”指的就是支持多种网络协议。
由此可见,MPLS并不是一种业务或者应用,它实际上是一种隧道技术。这种技术不仅支持多种高层协议与业务,而且在一定程度上可以保证信息传输的安全目的90年代中期,随着IP技术的快速发展,Internet数据海量增长。但由于硬件技术存在限制,基于最长匹配算法的IP技术必须使用软件查找路由,转发性能低下,因此IP技术的转发性能成为当时限制网络发展的瓶颈。
为了适应网络的发展,ATM(AsynchronousTransferMode)技术应运而生。ATM采用定长标签,并且只需要维护比路由表规模小得多的标签表,能够提供比IP路由方式高得多的转发性能。然而,ATM协议相对复杂,且ATM网络部署成本高,这使得ATM技术很难普及。
传统的IP技术简单,且部署成本低。如何结合IP与ATM的优点成为当时热门话题。多协议标签交换技术MPLS就是在这种背景下产生的。
MPLS最初是为了提高路由器的转发速度而提出的。与传统IP路由方式相比,它在数据转发时,只在网络边缘分析IP报文头,而不用在每一跳都分析IP报文头,节约了处理时间。
随着专用集成电路ASIC(ApplicationSpecificIntegratedCircuit)技术的发展,路由查找速度已经不是阻碍网络发展的瓶颈。这使得MPLS在提高转发速度方面不再具备明显的优势。但是MPLS支持多层标签和转发平面面向连接的特性,使其在VPN(VirtualPrivateNetwork)、流量工程、QoS(QualityofService)等方面得到广泛应用。
网络结构
MPLS网络的典型结构如图1-1所示。MPLS基于标签进行转发,图1-1中进行MPLS标签交换和报文转发的网络设备称为标签交换路由器LSR(LabelSwitchingRouter);由LSR构成的网络区域称为MPLS域(MPLSDomain)。位于MPLS域边缘、连接其他网络的LSR称为边缘路由器LER(LabelEdgeRouter),区域内部的LSR称为核心LSR(CoreLSR)。
图1-1MPLS网络结构
IP报文进入MPLS网络时,MPLS入口的LER分析IP报文的内容并且为这些IP报文添加合适的标签,所有MPLS网络中的LSR根据标签转发数据。当该IP报文离开MPLS网络时,标签由出口LER弹出。
IP报文在MPLS网络中经过的路径称为标签交换路径LSP(LabelSwitchedPath)。LSP是一个单向路径,与数据流的方向一致。
如图1-1,LSP的入口LER称为入节点(Ingress);位于LSP中间的LSR称为中间节点(Transit);LSP的出口LER称为出节点(Egress)。一条LSP可以有0个、1个或多个中间节点,但有且只有一个入节点和一个出节点。
根据LSP的方向,MPLS报文由Ingress发往Egress,则Ingress是Transit的上游节点,Transit是Ingress的下游节点。同理,Transit是Egress上游节点,Egress是Transit的下游节点。
体系结构
MPLS的体系结构如图1-2所示,它由控制平面(ControlPlane)和转发平面(ForwardingPlane)组成。
图1-2MPLS体系结构
控制平面:负责产生和维护路由信息以及标签信息。
路由信息表RIB(RoutingInformationBase):由IP路由协议(IPRoutingProtocol)生成,用于选择路由。
标签分发协议LDP(LabelDistributionProtocol):负责标签的分配、标签转发信息表的建立、标签交换路径的建立、拆除等工作。
标签信息表LIB(LabelInformationBase):由标签分发协议生成,用于管理标签信息。
转发平面:即数据平面(DataPlane),负责普通IP报文的转发以及带MPLS标签报文的转发。
转发信息表FIB(ForwardingInformationBase):从RIB提取必要的路由信息生成,负责普通IP报文的转发。
标签转发信息表LFIB(LabelForwardingInformationBase):简称标签转发表,由标签分发协议在LSR上建立LFIB,负责带MPLS标签报文的转发。
MPLS基本转发过程
基本概念
在MPLS基本转发过程中涉及的相关概念如下:
标签操作类型包括标签压入(Push)、标签交换(Swap)和标签弹出(Pop),它们是标签转发的基本动作。
Push:当IP报文进入MPLS域时,MPLS边界设备在报文二层首部和IP首部之间插入一个新标签;或者MPLS中间设备根据需要,在标签栈顶增加一个新的标签(即标签嵌套封装)。
Swap:当报文在MPLS域内转发时,根据标签转发表,用下一跳分配的标签,替换MPLS报文的栈顶标签。
Pop:当报文离开MPLS域时,将MPLS报文的标签剥掉。在最后一跳节点,标签已经没有使用价值。这种情况下,可以利用倒数第二跳弹出特性PHP(PenultimateHopPopping),在倒数第二跳节点处将标签弹出,减少最后一跳的负担。最后一跳节点直接进行IP转发或者下一层标签转发。默认情况下,设备支持PHP特性,支持PHP的Egress节点分配给倒数第二跳节点的标签值为3。
基本转发过程
以支持PHP的LSP为例,说明MPLS基本转发过程。
图1-6MPLS基本转发过程
如图1-6,MPLS标签已分发完成,建立了一条LSP,其目的地址为4.4.4.2/32。则MPLS基本转发过程如下:
Ingress节点收到目的地址为4.4.4.2的IP报文,压入标签Z并转发。
Transit节点收到该标签报文,进行标签交换,将标签Z换成标签Y。
倒数第二跳Transit节点收到带标签Y的报文。因为Egress分给它的标签值为3,所以进行PHP操作,弹出标签Y并转发报文。从倒数第二跳转发给Egress的报文以IP报文形式传输。
Egress节点收到该IP报文,将其转发给目的地4.4.4.2/32。
基本概念
在MPLS详细转发过程中涉及的相关概念如下:
TunnelID为了给使用隧道的上层应用(如VPN、路由管理)提供统一的接口,系统自动为隧道分配了一个ID,也称为TunnelID。该TunnelID的长度为32比特,只是本地有效。
NHLFE下一跳标签转发表项NHLFE(NextHopLabelForwardingEntry)用于指导MPLS报文的转发。NHLFE包括:TunnelID、出接口、下一跳、出标签、标签操作类型等信息。FEC到一组NHLFE的映射称为FTN(FEC-to-NHLFE)。通过查看FIB表中TunnelID值不为0x0的表项,能够获得FTN的详细信息。FTN只在Ingress存在。
ILM入标签到一组下一跳标签转发表项的映射称为入标签映射ILM(In