MPLS体系结构(一)

上一篇 / 下一篇  2008-06-17 12:19:10

  MPLS体系结构---转自H3C

1.1 MPLS概述

MPLSMultiprotocol Label Switching)是多协议标签交换的简称,它用短而定长的标签来封装网络层分组。MPLS从各种链路层(如PPPATM、帧中继、以太网等)得到链路层服务,又为网络层提供面向连接的服务。MPLS能从IP路由协议和控制协议中得到支持,同时,还支持基于策略的约束路由,它路由功能强大、灵活,可以满足各种新应用对网络的要求。这种技术起源于IPv4,但其核心技术可扩展到多种网络协议(IPv6IPX等)。

MPLS最初是为提高路由器的转发速度而提出一个协议,但是,它的用途已不仅仅局限于此,而是广泛地应用于流量工程(Traffic Engineering)、VPNQoS等方面,从而日益成为大规模IP网络的重要标准。

1.2 基本概念

1.2.1 转发等价类(FEC

FECForwarding Equivalence Class)是MPLS中的一个重要概念。MPLS实际上是一种分类转发技术,它将具有相同转发处理方式(目的地相同、使用转发路径相同、具有相同的服务等级等)的分组归为一类,称为转发等价类。一般来说,划分分组的FEC是根据他的网络层目的地址。属于相同转发等价类的分组在MPLS网络中将获得完全相同的处理。

1.2.2 标签

1.标签的定义

标签为一个长度固定、具有本地意义的短标识符,用于标识一个FECForwarding Equivalence Class)。当分组到达MPLS网络入口时,它将按一定规则被划归不同的FEC,根据分组所属的FEC,将相应的标签封装在分组中,这样,在网络中,按标签进行分组转发即可。

2.标签的结构

标签的结构如1-1所示。

图1-1标签的结构

标签位于链路层包头和网络层分组之间,长度为4个字节。标签共有4个域:

Label:标签值字段,长度为20bits,用于转发的指针。

Exp3bits,保留,协议中没有明确规定,通常用于COS

S1bitMPLS支持标签的分层结构,即多重标签。值为1时表明为最底层标签。

TTL8bits,和IP分组中的TTL意义相同。

3.标签的操作

(1)       标签映射

标签映射分为两种,一种是入口路由器处的标签映射,另一种是MPLS域内的标签映射。

入口路由器处的标签映射为ingress LSR依据一定的原则对输入分组进行划分,得到多个FEC,接着将有关标签与这些FEC进行映射,并记录在相应的数据库LIBLabel Information Base)中。简单地说,就是将一个标签指派给FEC,就称为“标签映射”。

MPLS域内的标签映射又称为输入标签映射ILMIncoming Label Map),即将每个输入标签映射到一系列NHLFENext Hop Label Forwarding Entry)上,然后,根据映射结果,将分组沿各通路进行转发。

(2)       标签的封装

标签在各种介质中的封装如下图所示:

图1-2标签在分组中的封装位置

对于以太网、PPP的分组,标签堆栈象“垫层”一样,位于二层报头与数据之间,对于ATM信元模式的分组,借用VPI/VCI来作为标签使用。

(3)       标签分配和分发

标签分发是为某FEC建立相应标签交换路径LSP的过程。

MPLS体系中,将特定标签分配给特定FEC(即标签绑定)的决定由下游LSR作出,下游LSR随后通知上游LSR。即标签由下游指定,分配的标签按照从下游到上游的方向分发。

MPLS中使用的标签分发方式有两种:下游自主标签分发方式(DUDownstream Unsolicited)和下游按需标签分发方式(DoDDownstream On Demand)。

l             对于一个特定的FECLSR无须从上游获得标签请求消息即进行标签分配与分发的方式,称为下游自主标签分配。

l             对于一个特定的FECLSR获得标签请求消息之后才进行标签分配与分发的方式,称为下游按需标签分配。

具有标签分发邻接关系的上游LSR和下游LSR之间,必须对使用哪种标签分发方式达成一致。

LSR将标签分发给其对等体时,可以采用LDP消息进行传送,也可以将标签搭载在其他路由协议消息上。

& 说明:

上游和下游是相对而言的,对于一个报文转发过程来说,发送方的路由器是上游LSR,接收方是下游LSR

 

(4)       标签分配控制方式

标签分配控制方式分为两种:独立(Independent)标签分配控制方式和有序(ordered)标签分配控制方式。

当使用独立标签分配控制方式时,每个LSR可以在任意时间向和它连接的LSR通告标签映射。

当使用有序标签分配控制方式时,只有当LSR收到某一特定FEC下一跳的特定标签映射消息或者LSRLSP的出口节点时,LSR才可以向上游发送标签映射消息。

(5)       标签保持方式

标签保持方式分为两种:自由标签保持方式和保守标签保持方式。

假设两台路由器RuRd,对于特定的一个FEC,如果LSR Ru收到了来自LSR Rd的标签绑定,当Rd不是Ru的下一跳时,如果Ru保存该绑定,则称Ru使用的是自由标签保持方式;如果Ru丢弃该绑定,则称Ru使用的是保守标签保持方式。

当要求LSR能够迅速适应路由变化时,可使用自由标签保持方式;当要求LSR中保存较少的标签数量时,可使用保守标签保持方式。

1.2.3 标签分发协议(LDP

标签分发协议LDPLabel Distribution Protocol)是MPLS中的信令控制协议,是控制LSR之间交换标签与FEC绑定,协调LSR间工作的一系列规程。

1.3 MPLS体系结构

