选择区域语言: EN CN HK

09-MPLS配置指导

01-MPLS基础配置

本章节下载  (430.79 KB)

docurl=/cn/Service/Document_Software/Document_Center/Routers/Catalog/SR_Router/SR6600-X/Configure/Operation_Manual/H3C_SR6600_SR6600-X_CG-R7612-6W100/09/201709/1030307_30005_0.htm

01-MPLS基础配置


1 MPLS基础

1.1  MPLS简介

MPLS(Multiprotocol Label Switching,多协议标签交换)是目前应用比较广泛的一种骨干网技术。MPLS在无连接的IP网络上引入面向连接的标签交换概念,将第三层路由技术和第二层交换技术相结合,充分发挥了IP路由的灵活性和二层交换的简洁性。

MPLS广泛应用于大规模网络中,它具有以下优点:

·     在MPLS网络中,设备根据短而定长的标签转发报文,省去了查找IP路由表的繁琐过程,为数据在骨干网络中的传送提供了一种高速高效的方式。

·     MPLS位于链路层和网络层之间,它可以建立在各种链路层协议(如PPP、ATM、帧中继、以太网等)之上,为各种网络层(IPv4、IPv6、IPX等)提供面向连接的服务。

·     支持多层标签和面向连接的特点,使得MPLS具有良好的扩展性,在MPLS网络基础上可以为客户提供各种服务。目前,MPLS在VPN、流量工程、QoS等方面得到广泛应用。

1.1.1  MPLS基本概念

1. 转发等价类

FEC(Forwarding Equivalence Class,转发等价类)是MPLS中的一个重要概念。MPLS将具有相同特征(目的地相同或具有相同服务等级等)的报文归为一类,称为FEC。属于相同FEC的报文在MPLS网络中将获得完全相同的处理。

2. 标签

标签是一个长度固定、只具有本地意义的标识符,用于唯一标识一个报文所属的FEC。一个标签只能代表一个FEC。

图1-1 标签的封装结构

 

图1-1所示,标签封装在链路层帧头和网络层报文头之间,长度为4个字节,由以下四个字段组成:

·     Label:标签值,长度为20bits,用来标识一个FEC。

·     TC(Traffic Class,流量等级):3bits,用于QoS。该字段又称为Exp字段。

·     S:标签栈底标识位,长度为1bit。MPLS支持多重标签,即在链路层帧头和网络层报文头之间可以封装多个标签,形成标签栈。靠近链路层帧头的最外层标签为栈顶标签;靠近网络层报文头的最内层标签为栈底标签。S位为1时表示为栈底标签;S位为0时表示为非栈底标签。

·     TTL:8bits,和IP报文中的TTL意义相同,可以用来防止环路。

3. 标签交换路由器

LSR(Label Switching Router,标签交换路由器)是具有标签分发能力和标签交换能力的设备,是MPLS网络中的基本元素。

4. 标签交换路径

属于同一个FEC的报文在MPLS网络中经过的路径称为LSP(Label Switched Path,标签交换路径)。

LSP是一条单向报文转发路径。在一条LSP上,沿数据传送的方向,相邻的LSR分别称为上游LSR和下游LSR。如图1-2所示,LSR B为LSR A的下游LSR,相应的,LSR A为LSR B的上游LSR。

图1-2 标签交换路径

 

5. 标签转发表

与IP网络中的FIB(Forwarding Information Base,转发信息库)类似,在MPLS网络中,LSR接收到带标签的报文后,通过查找LFIB(Label Forwarding Information Base,标签转发信息库)获取对应的标签操作类型、出标签值、下一跳等,以确定如何转发该报文。

6. 控制平面和转发平面

MPLS节点由两部分组成:

·     控制平面(Control Plane):负责标签的分配、FEC—标签映射的交换、标签转发表的建立、标签交换路径的建立、拆除等工作;

·     转发平面(Forwarding Plane):依据标签转发表对收到的报文进行转发。

1.1.2  MPLS网络结构

图1-3 MPLS网络结构

 

图1-3所示,MPLS网络的基本构成单元是LSR。MPLS网络包括以下几个组成部分:

·     入节点Ingress:报文的入口LSR,负责为进入MPLS网络的报文添加标签。

·     中间节点Transit:MPLS网络内部的LSR,根据标签沿着由一系列LSR构成的LSP将报文传送给出口LSR。

