第9章 MPLS技术.docx
- 文档编号:28817359
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:44
- 大小:335.22KB
第9章 MPLS技术.docx
《第9章 MPLS技术.docx》由会员分享,可在线阅读,更多相关《第9章 MPLS技术.docx(44页珍藏版)》请在冰豆网上搜索。
第9章MPLS技术
第9章MPLS技术
课程目标:
初级
●掌握MPLS的基本概念
●了解MPLS网络的体系结构
●了解MPLS标签发布管理的基本原理
中级
●掌握MPLS标签发布管理的原理
●掌握LDP协议基本原理
高级
●掌握MPLS快速重路由技术
●掌握MPLS流量工程技术原理
9.1MPLS概述
9.1.1MPLS基本概念
多协议标签交换MPLS最初是为了提高转发速度而提出的。
与传统IP路由方式相比,它在数据转发时,只在网络边缘分析IP报文头,而不用在每一跳都分析IP报文头,节约了处理时间。
MPLS起源于IPv4(InternetProtocolversion4),其核心技术可扩展到多种网络协议,包括IPv6(InternetProtocolversion6)、IPX(InternetPacketExchange)、Appletalk、DECnet、CLNP(ConnectionlessNetworkProtocol)等。
“MPLS”中的“Multiprotocol”指的就是支持多种网络协议。
VRP支持在IPv4和IPv6上使用MPLS。
1.转发等价类
MPLS作为一种分类转发技术,将具有相同转发处理方式的分组归为一类,称为转发等价类FEC(ForwardingEquivalenceClass)。
相同转发等价类的分组在MPLS网络中将获得完全相同的处理。
转发等价类的划分方式非常灵活,可以是源地址、目的地址、源端口、目的端口、协议类型、VPN等的任意组合。
例如,在传统的采用最长匹配算法的IP转发中,到同一个目的地址的所有报文就是一个转发等价类。
2.标签
标签是一个长度固定、只具有本地意义的短标识符,用于唯一标识一个分组所属的转发等价类FEC。
在某些情况下,例如要进行负载分担,对应一个FEC可能会有多个标签,但是一个标签只能代表一个FEC。
标签由报文的头部所携带,不包含拓扑信息,只具有局部意义。
标签的长度为4个字节,封装结构如图所示。
标签的封装结构
标签共有4个域:
ØLabel:
20比特,标签值字段,用于转发的指针;
ØExp:
3比特,保留,用于试验,现在通常用做CoS(ClassofService);
ØS:
1比特,栈底标识。
MPLS支持标签的分层结构,即多重标签,S值为1时表明为最底层标签;
ØTTL:
8比特,和IP分组中的TTL(TimeToLive)意义相同。
Ø标签与ATM的VPI/VCI以及FrameRelay的DLCI类似,是一种连接标识符。
Ø如果链路层协议具有标签域,如ATM的VPI/VCI或FrameRelay的DLCI,则标签封装在
这些域中;
Ø如果链路层协议没有标签域,则标签封装在链路层和IP层之间的一个垫层中。
这样,标签能够被任意的链路层所支持。
标签在分组中的封装位置如图所示。
标签在分组中的封装位置
Framemode:
帧模式
Cellmode:
信元模式
3.标签交换路由器
标签交换路由器LSR(LabelSwitchingRouter)是MPLS网络中的基本元素,所有LSR都支持MPLS协议。
LSR由两部分组成:
控制单元和转发单元。
Ø控制单元负责标签的分配、路由的选择、标签转发表的建立、标签交换路径的建立、拆除等工作。
Ø转发单元依据标签转发表对收到的分组进行转发。
4.标签发布协议
标签发布协议是MPLS的控制协议,它相当于传统网络中的信令协议,负责FEC的分类、标签的分配以及LSP的建立和维护等一系列操作。
MPLS可以使用多种标签发布协议。
Ø包括专为标签发布而制定的协议,例如:
LDP(LabelDistributionProtocol)、CR-LDP(Constraint-RoutingLabelDistributionProtocol);
Ø也包括现有协议扩展后支持标签发布的,例如:
BGP(BorderGatewayProtocol)、RSVP(ResourceReservationProtocol)。
VRP支持上述标签发布协议,并支持手工配置标签。
5.标签交换路径
一个转发等价类在MPLS网络中经过的路径称为标签交换路径LSP(LabelSwitchedPath)。
LSP在功能上与ATM和FrameRelay的虚电路相同,是从入口到出口的一个单向路径。
LSP中的每个节点由LSR组成,根据数据传送的方向,相邻的LSR分别称为上游LSR和下游LSR。
标签交换路径LSP分为静态LSP和动态LSP两种。
静态LSP由管理员手工配置,动态LSP则利用路由协议和标签发布协议动态产生。
9.1.2MPLS网络结构
如图所示,MPLS网络的基本构成单元是LSR,由LSR构成的网络称为MPLS域(MPLSDomain)。
位于MPLS域边缘、连接其它用户网络的LSR称为边缘LSR,即LER(LabelEdgeRouter),区域内部的LSR称为核心LSR。
核心LSR可以是支持MPLS的路由器,也可以是由ATM交换机等升级而成的ATM-LSR。
域内部的LSR之间使用MPLS通信,MPLS域的边缘由LER与传统IP技术进行适配。
分组被打上标签后,沿着由一系列LSR构成的标签交换路径LSP传送,其中,入节点LER被称为Ingress,出节点LER被称为Egress,中间的节点则称为Transit。
结合上图简要介绍MPLS的基本工作过程:
1、LDP和传统路由协议(如OSPF、ISIS等)一起,在各个LSR中为有业务需求的FEC建立路由表和标签映射表;
2、入节点Ingress接收分组,完成第三层功能,判定分组所属的FEC,并给分组加上标签,形成MPLS标签分组,转发到中间节点Transit;
3、Transit根据分组上的标签以及标签转发表进行转发,不对标签分组进行任何第三层处理;
4、在出节点Egress去掉分组中的标签,继续进行后面的转发。
由此可以看出,MPLS并不是一种业务或者应用,它实际上是一种隧道技术,也是一种将标签交换转发和网络层路由技术集于一身的路由与交换技术平台。
这个平台不仅支持多种高层协议与业务,而且,在一定程度上可以保证信息传输的安全性。
9.1.3MPLS的体系结构
在MPLS的体系结构中:
Ø控制平面(ControlPlane)基于无连接服务,利用现有IP网络实现;
Ø转发平面(ForwardingPlane)也称为数据平面(DataPlane),是面向连接的,可以使用ATM、帧中继等二层网络。
MPLS使用短而定长的标签封装分组,在转发平面实现快速转发。
在控制平面,MPLS拥有IP网络强大灵活的路由功能,可以满足各种新应用对网络的要求。
MPLS体系结构如下图所示。
MPLS体系结构示意图
对于核心LSR,在转发平面只需要进行标签分组的转发。
对于LER,在转发平面不仅需要进行标签分组的转发,也需要进行IP分组的转发,前者使用标签转发表LFIB,后者使用传统转发表FIB(ForwardingInformationBase)。
9.1.4MPLS与路由协议
1.LDP利用路由转发表建立LSP
LDP通过逐跳方式建立LSP时,利用沿途各LSR路由转发表中的信息来确定下一跳,而路由转发表中的信息一般是通过IGP、BGP等路由协议收集的。
LDP并不直接和各种路由协议关联,只是间接使用路由信息。
2.通过已有协议的扩展支持MPLS标签分发
虽然LDP是专门用来实现标签分发的协议,但LDP并不是唯一的标签分发协议。
通过对BGP、RSVP(ResourceReservationProtocol)等已有协议进行扩展,也可以支持MPLS标签的分发。
3.通过某些路由协议的扩展支持MPLS应用
在MPLS的应用中,也可能需要对某些路由协议进行扩展。
例如,基于MPLS的VPN应用需要对BGP进行扩展,使BGP能够传播VPN的路由信息;基于MPLS的流量工程TE(TrafficEngineering)需要对OSPF或IS-IS协议进行扩展,以携带链路状态信息。
MPLS与各种协议的关系如下图
如果要更详细了解MPLS的原理,请参考以下文档。
RFC3031:
MultiprotocolLabelSwitchingArchitecture
9.1.5MPLS的应用
随着ASIC技术的发展,路由查找速度已经不是阻碍网络发展的瓶颈。
这使得MPLS在提高转发速度方面不再具备明显的优势。
但由于MPLS结合了IP网络强大的三层路由功能和传统二层网络高效的转发机制,在转发平面采用面向连接方式,与现有二层网络转发方式非常相似,这使得MPLS能够很容易地实现IP与ATM、帧中继等二层网络的无缝融合,并为流量工程TE(TrafficEngineering)、虚拟专用网VPN(VirtualPrivateNetwork)、服务质量QoS(QualityofService)等应用提供更好的解决方案。
1.基于MPLS的VPN
传统VPN一般是通过GRE(GenericRoutingEncapsulation)、L2TP(Layer2TunnelingProtocol)、PPTP(PointtoPointTunnelingProtocol)等隧道协议来实现私有网络间数据在公网上的传送。
而LSP本身就是公网上的隧道,所以用MPLS来实现VPN有天然的优势。
基于MPLS的VPN通过LSP将私有网络的不同分支联结起来,形成一个统一的网络,如图所示。
基于MPLS的VPN还支持对不同VPN间的互通控制。
图中:
ØCE(CustomerEdge)是用户边缘设备,可以是路由器,也可以是交换机或主机;
ØPE(ProviderEdge)是服务商边缘路由器,位于骨干网络。
Ø在骨干网络中,还存在P(Provider),是服务提供商网络中的骨干路由器,不与CE直接相连。
P设备只需要具备基本MPLS转发能力,不维护VPN信息。
基于MPLS的VPN具有以下特点:
ØPE负责对VPN用户进行管理、建立各PE间LSP连接、同一VPN用户各分支间路由分派。
ØPE间的路由分派通常是用LDP或扩展的BGP协议实现。
Ø支持不同分支间IP地址复用和不同VPN间互通。
2.基于MPLS的QoS
VRP支持基于MPLS的流量工程和差分服务Diff-Serv特性,在保证网络高利用率的同时,可以根据不同数据流的优先级实现差别服务,从而为语音,视频数据流提供有带宽保证的低延时、低丢包率的服务。
由于全网实施流量工程的难度比较大,因此,在实际的组网方案中往往通过差分服务模型来实施QoS。
Diff-Serv的基本机制是在网络边缘,根据业务的服务质量要求将该业务映射到一定的业务类别中,利用IP分组中的DS(DifferentiatedService)字段(由ToS域而来)唯一的标记该类业务;然后,骨干网络中的各节点根据该字段对各种业务采取预先设定的服务策略,保证相应的服务质量。
Diff-Serv对服务质量的分类和标签机制与MPLS的标签分配十分相似,事实上,基于MPLS的Diff-Serv就是通过将DS的分配与MPLS的标签分配过程结合来实现的。
9.2MPLS原理
MPLS是基于标记的IP路由选择方法。
这些标记可以被用来代表逐跳式或者显式路由,并指明服务质量(QoS)、虚拟专网以及影响一种特定类型的流量(或一个特殊用户的流量)在网络上的传输方式等各类信息。
MPLS采用简化了的技术,来完成第三层和第二层的转换。
它可以提供每个IP数据包一个标记,将之与IP数据包封装于新的MPLS数据包,由此决定IP数据包的传输路径以及优先顺序,而与MPLS兼容的路由器会在将IP数据包按相应路径转发之前仅读取该MPLS数据包的包头标记,无须再去读取每个IP数据包中的IP地址位等信息,因此数据包的交换转发速度大大加快。
目前的路由协议都是在一个指定源和目的地之间选择最短路径,而不论该路径的带宽、载荷等链路状态,对于缺乏安全保障的链路也没有一种显式方法来绕过它。
利用显式路由选择,就可以灵活选择一条低延迟、安全的路径来传输数据。
MPLS协议实现了第三层的路由到第二层的交换的转换。
MPLS可以使用各种第二层协议。
MPLS工作组到目前为止已经把在帧中继、ATM和PPP链路以及IEEE802.3局域网上使用的标记实现了标准化。
MPLS在帧中继和ATM上运行的一个好处是它为这些面向连接的技术,带来了IP的任意连通性。
目前MPLS的主要发展方向是在ATM方面。
这主要是因为ATM具有很强的流量管理功能,能提供QoS方面的服务,ATM和MPLS技术的结合能充分发挥在流量管理和QoS方面的作用。
标记是用于转发数据包的报头,报头的格式则取决于网络特性。
在路由器网络中,标记是单独的32位报头;在ATM中,标记置于虚电路标识符/虚通道标识符(VCI/VPI)信元报头中。
对于MPLS可扩展性非常关键的一点是标记只在通信的两个设备之间有意义。
在网络核心,路由器/交换机只解读标记并不去解析IP数据包。
IP包进入网络核心时,边界路由器给它分配一个标记。
自此,MPLS设备就会自始至终查看这些标记信息,将这些有标记的包交换至其目的地。
由于路由处理减少,网络的等待时间也就随之缩短,而可伸缩性却有所增加。
MPLS数据包的服务质量类型可以由MPLS边界路由器根据IP包的各种参数来确定,如IP的源地址、目的地址、端口号、TOS值等参数。
对于到达同一目的地的IP包,可根据其TOS值的要求来建立不同的转发路径,以达到其对传输质量的要求。
同时,通过对特殊路由的管理,还能有效地解决网络中的负载均衡和拥塞问题。
当网络中出现拥塞时,MPLS可实时建立新的转发路由来分散流量以缓解网络拥塞。
9.2.1标签的发布和管理
1.标签发布方式
在MPLS体系中,由下游LSR决定将标签分配给特定FEC,再通知上游LSR。
即,标签由下游指定,标签的分配按从下游到上游的方向分发。
标签发布方式(LabelAdvertisementMode)分为两种:
Ø下游自主方式DU(DownstreamUnsolicited):
对于一个特定的FEC,LSR无须从上游获得标签请求消息即进行标签分配与分发;
Ø下游按需方式DoD(DownstreamonDemand):
对于一个特定的FEC,LSR获得标签请求消息之后才进行标签分配与分发。
具有标签分发邻接关系的上游LSR和下游LSR必须对使用的标签发布方式达成一致,否则无法正常建立LSP。
2.标签分配控制方式
标签分配控制方式(LabelDistributionControlMode)是指在LSP的建立过程中,LSR分配标签时采用的时间策略。
分为两种:
Ø独立标签分配控制(Independent):
LSR可以在任意时间向与它连接的LSR通告标签映射(标签与FEC的绑定)。
这种方式可能导致在收到下游标签之前就发布了上游标签;
Ø有序标签控制方式(Ordered):
对于LSR上某个FEC的标签映射,只有当该LSR已经具有此FEC下一跳的标签映射消息、或者该LSR就是此FEC的出口节点时,该LSR才可以向上游发送此FEC的标签映射。
3.标签保持方式
标签保持方式(LabelRetentionMode)是指LSR对收到的、但目前暂时用不到的标签映射的处理方式。
标签保持方式也分为两种:
Ø自由标签保持方式(Liberal):
对于从邻居LSR收到的标签映射,无论邻居LSR是不是自己的下一跳都保留;
Ø保守标签保持方式(Conservative):
对于从邻居LSR收到的标签映射,只有当邻居LSR是自己的下一跳时才保留。
当网络拓扑变化引起下一跳邻居改变时:
Ø使用自由标签保持方式,LSR可以直接利用原来非下一跳邻居发来的标签,迅速重建LSP,但需要更多的内存和标签空间。
Ø使用保守标签保持方式,LSR只保留来自下一跳邻居的标签,节省了内存和标签空间,但LSP的重建会比较慢。
保守标签保持方式通常与DoD方式一起,用于标签空间有限的LSR。
推荐采用如下组合。
下游自主方式DU+有序标签控制方式(Ordered)+自由标签保持方式(Liberal)
4.标签交换中的几个基本概念
(1)NHLFE(NextHopLabelForwardingEntry):
下一跳标签转发项。
用于描述对标签执行的操作,包括入栈(Push)、出栈(Pop)、交换(Swap)。
(2)FTN(FECtoNHLFEmap):
在Ingress节点将转发等价类FEC映射到NHLFE的过程。
(3)ILM(IncomingLabelMap):
入标签映射。
在中间节点和出节点接收的标签分组,LSR将标签映射到NHLFE的过程。
5.标签交换的过程
入节点LER(Ingress)将进入网络的分组划分成转发等价类FEC。
属于相同FEC的分组在MPLS域中将经过相同的路径,即使用同一条LSP。
LSR对到来的FEC分组分配一个标签,然后从相应的接口转发出去。
在LSP沿途的LSR上都建立输入/输出标签的映射表,该表中的元素就是NHLFE。
对于接收到的标签分组,LSR只需根据标签从表中找到相应的NHLFE,用新的标签替换原来的标签,然后对标签分组进行转发。
这个过程称为ILM。
9.2.2LSP隧道与标签栈
1.LSP隧道
MPLS支持LSP隧道技术。
在一条LSP上,LSRRu和LSRRd互为上下游,但它们之间的路径可能并不在路由协议所提供的路径上。
MPLS允许在Ru和Rd之间建立一条新的LSP,Ru和Rd分别是这条LSP的起点和终点。
这时,Ru和Rd间的LSP就是LSP隧道,它避免了采用传统的网络层封装隧道。
根据隧道经由的路由与逐跳从路由协议取得的路由是否一致,将隧道分为两类:
如果二者一致,这种隧道称为逐跳路由隧道(Hop-by-HopRoutedTunnel)。
如果二者不一致,这种隧道称为显式路由隧道(ExplicitlyRoutedTunnel)。
在图中,LSP
2.多层标签栈
如果分组在超过一层的LSP隧道中传送,就会有多层标签,形成标签栈(LabelStack)。
在每一隧道的入口和出口处,进行标签栈的入栈(Push)和出栈(Pop)操作。
MPLS对标签栈的深度没有限制。
标签栈按照“后进先出”(Last-In,First-Out)方式组织标签,MPLS从栈顶开始处理标签。
若一个分组的标签栈深度为m,则位于栈底的标签为1级标签,位于栈顶的标签为m级标签。
未打标签的分组可看作标签栈为空(即标签栈深度为零)的分组。
图中,由R1到R4的分组的标签栈是:
(1)从R1到R2时只有Level1即1级标签;
(2)在进入LSP
栈顶的Level2即2级标签用于到达R3,由R2、R21、R22、R3处理;
(3)到达R3后,Level2标签被弹出,栈底的Level1标签用于到达R4。
3.倒数第二跳弹出PHP
在介绍MPLS的基本工作过程时提到:
在MPLS网络中,LSR根据分组上的标签进行转发;在Egress节点去掉分组中的标签,继续进行IP转发。
实际上,在简单的MPLS应用中,Egress节点只需要进行IP转发,标签已经没有使用价值。
这种情况下,可以利用倒数第二跳弹出特性PHP(PenultimateHopPopping),在倒数第二个节点处将标签弹出,Egress节点就不再进行标签操作了。
PHP在Egress节点上配置,根据倒数第二跳节点对PHP特性的支持情况选择标签分配方式。
根据RFC3032(MPLSLabelStackEncoding)中的定义:
(1)标签值0表示IPv4显式空标签(explicit-null)。
这个值只有出现在标签栈底时才有效,表示报文的标签在这个节点必须被弹出,下一个节点将对此报文进行IP转发;
(2)标签值3表示隐式空标签(implicit-null),这个值不会出现在标签栈中。
当一个LSR发现自己被分配了隐式空标签时,它并不用这个值替代栈顶原来的标签,而是直接执行Pop操作。
9.2.3MPLS对TTL的处理
1.TTL复制
MPLS标签中包含一个8位的TTL域,其含义与IP头中的TTL域相同。
TTL除了用于防止产生路由环路外,也用于实现Traceroute功能。
根据RFC3031,LSR节点对分组打标签时,需要将原IP分组或上层标签中的TTL值拷贝到新增加标签的TTL域。
LSR转发标签分组时,对栈顶标签的TTL域做减1操作。
标签出栈时,再将栈顶的TTL值拷贝回IP分组或下层标签。
如果LSP穿越由ATM-LSR或FR-LSR构成的非TTLLSP段,由于域内的LSR无法处理TTL域,需要在进入非TTLLSP段时,对TTL进行统一处理。
即,一次性减去反映该非TTLLSP段长度的值。
对于VPN应用,可能需要隐藏MPLS骨干网的结构。
VRP支持对VPN报文和公网报文分别设置不同的TTL复制方式。
2.ICMP响应报文
在MPLSVPN网络中,服务提供商ISP的骨干路由器无法对MPLS承载的VPN报文进行路由。
当MPLS报文的TTL超时时,ICMP响应报文将按照LSP继续传送,到达LSP终点路由器后,再根据IP路由转发ICMP响应报文。
这种处理方式增加了网络流量和报文转发时延。
对于仅有一层标签的MPLS报文,客户可以选择ICMP响应报文的返回方式,即当TTL超时时,使用IP路由或LSP返回ICMP响应报文。
3.MPLSPing/Traceroute
在MPLS中,如果LSP转发数据失败,负责建立LSP的MPLS控制平面将无法检测到这种错误,这会给网络维护带来困难。
MPLSPing/Traceroute为用户提供了发现LSP错误、并及时定位失效节点的机制。
类似于普通IP的Ping/Traceroute,MPLSPing/Traceroute使用MPLSEchoRequest和MPLSEchoReply检测LSP的可用性。
这两种消息以UDP报文格式发送,端口号为3503。
MPLSEchoRequest中携带需要检测的FEC信息,和其他属于此FEC的报文一样沿LSP发送,从而实现对LSP的检测。
Ø对于MPLSPing,EchoRequest消息应该达到LSP的Egress节点,由Egress节点的控制平面确认本LSR是否是该FEC的出口。
Ø对于MPLSTraceroute,EchoRequest消息应被发送到每一个Transit节点,由Transit节点的控制平面确认本LSR是否是此路径的中间节点。
为了防止消息到达Egress节点后又被转发给其他节点,EchoRequest消息的IP头中目的地址需要设置为127.0.0.0/8网段的任意地址(本机环回地址),IP头中的TTL值设置为1。
9.2.4LDP协议
LDP(LabelDistributionProtocol)规定标签分发过程中的各种消息以及相关的处理进程。
通过LDP协议,LSR可以把网络层的路由信息直接映射到数据链路层的交换路径上,进而建立起网络层上的LSP。
LSP既可以建立在两个相邻的LSR之间,也可以终止
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第9章 MPLS技术 MPLS 技术