09-MPLS配置指导

01-MPLS基础配置

本章节下载 01-MPLS基础配置  (458.21 KB)

docurl=/cn/Service/Document_Software/Document_Center/Routers/Catalog/SR_Router/SR8800-F/Configure/Operation_Manual/H3C_SR8800-F_CG-R7951PXX-6W102/09/202008/1323162_30005_0.htm

01-MPLS基础配置


1 MPLS基础

1.1  MPLS简介

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

1.1.1  MPLS技术特点

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

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

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

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

1.1.2  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.3  MPLS网络结构

图1-3 MPLS网络结构

 

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

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

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

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

1.1.4  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.5  MPLS转发过程

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

 

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

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

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

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

1.1.6  倒数第二跳弹出

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

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

MPLS通过分配空标签实现倒数第二跳弹出。空标签分为:

·     隐式空标签:取值为3。当一个LSR发现下游LSR通告的标签为隐式空标签时,它并不用这个值替代栈顶原来的标签,而是直接弹出标签,并将报文转发给下游LSR(即Egress)。Egress接收到报文后,直接进行下一层的转发处理。

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

1.1.7  协议规范

与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配置任务简介

MPLS配置任务如下:

(1)     使能MPLS功能

(2)     (可选)配置MPLS MTU

(3)     (可选)配置设备作为Egress节点时为倒数第二跳分配的标签类型

(4)     (可选)配置设备可分配的最大标签值

当设备上使用了标签取值范围不同的接口板时,需要配置本命令。

(5)     (可选)开启MPLS Transit节点上基于带宽的负载分担功能

(6)     (可选)配置TTL复制

开启本功能后,Ingress节点会将原IP报文中的TTL值复制到MPLS标签的TTL域,借助IP tracert等工具,可以了解报文在MPLS网络中的转发路径。

(7)     (可选)使能MPLS的TTL超时消息发送功能

(8)     (可选)配置MPLS负载分担方式

(9)     (可选)开启MPLS模块的告警功能

1.3  使能MPLS功能

1. 配置限制和指导

在使能MPLS功能之前,需要配置单播静态路由或IGP协议,保证各LSR在网络层互通。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     配置本节点的LSR ID。

mpls lsr-id lsr-id

缺省情况下,未配置LSR ID。

LSR ID采用点分十进制格式,与IP地址格式相同。

LSR ID在MPLS网络内必须唯一,推荐使用Loopback接口的IP地址作为LSR ID。

(3)     进入需要转发MPLS报文的接口视图。

interface interface-type interface-number

(4)     使能接口的MPLS能力。

mpls enable

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

1.4  配置MPLS MTU

1. 功能简介

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

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

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

·     如果不允许分片,则直接转发。

2. 配置限制和指导

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

如果设备(例如P设备)在入接口收到的报文带有MPLS标签,则必须配置mpls l3vpn fragment enable命令,报文才会分片。有关mpls l3vpn fragment enable命令的详细介绍,请参见“MPLS命令参考”中的“MPLS L3VPN”。

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

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入接口视图。

interface interface-type interface-number

(3)     配置接口的MPLS MTU。

mpls mtu size

缺省情况下,未配置接口的MPLS MTU值。此时如果配置了IP MTU,则根据IP MTU进行分片;如果未配置IP MTU,则根据接口的MTU值进行分片。分片的长度不包含MPLS标签栈的长度,为分片添加MPLS标签栈后MPLS报文的长度可能会大于接口MTU的值。

1.5  配置设备作为Egress节点时为倒数第二跳分配的标签类型

1. 功能简介

请根据实际情况选择Egress节点为倒数第二跳分配的标签类型:

·     如果倒数第二跳节点支持PHP(Penultimate Hop Popping,倒数第二跳弹出)功能,则建议采用隐式空标签;

·     如果在简化Egress节点转发处理的同时,希望Egress节点能够根据标签中的TC等信息决定QoS策略,则建议采用显式空标签;

·     非空标签只使用在一些比较特殊的场景,比如Egress节点上部署了OAM,只有根据标签才能对应到OAM功能实体的情况,通常情况下不建议使用非空标签。

2. 配置限制和指导

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

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

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     配置设备作为Egress节点时为倒数第二跳分配的标签类型。

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

缺省情况下,Egress节点为倒数第二跳分配隐式空标签(implicit-null)。

1.6  配置设备的MPLS标签范围

1. 功能简介