·     出节点Egress:报文的出口LSR,负责剥离报文中的标签,并转发给目的网络。

1.1.3  LSP建立

LSP的建立过程实际就是将FEC和标签进行绑定,在LSR上建立标签转发表的过程。LSP既可以通过手工配置的方式静态建立,也可以利用标签分发协议动态建立。

(1)     手工配置的方式建立静态LSP

建立静态LSP需要用户在报文转发路径中的各个LSR上手工配置为FEC分配的标签。建立静态LSP消耗的资源比较少,但静态建立的LSP不能根据网络拓扑变化动态调整。因此,静态LSP适用于拓扑结构简单并且稳定的小型网络。

(2)     利用标签分发协议动态建立LSP

标签分发协议是MPLS的信令协议,负责划分FEC、通告FEC—标签绑定、建立维护LSP等。标签分发协议的种类较多,有专为标签分发而制定的协议,如LDP(Label Distribution Protocol,标签分发协议),也有扩展后支持标签分发的协议,如MP-BGP、RSVP-TE。

说明

为了区分,本文中“标签分发协议”表示广义上所有用于标签分发的协议的总称;“LDP”表示RFC 5036规定的标签分发协议。

 

利用标签分发协议动态建立LSP的过程如图1-4所示。下游LSR根据目的地址划分FEC,为特定FEC分配标签,并将FEC—标签绑定关系通告给上游LSR;上游LSR根据该绑定关系建立标签转发表项。报文转发路径上的所有LSR都为该FEC建立对应的标签转发表项后,就成功地建立了用于转发属于该FEC报文的LSP。

图1-4 动态LSP建立过程

 

1.1.4  MPLS转发过程

图1-5 MPLS转发过程示意图

 

图1-5所示,MPLS网络中报文的基本转发过程为:

(1)     Ingress(Router B)接收到不带标签的报文,根据报文的目的IP地址查找FIB表获取报文的出标签(40)、下一跳LSR(Router C)和出接口(GigabitEthernet2/1/2),为报文添加标签,并从相应的出接口将带有标签的报文转发给下一跳LSR。

(2)     Router C根据报文上的标签(40)查找LFIB表获取报文的标签操作(交换标签)、出标签(50)、下一跳LSR(Router D)和出接口(GigabitEthernet2/1/2),用新的标签(50)替换原有标签后,从相应的出接口将带有标签的报文转发给下一跳LSR。

(3)     Egress(Router D)接收到标签报文,根据报文上的标签(50)查找LFIB表获取报文的标签操作(删除标签)、下一跳LSR(Router E)和出接口(GigabitEthernet2/1/2),删除报文中的标签,从相应的出接口将不带标签的报文转发给下一跳LSR。如果LFIB表项中没有记录下一跳和出接口,则根据IP报文头查FIB表转发该报文。

1.1.5  倒数第二跳弹出

MPLS网络中,Egress节点接收到带有标签的报文后,查找标签转发表,弹出报文中的标签后,再进行下一层的标签转发或IP转发。Egress节点转发报文之前要查找两次转发表:两次标签转发表,或一次标签转发表一次路由转发表。

为了减轻Egress节点的负担,提高MPLS网络对报文的处理能力,可以利用PHP(Penultimate Hop Popping,倒数第二跳弹出)功能,在倒数第二跳节点处将标签弹出,Egress节点只需查找一次转发表。

可以通过分配隐式空标签实现倒数第二跳弹出。隐式空标签的标签值为3,这个值不会出现在标签栈中。当一个LSR发现下游LSR通告的标签为隐式空标签时,它并不用这个值替代栈顶原来的标签,而是直接弹出标签,并将报文转发给下游LSR(即Egress)。Egress接收到报文后,直接进行下一层的转发处理。

使用隐式空标签时,倒数第二跳LSR弹出了标签栈,而在某些情况下,Egress需要根据标签栈中的TC等信息决定QoS策略,此时利用显式空标签就可以在保留标签栈信息的同时,简化Egress节点的转发处理。IPv4显式空标签的值为0。Egress为FEC分配IPv4显式空标签,并通告给上游LSR后,上游LSR用这个值替代栈顶原来的标签,并将报文转发给Egress。Egress收到标签值为0的报文时,不会查找标签转发表,从标签中获取TC等信息后,直接弹出标签栈,进行下一层的转发处理。

1.1.6  协议规范

与MPLS相关的协议规范有:

