MPLS体系结构(一)
1.1 MPLS概述
MPLS(Multiprotocol Label Switching)是多协议标签交换的简称,它用短而定长的标签来封装网络层分组。MPLS从各种链路层(如PPP、ATM、帧中继、以太网等)得到链路层服务,又为网络层提供面向连接的服务。MPLS能从IP路由协议和控制协议中得到支持,同时,还支持基于策略的约束路由,它路由功能强大、灵活,可以满足各种新应用对网络的要求。这种技术起源于IPv4,但其核心技术可扩展到多种网络协议(IPv6、IPX等)。
MPLS最初是为提高路由器的转发速度而提出一个协议,但是,它的用途已不仅仅局限于此,而是广泛地应用于流量工程(Traffic Engineering)、VPN、QoS等方面,从而日益成为大规模IP网络的重要标准。
1.2 基本概念
1.2.1 转发等价类(FEC)
FEC(Forwarding Equivalence Class)是MPLS中的一个重要概念。MPLS实际上是一种分类转发技术,它将具有相同转发处理方式(目的地相同、使用转发路径相同、具有相同的服务等级等)的分组归为一类,称为转发等价类。一般来说,划分分组的FEC是根据他的网络层目的地址。属于相同转发等价类的分组在MPLS网络中将获得完全相同的处理。
1.2.2 标签
1.标签的定义
标签为一个长度固定、具有本地意义的短标识符,用于标识一个FEC(Forwarding Equivalence Class)。当分组到达MPLS网络入口时,它将按一定规则被划归不同的FEC,根据分组所属的FEC,将相应的标签封装在分组中,这样,在网络中,按标签进行分组转发即可。
2.标签的结构
标签的结构如图1-1所示。
![]()
标签位于链路层包头和网络层分组之间,长度为4个字节。标签共有4个域:
Label:标签值字段,长度为20bits,用于转发的指针。
Exp:3bits,保留,协议中没有明确规定,通常用于COS。
S:1bit,MPLS支持标签的分层结构,即多重标签。值为1时表明为最底层标签。
TTL:8bits,和IP分组中的TTL意义相同。
3.标签的操作
(1) 标签映射
标签映射分为两种,一种是入口路由器处的标签映射,另一种是MPLS域内的标签映射。
入口路由器处的标签映射为ingress LSR依据一定的原则对输入分组进行划分,得到多个FEC,接着将有关标签与这些FEC进行映射,并记录在相应的数据库LIB(Label Information Base)中。简单地说,就是将一个标签指派给FEC,就称为“标签映射”。
MPLS域内的标签映射又称为输入标签映射ILM(Incoming Label Map),即将每个输入标签映射到一系列NHLFE(Next Hop Label Forwarding Entry)上,然后,根据映射结果,将分组沿各通路进行转发。
(2) 标签的封装
标签在各种介质中的封装如下图所示:

