国家 / 地区

08-MPLS配置指导

01-MPLS基础配置

本章节下载  (398.00 KB)

docurl=/cn/Service/Document_Software/Document_Center/Routers/Catalog/CR/CR19000/Configure/Operation_Manual/H3C_CR19000_CG-R2512-5W300/08/201907/1211482_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位于链路层和网络层之间,它可以建立在各种链路层协议(如以太网等)之上,为各种网络层(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)和出接口(GigabitEthernet1/2/0/2),为报文添加标签,并从相应的出接口将带有标签的报文转发给下一跳LSR。

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

(3)      Egress(Device D)接收到标签报文,根据报文上的标签(50)查找LFIB表获取报文的标签操作(删除标签)、下一跳LSR(Device E)和出接口(GigabitEthernet1/2/0/2),删除报文中的标签,从相应的出接口将不带标签的报文转发给下一跳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)      (可选)开启MPLS报文分片功能

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

(5)      (可选)控制MPLS标签范围

¡  配置设备的MPLS标签范围

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

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

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

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

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

(9)      (可选)配置LSP的MPLS标签转发统计功能

(10)   (可选)开启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,否则有可能导致数据转发失败。

如果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  开启MPLS报文分片功能

1. 功能简介

在MPLS组网环境或MPLS L3VPN组网环境中,当Transit LSR设备或P设备接收的MPLS报文长度大于出接口配置的MPLS MTU、IP MTU或接口MTU时:

·              若开启MPLS报文分片功能,则Transit LSR设备或P设备会对报文进行分片处理;

·              若未开启MPLS报文分片功能,则Transit LSR设备或P设备直接转发报文。

若在出接口配置两种或者两种以上的MTU时,它们的优先级关系为:MPLS MTU > IP MTU > 接口MTU。

2. 配置限制和指导

本功能只适用于MPLS组网环境中的Transit LSR设备和MPLS L3VPN组网环境中的P设备。

如果MPLS报文内封装的是L2VPN报文或IPv6报文,则即使开启本功能,在MPLS报文大于MTU的情况下也不会被分片。

3. 配置步骤

(1)      进入系统视图。

system-view

(2)      开启MPLS报文分片功能。

mpls fragment enable

缺省情况下,MPLS报文分片功能处于关闭状态。

1.6  配置设备作为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.7  配置设备的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. 配置限制和指导

修改标签范围后,如果原来被分配的标签不在当前配置的标签范围内,则这些标签的使用状态保持不变。当这些标签的使用状态变为Idle状态时,这些标签将不再被使用。

3. 配置步骤

(1)      进入系统视图。

system-view

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

mpls label range minimum maximum

缺省情况下,未配置设备MPLS标签范围。

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. 配置限制和指导

在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  配置LSP的MPLS标签转发统计功能

1. 功能简介

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

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

·              对于RSVP-TE隧道,通过mpls statistics命令开启MPLS标签转发统计功能后,会自动开启标签转发统计信息的收集功能,统计信息收集的时间间隔为30秒。使用mpls statistics interval命令可以修改统计信息收集的时间间隔。

·              对于其他类型的LSP,通过mpls statistics命令开启MPLS标签转发统计功能后,还必须执行mpls statistics interval命令开启统计信息收集功能,并设置统计信息收集的时间间隔。

2. 配置步骤

(1)      进入系统视图。

system-view

(2)      使能指定LSP的MPLS标签转发统计功能。

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

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

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

mpls statistics interval interval

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

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 | 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 ] [ chassis chassis-number slot slot-number [ cpu cpu-number ] ]

显示NHLFE表项信息

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

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

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

 

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