·     RFC 3031:Multiprotocol Label Switching Architecture

·     RFC 3032:MPLS Label Stack Encoding

·     RFC 5462:Multiprotocol Label Switching (MPLS) Label Stack Entry: "EXP" Field Renamed to "Traffic Class" Field

1.2  MPLS配置任务简介

表1-1 MPLS配置任务简介

配置任务

说明

详细配置

使能MPLS功能

必选

1.3 

配置MPLS MTU

可选

1.4 

配置Egress分配的标签类型

可选

1.5 

配置TTL复制

可选

1.6 

使能MPLS的TTL超时消息发送功能

可选

1.7 

配置MPLS转发统计功能

可选

1.8 

配置MPLS转发水平分割

可选

1.9 

开启告警功能

可选

1.10 

 

1.3  使能MPLS功能

1.3.1  配置准备

在使能MPLS功能之前,需要完成以下任务:

·     配置链路层协议,保证链路层通信正常。

·     配置接口的网络层地址,使各相邻节点网络层可达。

·     配置单播静态路由或IGP协议,保证各LSR在网络层互通。

1.3.2  使能MPLS功能

表1-2 使能MPLS功能

操作

命令

说明

进入系统视图

system-view

-

配置本节点的LSR ID

mpls lsr-id lsr-id

缺省情况下,未配置LSR ID

LSR ID在MPLS网络内必须唯一

LSR ID采用点分十进制格式,与IP地址格式相同。推荐使用Loopback接口的IP地址作为LSR ID

进入需要转发MPLS报文的接口视图

interface interface-type interface-number

-

使能接口的MPLS能力

mpls enable

缺省情况下,接口的MPLS能力处于关闭状态

 

1.4  配置MPLS MTU

提示

·     配置的MPLS MTU值大于接口MTU时,有可能导致数据转发失败。

·     如果MPLS报文内封装的是L2VPN报文或IPv6报文,则即使报文长度大于MPLS MTU,也会发送该报文,报文能否发送成功由接口的实际情况决定。

MPLS标签栈位于链路层帧头和网络层报文头之间。在MPLS转发过程中,虽然网络层报文长度小于接口的MTU,但是增加MPLS标签后,报文长度可能超过链路层允许发送的范围,从而导致报文无法正常转发。

为此,设备上定义了MPLS MTU,MPLS转发时将增加标签后的报文长度与MPLS MTU比较。报文长度大于MPLS MTU时:

·     如果允许分片,则LSR移除报文的标签栈,对IP报文进行分片(分片大小为MPLS MTU值减去标签栈的长度),分片后将被移除的标签栈添加到每个分片上,再进行转发;

·     如果不允许分片,则直接丢弃报文。

表1-3 配置MPLS MTU

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

配置接口的MPLS MTU

mpls mtu size

缺省情况下,未配置接口的MPLS MTU值

如果未配置接口的MPLS MTU值,则根据接口的MTU值进行分片,分片的长度不包含MPLS标签栈长度,为分片添加MPLS标签栈后MPLS报文的长度可能会大于接口MTU的值,导致MPLS报文发送失败

 

1.5  配置Egress分配的标签类型

提示

·     对于LDP LSP,执行mpls label advertise命令修改Egress分配的标签类型后,已经建立的LDP LSP会被拆除,并根据新的标签类型重新建立。

·     对于BGP LSP,mpls label advertise命令只对新建立的BGP LSP生效,执行本命令前已经建立的BGP LSP不受影响。若要使本命令对已经建立的BGP LSP生效,则需要从BGP路由表中删除BGP LSP对应的路由,并重新引入该路由。

 

MPLS网络中,Egress分配的标签类型分为以下几种:

·     隐式空标签:标签值为3。

·     显式空标签:标签值为0。

·     非空标签:标签值的取值范围为16~165631。

对于采用标签分发协议动态建立的LSP,Egress分配的标签类型决定了倒数第二跳转发带标签报文的方式:

·     如果分配的是隐式空标签,则倒数第二跳根据标签找到下一跳转发信息后,直接弹出标签。

·     如果分配的是显式空标签,则倒数第二跳将标签值替换为显式空标签。

·     如果分配的是非空标签,则倒数第二跳将标签值替换为Egress分配的标签值。

请根据实际情况选择Egress节点分配的标签类型:如果倒数第二跳节点支持PHP(Penultimate Hop Popping,倒数第二跳弹出)功能,则建议采用隐式空标签;如果在简化Egress节点转发处理的同时,希望Egress节点能够根据标签中的TC等信息决定QoS策略,则建议采用显式空标签;非空标签只使用在一些比较特殊的场景,比如Egress节点上部署了OAM,只有根据标签才能对应到OAM功能实体的情况,通常情况下不建议使用非空标签。

设备作为倒数第二跳节点时,允许Egress节点向其通告显式空标签、隐式空标签和非空标签。

表1-4 配置Egress分配的标签类型

操作

命令

说明

进入系统视图

system-view

-

配置设备作为Egress节点时分配的标签类型,即向倒数第二跳通告的标签类型

mpls label advertise { explicit-null | implicit-null | non-null }

缺省情况下,Egress节点向倒数第二跳通告隐式空标签(implicit-null

 

1.6  配置TTL复制

提示

·     建议在LSP经过的LSR上配置相同的TTL域处理方式。

·     如果配置mpls ttl propagate vpn命令使能对VPN报文的TTL复制功能,则建议在同一个VPN的所有PE上都使能此功能,以保证不同的PE上执行Tracert得到的结果一致。

 

IP报文进入MPLS网络和IP报文离开MPLS网络时,TTL的处理方式分为以下几种:

·     使能TTL复制功能:Ingress节点为IP报文压入标签时,将原IP报文中的TTL值复制到新增加的标签的TTL域。LSR转发标签报文时,对标签的TTL值做减一操作。LSR弹出报文的标签时,将标签的TTL值复制回IP报文。使用这种方式时,MPLS骨干网中的节点对用户网络的报文可见。报文沿着LSP传输的过程中,TTL逐跳递减,Tracert的结果将反映报文实际经过的路径。

图1-6 使能TTL复制功能时的处理过程

 

·     未使能TTL复制功能:Ingress节点为IP报文压入标签时,不会将原IP报文中的TTL值复制到新增加的标签的TTL域,标签的TTL取值为255。LSR转发标签报文时,对标签的TTL值做减一操作。LSR弹出标签时,不修改IP TTL的值。使用这种方式时,MPLS骨干网中的节点对用户网络的报文不可见。Tracert的结果不包括MPLS骨干网络中的每一跳,从而隐藏MPLS骨干网络的结构。

图1-7 未使能TTL复制功能时的处理过程

 

表1-5 配置TTL复制功能

操作

命令

说明

进入系统视图

system-view

-

使能TTL复制功能

mpls ttl propagate { public | vpn }

缺省情况下,对于通过公网进行转发的报文,TTL复制功能处于开启状态;对于通过VPN进行转发的报文,TTL复制功能处于关闭状态

在MPLS网络内部,MPLS报文多层标签之间的TTL值总是互相复制。本命令只决定是否将IP TTL复制到标签的TTL域、是否将标签的TTL复制到IP的TTL域

 

1.7  使能MPLS的TTL超时消息发送功能

使能MPLS的TTL超时消息发送功能后,当LSR收到TTL为1的MPLS报文时,LSR会生成ICMP的TTL超时消息。对于一层标签的MPLS报文,LSR沿着本地IP路由返回ICMP TTL超时消息;对于多层标签的MPLS报文,LSR沿着发送MPLS报文的LSP转发ICMP TTL超时消息,由Egress节点将该消息返回给发送者。

表1-6 配置MPLS的TTL超时消息发送功能

操作

命令

说明

进入系统视图

system-view

-

使能MPLS的TTL超时消息发送功能

mpls ttl expiration enable

缺省情况下,MPLS的TTL超时消息发送功能处于开启状态

 

1.8  配置MPLS转发统计功能

1.8.1  配置FTN转发统计功能

FTN(FEC to NHLFE map,FEC到NHLFE表项的映射)表项是一类特殊的FIB表项,该类FIB表项中包含出标签值信息。FTN转发是指接收到不带标签的报文,该报文的目的IP地址匹配FTN表项,为报文添加FTN表项中的出标签值后转发该报文。本配置用来开启FTN转发的统计功能。开启该功能后可通过MIB查看统计信息。

表1-7 配置FTN转发统计功能

操作

命令

说明

进入系统视图

system-view

-

进入RIB视图

rib

-

创建RIB IPv4地址族,并进入RIB IPv4地址族视图

address-family ipv4

缺省情况下,没有创建RIB IPv4地址族

开启RIB的FTN表项维护功能

ftn enable

缺省情况下,RIB的FTN表项维护功能处于关闭状态

使能指定目的网络的FTN转发统计功能

mpls-forwarding statistics prefix-list prefix-list-name

缺省情况下,所有目的网络的FTN转发统计功能均处于关闭状态

 

1.8.2  配置MPLS标签转发统计功能

MPLS标签转发是指接收到带有标签的报文后,根据报文中的入标签转发该报文。

本配置用来开启MPLS标签转发统计功能和统计信息收集功能,以便用户通过display mpls lsp verbose命令查看MPLS标签的转发统计信息。

表1-8 配置MPLS标签转发统计功能

操作

命令

说明

进入系统视图

system-view

-

使能指定LSP的MPLS标签转发统计功能

mpls statistics { all | [ vpn-instance vpn-instance-name ] { ipv4 ipv4-address mask-length | ipv6 ipv6-address prefix-length } | static | te ingress-lsr-id tunnel-id }

缺省情况下,所有LSP的MPLS标签转发统计功能均处于关闭状态

使能MPLS标签转发统计信息的收集功能,并设置统计信息收集的时间间隔

mpls statistics interval interval

缺省情况下,MPLS标签转发统计信息收集功能处于关闭状态

 

1.9  配置MPLS转发水平分割

通过配置MPLS转发的水平分割功能,可使从一个接口收到的MPLS报文不再从该接口向外发送,用于避免环路。

表1-9 配置MPLS转发水平分割

操作

命令

说明

进入系统视图

system-view

-

开启MPLS转发的水平分割功能

mpls forwarding split-horizon

缺省情况下,MPLS转发的水平分割功能处于关闭状态

 

1.10  开启告警功能

开启MPLS模块的告警功能后,该模块会生成告警信息,用于报告该模块的重要事件。生成的告警信息将发送到设备的SNMP模块,通过设置SNMP中告警信息的发送参数,来决定告警信息输出的相关属性。

有关告警信息的详细介绍,请参见“网络管理和监控配置指导”中的“SNMP”。

表1-10 开启告警功能

操作

命令

说明

进入系统视图

system-view

-

开启MPLS模块的告警功能

snmp-agent trap enable mpls

缺省情况下,MPLS模块的告警功能处于开启状态

 

1.11  MPLS显示和维护

在完成上述配置后,在任意视图下执行display命令可以显示配置后MPLS的运行情况,用户可以通过查看显示信息验证配置的效果。

在用户视图下执行reset命令可以清除MPLS统计信息。

表1-11 MPLS显示和维护

操作

命令

显示使能了MPLS能力接口的MPLS相关信息

display mpls interface [ interface-type interface-number ]

显示MPLS标签的使用状态

display mpls label { label-value1 [ to label-value2 ] | all }

显示LSP信息

display mpls lsp [ egress | in-label label-value | ingress | outgoing-interface interface-type interface-number | protocol { bgp | ldp | local | rsvp-te | static | static-cr } | transit  ] [ vpn-instance vpn-instance-name ] [ ipv4-address mask-length | ipv6 [ ipv6-address prefix-length ] ] [ verbose ]

显示MPLS的NIB(Nexthop Information Base,下一跳信息库)信息

display mpls nib [ nib-id ]

显示MPLS NHLFE表项索引的使用状态

display mpls nid [ nid-value1 [ to nid-value2 ] ]

显示LSP的统计信息

display mpls lsp statistics [ ipv6 ]

显示MPLS汇总信息

display mpls summary

显示ILM表项信息(独立运行模式)

display mpls forwarding ilm [ label ] [ slot slot-number ]

显示ILM表项信息(IRF模式)

display mpls forwarding ilm [ label ] [ chassis chassis-number slot slot-number ]

显示NHLFE表项信息(独立运行模式)

display mpls forwarding nhlfe [ nid ] [ slot slot-number ]

显示NHLFE表项信息(IRF模式)

display mpls forwarding nhlfe [ nid ] [ chassis chassis-number slot slot-number ]

清除指定LSP的MPLS转发统计信息

reset mpls statistics { all | [ vpn-instance vpn-instance-name ] { ipv4 ipv4-address mask-length | ipv6 ipv6-address prefix-length } | static | te ingress-lsr-id tunnel-id }

 

不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!