本功能用来指定标签分发协议动态分配的标签范围。静态LSP标签、静态CRLSP标签、静态SRLSP标签、静态PW标签和SRGB(Segment Routing Global Block,分段路由全局标签段)标签不受本命令的控制。有关静态LSP标签的详细介绍,请参见“MPLS配置指导”中的“静态LSP”。有关静态CRLSP标签的详细介绍,请参见“MPLS配置指导”中的“静态CRLSP”。有关静态PW标签的详细介绍,请参见“MPLS配置指导”中的“VPLS”和“MPLS L2VPN”。有关静态SRLSP标签和SRGB的详细介绍,请参见“Segment Routing配置指导”中的“MPLS SR”。

2. 配置限制和指导

本功能配置的最小值必须小于mpls max-label命令配置的最大值。

设备可分配的最大标签值为本功能和mpls max-label命令配置的最大值中的较小值。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     配置设备MPLS标签范围。

mpls label range minimum maximum

未配置设备的MPLS标签范围。

1.7  配置设备可分配的最大标签值

1. 功能简介

当设备上使用了标签取值范围不同的接口板时,需要配置本功能。

本功能用来指定标签分发协议动态分配的标签最大值。静态LSP标签、静态CRLSP标签、静态SRLSP标签、静态PW标签和SRGB(Segment Routing Global Block,分段路由全局标签段)标签不受本命令的控制。有关静态LSP标签的详细介绍,请参见“MPLS配置指导”中的“静态LSP”。有关静态CRLSP标签的详细介绍,请参见“MPLS配置指导”中的“静态CRLSP”。有关静态PW标签的详细介绍,请参见“MPLS配置指导”中的“VPLS”和“MPLS L2VPN”。有关静态SRLSP标签和SRGB的详细介绍,请参见“Segment Routing配置指导”中的“MPLS SR”。

2. 配置限制和指导

配置的最大标签值应不大于当前设备上所有接口板支持的标签取值范围最大值中的最小值。

本功能配置的最大值必须大于mpls label range命令配置的最小值。

设备可分配的最大标签值为本功能和mpls label range命令配置的最大值中的较小值。

配置本功能后,需要保存配置并重启设备才能生效。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     配置设备可分配的最大标签值。

mpls max-label label-value

缺省情况下,未配置设备可分配的最大标签值。

1.8  开启MPLS Transit节点上基于带宽的负载分担功能

1. 功能简介

缺省情况下,当MPLS Transit节点上存在多条等价LDP LSP时,报文会在多个出接口上平均分配。开启Transit节点上基于带宽的负载分担功能后,则使用出接口的带宽值计算出各个接口应该分配的报文比例,然后按比例进行转发。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     开启MPLS Transit节点上基于带宽的负载分担功能。

mpls bandwidth-based-sharing

缺省情况下,MPLS Transit节点上基于带宽的负载分担功能处于关闭状态。

1.9  配置TTL复制

1. 功能简介

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复制功能时的处理过程

 

2. 配置限制和指导

使能或关闭TTL复制功能后,需要刷新路由。

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

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

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

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     使能TTL复制功能。

mpls ttl propagate { public | vpn }

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

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

1. 功能简介

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

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     使能MPLS的TTL超时消息发送功能。

mpls ttl expiration enable

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

1.11  配置MPLS负载分担方式

1. 功能简介

在MPLS L2VPN或VPLS组网环境中,使用L2VPN流标签功能,可以实现在P设备上针对同一PW的不同数据流进行负载分担。L2VPN流标签功能的配置方式和工作机制为:

l     在PE上通过flow-label命令配置L2VPN流标签功能后,PE在对数据报文进行封装时,会在私网标签后加入一个流标签字段,不同类型的数据流可以添加不同的流标签。有关flow-label命令的详细介绍,请参见“MPLS命令参考”中的“MPLS L2VPN”和“VPLS”。

·     在P设备上通过配置本功能,P设备将根据流标签进行负载分担。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     配置MPLS根据流标签逐流进行负载分担。

mpls load-sharing mode per-flow flow-label

缺省情况下,基于最外2层标签逐流进行负载分担,不足2层根据1层标签逐流进行负载分担。

1.12  开启MPLS模块的告警功能

1. 功能简介

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

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

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     开启MPLS模块的告警功能。

snmp-agent trap enable mpls

缺省情况下,MPLS模块的告警功能处于关闭状态。

1.13  MPLS显示和维护

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

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

表1-1 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 | isis | ldp | local | ospf | pce-sr | rsvp-te [ p2mp ] | 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 ]

 

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

联系我们