1.3.1 MPLS网络结构

MPLS网络的基本构成单元是标签交换路由器LSRLabel Switching Router),主要运行MPLS控制协议和第三层路由协议,并负责与其他LSR交换路由信息来建立路由表,实现FECIP分组头的映射,建立FEC和标签之间的绑定,分发标签绑定信息,建立和维护标签转发表等工作。

LSR构成的网络叫做MPLS域,位于区域边缘的LSR称为边缘LSRLERLabeled Edge Router),主要完成连接MPLS域和非MPLS域以及不同MPLS域的功能,并实现对业务的分类、分发标签(作为出口LER)、剥去标签等。其中入口LERIngress,出口LEREgress

位于区域内部的LSR则称为核心LSR,核心LSR可以是支持MPLS的路由器,也可以是支持MPLS标签交换的LSR,它提供标签分发、交换功能(Label Swapping)。带标签的分组沿着由一系列LSR构成的标签交换路径LSPLabel 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 RuLSR Rd互为上下游,但LSR RuLSR Rd之间的路径,可能并不是路由协议所提供路径的一部分,MPLS允许在LSR RuLSR Rd间建立一条新的LSP路径<Ru R1...Rn Rd>LSR RuLSR Rd分别为这条LSP的起点和终点。LSR RuLSR Rd间的LSP就是LSP隧道,它避免了传统的网络层封装隧道。当隧道经由的路由和逐跳与从路由协议取得的路由一致时,这种隧道叫逐跳路由隧道;若不一致,则这种隧道叫显式路由隧道。

图1-4LSP隧道

在上图中,LSP<R2 R21 R22 R3>就是R2R3间的一条隧道。

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上,都已建立了输入/输出标签的映射表(该表的元素叫下一跳标签转发条目,简称NHLFENext Hop Label Forwarding Entry)。对于接收到的标签分组,LSR只需根据标签从表中找到相应的NHLFE,并用新的标签来替换原来的标签,然后,对标签分组进行转发,这个过程叫输入标签映射ILMIncoming Label Map)。

MPLS在网络入口处指定特定分组的FEC,后续P路由器只需简单的转发即可,比常规的网络层转发要简单得多,转发速度得以提高。

& 说明:

TTL处理:

标签化分组时必须将原IP分组中的TTL值拷贝到标签中的TTL域。LSR在转发标签化分组时,要对栈顶标签的TTL域作减一操作。标签出栈时,再将栈顶的TTL值拷贝回IP分组或下层标签。

但是,当LSP穿越由ATM-LSRFR-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协议规定标签分发过程中的各种消息以及相关的处理进程。

通过LDPLSR可以把网络层的路由信息直接映射到数据链路层的交换路径上,进而建立起网络层上的LSPLSP既可以建立在两个相邻的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地址是LSRIP地址,标签空间序号占两字节。

1.4.2 LDP工作过程

下图为LDP标签分发示意。

图1-6标签分发过程

在一条LSP上,沿数据传送的方向,相邻的LSR分别称为上游LSR和下游LSR。例如,在上图中的LSP1LSR BLSR C的上游LSR

标签的分发过程有下游按需标签分发DoD和下游自主标签分发DU两种模式,它们的主要区别在于标签映射的发布是上游请求还是下游主动发布。下面分别描述这两种模式的标签分发过程:

(1)       DoDdownstream-on-demand)模式

上游LSR向下游LSR发送标签请求消息(包含FEC的描述信息),下游LSR为此FEC分配标签,并将绑定的标签通过标签映射消息反馈给上游LSR

下游LSR何时反馈标签映射消息,取决于该LSR采用独立标签控制方式还是有序标签控制方式。采用有序标签控制方式时,只有收到它的下游返回的标签映射消息后,才向其上游发送标签映射消息;采用独立标签控制方式时,不管有没有收到它的下游返回的标签映射消息,都立即向其上游发送标签映射消息。

上游LSR一般是根据其路由表中的信息来选择下游LSR。在图1-4中,LSP1沿途的LSR都采用有序标签控制方式,LSP2上的LSR F则采用独立标签控制方式。

(2)       DUdownstream unsolicited)模式

下游LSRLDP会话建立成功后,主动向其上游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-LDPConstrain-based Routing LDP)。所谓CR-LDP,就是入口节点在发起建立LSP时,在标签请求消息中对LSP路由附加了一定的约束信息。这些约束信息可以是对沿途LSR的精确指定,即逐一指定LSP上的LSR,此时叫严格的显式路由;也可以是对选择下游LSR的模糊限制,即只指定LSP上的个别LSR,此时叫松散的显式路由。

1.5 MPLS与其他协议间的关系

1.5.1 MPLS与路由协议的关系

LDP通过逐跳方式建立LSP时,要利用沿途各LSR路由转发表中的信息来确定下一跳,而路由转发表中的信息一般是通过IGPBGP等路由协议收集的。但是,LDP并不直接和各种路由协议有关联,只是间接使用路由信息。

另一方面,虽然LDP是专门用来实现标签分发的协议,但LDP并不是唯一的标签分发协议。对BGPRSVP等已有协议进行扩展,也可以支持MPLS标签的分发。MPLS的一些应用也需要对某些路由协议进行扩展。例如,基于MPLSVPN应用就需要对BGP协议进行扩展,以便BGP协议能传播VPN的路由信息;基于MPLS的流量工程TETraffic Engineering)需要对OSPFIS-IS协议进行扩展,以便携带链路状态信息。

1.5.2 RSVPMPLS的扩展


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar