本章节下载(1.1 MB)
目 录
3.4.2 采用GRE隧道的BGP/MPLS VPN配置举例
4.6.2 ATM信元透传one-to-one的VCC模式配置
4.6.3 ATM信元透传one-to-one的VPC模式配置
4.8.4 Kompella方式MPLS L2VPN的典型配置举例
MPLS(Multiprotocol Label Switching)是多协议标签交换的简称,它用短而定长的标签来封装网络层分组。MPLS从各种链路层(如PPP、ATM、帧中继、以太网等)得到链路层服务,又为网络层提供面向连接的服务。MPLS能从IP路由协议和控制协议中得到支持,同时,还支持基于策略的约束路由,它路由功能强大、灵活,可以满足各种新应用对网络的要求。这种技术起源于IPv4,但其核心技术可扩展到多种网络协议(IPv6、IPX等)。
MPLS最初是为提高路由器的转发速度而提出一个协议,但是,它的用途已不仅仅局限于此,而是广泛地应用于流量工程(Traffic Engineering)、VPN、QoS等方面,从而日益成为大规模IP网络的重要标准。
FEC(Forwarding Equivalence Class)是MPLS中的一个重要概念。MPLS实际上是一种分类转发技术,它将具有相同转发处理方式(目的地相同、使用转发路径相同、具有相同的服务等级等)的分组归为一类,称为转发等价类。一般来说,划分分组的FEC是根据他的网络层目的地址。属于相同转发等价类的分组在MPLS网络中将获得完全相同的处理。
标签为一个长度固定、具有本地意义的短标识符,用于标识一个FEC(Forwarding Equivalence Class)。当分组到达MPLS网络入口时,它将按一定规则被划归不同的FEC,根据分组所属的FEC,将相应的标签封装在分组中,这样,在网络中,按标签进行分组转发即可。
标签的结构如图1-1所示。
![]()
标签位于链路层包头和网络层分组之间,长度为4个字节。标签共有4个域:
Label:标签值字段,长度为20bits,用于转发的指针。
Exp:3bits,保留,协议中没有明确规定,通常用于COS。
S:1bit,MPLS支持标签的分层结构,即多重标签。值为1时表明为最底层标签。
TTL:8bits,和IP分组中的TTL意义相同。
(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中保存较少的标签数量时,可使用保守标签保持方式。
标签分发协议LDP(Label Distribution Protocol)是MPLS中的信令控制协议,是控制LSR之间交换标签与FEC绑定,协调LSR间工作的一系列规程。
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-3 MPLS基本原理
LSP的建立其实就是将FEC和标签进行绑定,并将这种绑定通告LSP上相邻LSR的过程。这个过程是通过标签分发协议LDP来实现的。LDP规定了LSR间的消息交互过程和消息结构,以及路由选择方式。有关LDP的详细描述,请参见下一节。
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-4 LSP隧道
在上图中,LSP<R2 R21 R22 R3>就是R2、R3间的一条隧道。
在MPLS中,分组可以携带多个标签,这些标签在分组中以“堆栈”的形式存在,对堆栈的操作按“后进先出”的原则,决定如何转发分组的标签始终是栈顶标签。标签入栈是指向输出分组中加入一个标签,使标签栈的深度加1,同时,分组的当前标签就变为此新加入的标签;标签出栈是指从分组中去掉一个标签,使标签栈的深度减1,同时,分组的当前标签将变为原来处于下一层的标签。
在LSP隧道中会使用多层标签栈。当分组在LSP隧道中传送时,分组的标签就会有多层。在每一隧道的入口和出口处,要进行标签栈的入栈和出栈操作,每发生一次入栈操作,标签就会增加一层。MPLS对标签栈的深度没有限制。
标签栈按照“后进先出”方式组织标签,MPLS从栈顶开始处理标签。
若一个分组的标签栈深度为m,则位于栈底的标签为1级标签,位于栈顶的标签为m级标签。未打标签的分组可看作标签栈为空(即标签栈深度为零)的分组。
在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段长度的值。
在MPLS网络中,当报文的长度超过了路由器出接口所设置的MTU值时,若想使报文顺利的传输,需要将MPLS报文的标签剥去,对IP报文进行分片,然后分别为每一个分片都封装原有的标签后进行传输。
但如果IP报文中设置了不允许分片的标记,则向发送报文的源端回送ICMP Unreach报文,并丢弃源报文。出接口的MTU将被填入ICMP报文中,如果设备上配置了mtu label-including命令,在生成报文的时候,应将报文中的出接口MTU字段减去MPLS标签长度(可能有多层标签)。

图1-5 ICMP 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的方向。
LDP协议规定标签分发过程中的各种消息以及相关的处理进程。
通过LDP,LSR可以把网络层的路由信息直接映射到数据链路层的交换路径上,进而建立起网络层上的LSP。LSP既可以建立在两个相邻的LSR之间,也可以终止于网络出口节点,从而在网络中所有中间节点上都使用标签交换。
LDP对等体是指相互之间存在LDP会话、使用LDP来交换标签/FEC映射关系的两个LSR。
两个LDP对等体可以同时通过一个LDP会话获得对方的标签映射消息,即,LDP协议是双向的。
LDP会话用于在LSR之间交换标签映射、释放等消息。LDP会话可以分为两种类型:
l 本地LDP会话(Local LDP Session):建立会话的两个LSR之间是直连的;
l 远端LDP会话(Remote LDP Session):建立会话的两个LSR之间是非直连的;
LDP协议主要使用四种消息:
l 发现(Discovery)消息:用于通告和维护网络中LSR的存在;
l 会话(Session)消息:用于建立、维护和终止LDP对等体之间的会话连接;
l 通告(Advertisement)消息:用于创建、改变和删除标记—FEC绑定;
l 通知(Notification)消息:用于提供建议性的消息和差错通知。
LDP对等体之间分配标签的范围称为标签空间。可以为LSR的每个接口指定一个标签空间,也可以整个LSR使用一个标签空间。
LDP标识符用于标识特定LSR的标签空间范围,是一个六字节的数值,格式如下:
<IP地址>:<标签空间序号>
其中,四字节的IP地址是LSR的IP地址,标签空间序号占两字节。
下图为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保存标签映射信息,并根据路由表信息来处理收到的标签映射信息。
按照先后顺序,LDP的操作主要包括以下四个阶段:
l 发现阶段
l 会话建立与维护
l LSP建立与维护
l 会话撤销
在这一阶段,希望建立会话的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希望使用的标签空间和其它可选信息。
对等关系建立之,LSR开始建立会话。这一过程又可分为两步:
l