对于以太网、PPP的分组,标签堆栈象“垫层”一样,位于二层报头与数据之间,对于ATM信元模式的分组,借用VPI/VCI来作为标签使用。
(3) 标签分配和分发
标签分发是为某FEC建立相应标签交换路径LSP的过程。
在MPLS体系中,将特定标签分配给特定FEC(即标签绑定)的决定由下游LSR作出,下游LSR随后通知上游LSR。即标签由下游指定,分配的标签按照从下游到上游的方向分发。
MPLS中使用的标签分发方式有两种:下游自主标签分发方式(DU,Downstream Unsolicited)和下游按需标签分发方式(DoD,Downstream On Demand)。
l 对于一个特定的FEC,LSR无须从上游获得标签请求消息即进行标签分配与分发的方式,称为下游自主标签分配。
l 对于一个特定的FEC,LSR获得标签请求消息之后才进行标签分配与分发的方式,称为下游按需标签分配。
具有标签分发邻接关系的上游LSR和下游LSR之间,必须对使用哪种标签分发方式达成一致。
LSR将标签分发给其对等体时,可以采用LDP消息进行传送,也可以将标签搭载在其他路由协议消息上。
& 说明:
上游和下游是相对而言的,对于一个报文转发过程来说,发送方的路由器是上游LSR,接收方是下游LSR。
(4) 标签分配控制方式
标签分配控制方式分为两种:独立(Independent)标签分配控制方式和有序(ordered)标签分配控制方式。
当使用独立标签分配控制方式时,每个LSR可以在任意时间向和它连接的LSR通告标签映射。
当使用有序标签分配控制方式时,只有当LSR收到某一特定FEC下一跳的特定标签映射消息或者LSR是LSP的出口节点时,LSR才可以向上游发送标签映射消息。
(5) 标签保持方式
标签保持方式分为两种:自由标签保持方式和保守标签保持方式。
假设两台路由器Ru,Rd,对于特定的一个FEC,如果LSR Ru收到了来自LSR Rd的标签绑定,当Rd不是Ru的下一跳时,如果Ru保存该绑定,则称Ru使用的是自由标签保持方式;如果Ru丢弃该绑定,则称Ru使用的是保守标签保持方式。
当要求LSR能够迅速适应路由变化时,可使用自由标签保持方式;当要求LSR中保存较少的标签数量时,可使用保守标签保持方式。
1.2.3 标签分发协议(LDP)
标签分发协议LDP(Label Distribution Protocol)是MPLS中的信令控制协议,是控制LSR之间交换标签与FEC绑定,协调LSR间工作的一系列规程。
1.3 MPLS体系结构
1.3.1 MPLS网络结构
MPLS网络的基本构成单元是标签交换路由器LSR(Label Switching Router),主要运行MPLS控制协议和第三层路由协议,并负责与其他LSR交换路由信息来建立路由表,实现FEC和IP分组头的映射,建立FEC和标签之间的绑定,分发标签绑定信息,建立和维护标签转发表等工作。
由LSR构成的网络叫做MPLS域,位于区域边缘的LSR称为边缘LSR(LER,Labeled Edge Router),主要完成连接MPLS域和非MPLS域以及不同MPLS域的功能,并实现对业务的分类、分发标签(作为出口LER)、剥去标签等。其中入口LER叫Ingress,出口LER叫Egress。
位于区域内部的LSR则称为核心LSR,核心LSR可以是支持MPLS的路由器,也可以是支持MPLS标签交换的LSR,它提供标签分发、交换功能(Label Swapping)。带标签的分组沿着由一系列LSR构成的标签交换路径LSP(Label Switched Path)传送。
图1-3MPLS基本原理
1.3.2 LSP的建立
LSP的建立其实就是将FEC和标签进行绑定,并将这种绑定通告LSP上相邻LSR的过程。这个过程是通过标签分发协议LDP来实现的。LDP规定了LSR间的消息交互过程和消息结构,以及路由选择方式。有关LDP的详细描述,请参见下一节。
1.3.3 LSP隧道与分层
1.LSP隧道
MPLS支持LSP隧道技术。在一条LSP路径上,LSR Ru和LSR Rd互为上下游,但LSR Ru和LSR Rd之间的路径,可能并不是路由协议所提供路径的一部分,MPLS允许在LSR Ru和LSR Rd间建立一条新的LSP路径<Ru R1...Rn Rd>,LSR Ru和LSR Rd分别为这条LSP的起点和终点。LSR Ru和LSR Rd间的LSP就是LSP隧道,它避免了传统的网络层封装隧道。当隧道经由的路由和逐跳与从路由协议取得的路由一致时,这种隧道叫逐跳路由隧道;若不一致,则这种隧道叫显式路由隧道。

图1-4LSP隧道
在上图中,LSP<R2 R21 R22 R3>就是R2、R3间的一条隧道。
2.多层标签栈
在MPLS中,分组可以携带多个标签,这些标签在分组中以“堆栈”的形式存在,对堆栈的操作按“后进先出”的原则,决定如何转发分组的标签始终是栈顶标签。标签入栈是指向输出分组中加入一个标签,使标签栈的深度加1,同时,分组的当前标签就变为此新加入的标签;标签出栈是指从分组中去掉一个标签,使标签栈的深度减1,同时,分组的当前标签将变为原来处于下一层的标签。
在LSP隧道中会使用多层标签栈。当分组在LSP隧道中传送时,分组的标签就会有多层。在每一隧道的入口和出口处,要进行标签栈的入栈和出栈操作,每发生一次入栈操作,标签就会增加一层。MPLS对标签栈的深度没有限制。
标签栈按照“后进先出”方式组织标签,MPLS从栈顶开始处理标签。
若一个分组的标签栈深度为m,则位于栈底的标签为1级标签,位于栈顶的标签为m级标签。未打标签的分组可看作标签栈为空(即标签栈深度为零)的分组。
1.3.4 标签报文的转发
在Ingress,将进入网络的分组根据其特征划分成转发等价类FEC。一般根据IP地址前缀或者主机地址来划分FEC。属于相同FEC的分组在MPLS区域中将经过相同的路径(即LSP)。LSR对到来的FEC分组分配一个短而定长的标签,然后从相应的接口转发出去。
在LSP沿途的LSR上,都已建立了输入/输出标签的映射表(该表的元素叫下一跳标签转发条目,简称NHLFE,Next Hop Label Forwarding Entry)。对于接收到的标签分组,LSR只需根据标签从表中找到相应的NHLFE,并用新的标签来替换原来的标签,然后,对标签分组进行转发,这个过程叫输入标签映射ILM(Incoming Label Map)。
MPLS在网络入口处指定特定分组的FEC,后续P路由器只需简单的转发即可,比常规的网络层转发要简单得多,转发速度得以提高。
& 说明:
TTL处理:
标签化分组时必须将原IP分组中的TTL值拷贝到标签中的TTL域。LSR在转发标签化分组时,要对栈顶标签的TTL域作减一操作。标签出栈时,再将栈顶的TTL值拷贝回IP分组或下层标签。
但是,当LSP穿越由ATM-LSR或FR-LSR构成的非TTL LSP段时,域内的LSR无法处理TTL域。这时,需要在进入非TTL LSP段时对TTL进行统一处理,即一次性减去反映该非TTL LSP段长度的值。
1.3.5 ICMP Need Frag差错报文回送
在MPLS网络中,当报文的长度超过了路由器出接口所设置的MTU值时,若想使报文顺利的传输,需要将MPLS报文的标签剥去,对IP报文进行分片,然后分别为每一个分片都封装原有的标签后进行传输。
但如果IP报文中设置了不允许分片的标记,则向发送报文的源端回送ICMP Unreach报文,并丢弃源报文。出接口的MTU将被填入ICMP报文中,如果设备上配置了mtu label-including命令,在生成报文的时候,应将报文中的出接口MTU字段减去MPLS标签长度(可能有多层标签)。

图1-5ICMP Need Frag差错报文回送示意图
如上图所示,在MPLS网络中对于P设备和PE设备收到大于其出接口MTU的报文后回送ICMP差错报文的方式有所不同,下面将分别介绍。
(1) PE设备的处理方式
PE1收到CE1发来的报文,报文目的地址为CE2,且该报文携带不可分片标记。PE1将对此报文进行转发处理,封装MPLS标签,生成MPLS报文后进行转发。
此时如果报文的长度超过了出接口的MTU时,PE1会给CE1回送ICMP Unreach报文,并丢弃源报文。
(2) P设备的处理方式
P1收到一份MPLS报文需要进行标签交换,该报文为CE1发往CE2的报文,携带不可分片标记。
完成标签交换后,如果发现报文的长度超过了出接口的MTU,此时,由于P1设备上可能没有到CE1的路由,P1会将MPLS报文中封装的IP报文取出,根据这个IP报文生成ICMP Unreach报文,然后重新封装标签发往PE2方向。
当PE2收到此ICMP报文时,将此报文转发到CE1的方向。
1.4 LDP协议介绍
LDP协议规定标签分发过程中的各种消息以及相关的处理进程。
通过LDP,LSR可以把网络层的路由信息直接映射到数据链路层的交换路径上,进而建立起网络层上的LSP。LSP既可以建立在两个相邻的LSR之间,也可以终止于网络出口节点,从而在网络中所有中间节点上都使用标签交换。
1.4.1 LDP基本概念
1.LDP对等体
LDP对等体是指相互之间存在LDP会话、使用LDP来交换标签/FEC映射关系的两个LSR。
两个LDP对等体可以同时通过一个LDP会话获得对方的标签映射消息,即,LDP协议是双向的。
2.LDP会话
LDP会话用于在LSR之间交换标签映射、释放等消息。LDP会话可以分为两种类型:
l 本地LDP会话(Local LDP Session):建立会话的两个LSR之间是直连的;
l 远端LDP会话(Remote LDP Session):建立会话的两个LSR之间是非直连的;
3.LDP消息
LDP协议主要使用四种消息:
l 发现(Discovery)消息:用于通告和维护网络中LSR的存在;
l 会话(Session)消息:用于建立、维护和终止LDP对等体之间的会话连接;
l 通告(Advertisement)消息:用于创建、改变和删除标记—FEC绑定;
l 通知(Notification)消息:用于提供建议性的消息和差错通知。
4.标签空间与LDP标识符
LDP对等体之间分配标签的范围称为标签空间。可以为LSR的每个接口指定一个标签空间,也可以整个LSR使用一个标签空间。
LDP标识符用于标识特定LSR的标签空间范围,是一个六字节的数值,格式如下:
<IP地址>:<标签空间序号>
其中,四字节的IP地址是LSR的IP地址,标签空间序号占两字节。
1.4.2 LDP工作过程
下图为LDP标签分发示意。

在一条LSP上,沿数据传送的方向,相邻的LSR分别称为上游LSR和下游LSR。例如,在上图中的LSP1,LSR B为LSR C的上游LSR。
标签的分发过程有下游按需标签分发DoD和下游自主标签分发DU两种模式,它们的主要区别在于标签映射的发布是上游请求还是下游主动发布。下面分别描述这两种模式的标签分发过程:
(1) DoD(downstream-on-demand)模式
上游LSR向下游LSR发送标签请求消息(包含FEC的描述信息),下游LSR为此FEC分配标签,并将绑定的标签通过标签映射消息反馈给上游LSR。
下游LSR何时反馈标签映射消息,取决于该LSR采用独立标签控制方式还是有序标签控制方式。采用有序标签控制方式时,只有收到它的下游返回的标签映射消息后,才向其上游发送标签映射消息;采用独立标签控制方式时,不管有没有收到它的下游返回的标签映射消息,都立即向其上游发送标签映射消息。
上游LSR一般是根据其路由表中的信息来选择下游LSR。在图1-4中,LSP1沿途的LSR都采用有序标签控制方式,LSP2上的LSR F则采用独立标签控制方式。
(2) DU(downstream unsolicited)模式
下游LSR在LDP会话建立成功后,主动向其上游LSR发布标签映射消息。上游LSR保存标签映射信息,并根据路由表信息来处理收到的标签映射信息。
1.4.3 LDP基本操作
按照先后顺序,LDP的操作主要包括以下四个阶段:
l 发现阶段
l 会话建立与维护
l LSP建立与维护
l 会话撤销
1.发现阶段
在这一阶段,希望建立会话的LSR向相邻LSR周期性地发送Hello消息,通知相邻节点本地对等关系。通过这一过程,LSR可以自动发现它的LDP对等体,而无需进行手工配置。
LDP有两种发现机制:
l 基本发现机制
基本发现机制用于发现本地的LDP对等体,即通过链路层直接相连的LSR,建立本地LDP会话。
这种方式下,LSR向特定端口周期性发送LDP链路hello消息,并携带特定端口所属标签空间的LDP标识符以及其它相关信息。如果LSR在特定端口收到LDP链路hello消息,则表明可能存在一个可达的对等LSR。通过hello消息携带的信息,LSR还可获知在特定端口使用的标签空间。
l 扩展发现机制
扩展发现机制用于发现远端的LDP对等体,即不通过链路层直接相连的LSR,建立远端LDP会话。
这种方式下,LSR向某一特定IP地址周期地发送LDP目标hello消息(targeted hello)。
LDP目标hello消息以UDP分组的形式发往特定地址的知名LDP发现端口,LSR发送的LDP目标消息带有LSR希望使用的标签空间和其它可选信息。
2.会话建立与维护
对等关系建立之,LSR开始建立会话。这一过程又可分为两步:
l 首先建立传输层连接,即,在LSR之间建立TCP连接;
l 随后对LSR之间的会话进行初始化,协商会话中涉及的各种参数,如LDP版本、标签分发方式、定时器值、标签空间等。
3.LSP建立与维护
LSP的建立过程实际就是将FEC和标签进行绑定,并将这种绑定通告LSP上相邻LSR。这个过程是通过LDP实现的,主要步骤如下:
(1) 当网络的路由改变时,如果有一个边缘节点发现自己的路由表中出现了新的目的地地址,并且这一地址不属于任何现有的FEC,则该边缘节点需要为这一目的地址建立一个新的FEC。边缘LSR决定该FEC将要使用的路由,向其下游LSR发起标签请求消息,并指明是要为哪个FEC分配标签;
(2) 收到标签请求消息的下游LSR记录这一请求消息,根据本地的路由表找出对应该FEC的下一跳,继续向下游LSR发出标签请求消息;
(3) 当标签请求消息到达目的节点或MPLS网络的出口节点时,如果这些节点尚有可供分配的标签,并且判定上述标签请求消息合法,则该节点为FEC分配标签,并向上游发出标签映射消息,标签映射消息中包含分配的标签等信息;
(4) 收到标签映射消息的LSR检查本地存储的标签请求消息状态。对于某一FEC的标签映射消息,如果数据库中记录了相应的标签请求消息,LSR将为该FEC进行标签分配,并在其标签转发表中增加相应的条目,然后向上游LSR发送标签映射消息;
(5) 当入口LSR收到标签映射消息时,它也需要在标签转发表中增加相应的条目。这时,就完成了LSP的建立,接下来就可以对该FEC对应的数据分组进行标签转发了。
4.会话撤销
LDP通过检测会话连接上传输的LDP PDU来判断会话的完整性。
LSR为每个会话建立一个“生存状态”定时器,每收到一个LDP PDU时刷新该定时器。如果在收到新的LDP PDU之前定时器超时,LSR认为会话中断,对等关系失效。LSR将关闭相应的传输层连接,终止会话进程。
1.4.4 LDP环路检测
在MPLS域中建立LSP也要防止产生环路,LDP环路检测机制可以检测LSP环路的出现,并避免标签请求等消息发生环路。
LDP环路检测有两种方式:
1.最大跳数
在传递标签绑定的消息中包含跳数信息,每经过一跳该值就加一。当该值超过规定的最大值时认为出现环路,终止LSP的建立过程。
2.路径向量
在传递标签绑定的消息中记录路径信息,每经过一跳,相应的LSR就检查自己的ID是否在此记录中。如果没有,将自己的ID添加到该记录中;如果有,说明出现了环路,终止LSP的建立过程。
1.4.5 基于约束路由的LDP
MPLS还支持基于约束路由的LDP机制(CR-LDP,Constrain-based Routing LDP)。所谓CR-LDP,就是入口节点在发起建立LSP时,在标签请求消息中对LSP路由附加了一定的约束信息。这些约束信息可以是对沿途LSR的精确指定,即逐一指定LSP上的LSR,此时叫严格的显式路由;也可以是对选择下游LSR的模糊限制,即只指定LSP上的个别LSR,此时叫松散的显式路由。
1.5 MPLS与其他协议间的关系
1.5.1 MPLS与路由协议的关系
LDP通过逐跳方式建立LSP时,要利用沿途各LSR路由转发表中的信息来确定下一跳,而路由转发表中的信息一般是通过IGP、BGP等路由协议收集的。但是,LDP并不直接和各种路由协议有关联,只是间接使用路由信息。
另一方面,虽然LDP是专门用来实现标签分发的协议,但LDP并不是唯一的标签分发协议。对BGP、RSVP等已有协议进行扩展,也可以支持MPLS标签的分发。MPLS的一些应用也需要对某些路由协议进行扩展。例如,基于MPLS的VPN应用就需要对BGP协议进行扩展,以便BGP协议能传播VPN的路由信息;基于MPLS的流量工程TE(Traffic Engineering)需要对OSPF或IS-IS协议进行扩展,以便携带链路状态信息。
1.5.2 RSVP对MPLS的扩展
资
TAG:
标题搜索
日历
|
|||||||||
| 日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
| 1 | 2 | 3 | 4 | 5 | 6 | ||||
| 7 | 8 | 9 | 10 | 11 | 12 | 13 | |||
| 14 | 15 | 16 | 17 | 18 | 19 | 20 | |||
| 21 | 22 | 23 | 24 | 25 | 26 | 27 | |||
| 28 | 29 | 30 | |||||||
我的存档
数据统计
- 访问量: 135
- 日志数: 5
- 建立时间: 2005-09-07
- 更新时间: 2008-06-17

