01-MPLS基础配置
本章节下载: 01-MPLS基础配置 (438.91 KB)
目 录
MPLS(Multiprotocol Label Switching,多协议标签交换)是目前应用比较广泛的一种骨干网技术。MPLS在无连接的IP网络上引入面向连接的标签交换概念,将第三层路由技术和第二层交换技术相结合,充分发挥了IP路由的灵活性和二层交换的简洁性。
MPLS广泛应用于大规模网络中,它具有以下优点:
· 在MPLS网络中,设备根据短而定长的标签转发报文,省去了查找IP路由表的繁琐过程,为数据在骨干网络中的传送提供了一种高速高效的方式。
· MPLS位于链路层和网络层之间,它可以建立在各种链路层协议(如PPP、ATM、帧中继、以太网等)之上,为各种网络层(IPv4、IPv6、IPX等)提供面向连接的服务。
· 支持多层标签和面向连接的特点,使得MPLS具有良好的扩展性,在MPLS网络基础上可以为客户提供各种服务。目前,MPLS在VPN、流量工程、QoS等方面得到广泛应用。
FEC(Forwarding Equivalence Class,转发等价类)是MPLS中的一个重要概念。MPLS将具有相同特征(目的地相同或具有相同服务等级等)的报文归为一类,称为FEC。属于相同FEC的报文在MPLS网络中将获得完全相同的处理。
标签是一个长度固定、只具有本地意义的标识符,用于唯一标识一个报文所属的FEC。一个标签只能代表一个FEC。
如图1-1所示,标签封装在链路层帧头和网络层报文头之间,长度为4个字节,由以下四个字段组成:
· Label:标签值,长度为20bits,用来标识一个FEC。
· TC(Traffic Class,流量等级):3bits,用于QoS。该字段又称为Exp字段。
· S:标签栈底标识位,长度为1bit。MPLS支持多重标签,即在链路层帧头和网络层报文头之间可以封装多个标签,形成标签栈。靠近链路层帧头的最外层标签为栈顶标签;靠近网络层报文头的最内层标签为栈底标签。S位为1时表示为栈底标签;S位为0时表示为非栈底标签。
· TTL:8bits,和IP报文中的TTL意义相同,可以用来防止环路。
LSR(Label Switching Router,标签交换路由器)是具有标签分发能力和标签交换能力的设备,是MPLS网络中的基本元素。
属于同一个FEC的报文在MPLS网络中经过的路径称为LSP(Label Switched Path,标签交换路径)。
LSP是一条单向报文转发路径。在一条LSP上,沿数据传送的方向,相邻的LSR分别称为上游LSR和下游LSR。如图1-2所示,LSR B为LSR A的下游LSR,相应的,LSR A为LSR B的上游LSR。
与IP网络中的FIB(Forwarding Information Base,转发信息库)类似,在MPLS网络中,LSR接收到带标签的报文后,通过查找LFIB(Label Forwarding Information Base,标签转发信息库)获取对应的标签操作类型、出标签值、下一跳等,以确定如何转发该报文。
MPLS节点由两部分组成:
· 控制平面(Control Plane):负责标签的分配、FEC—标签映射的交换、标签转发表的建立、标签交换路径的建立、拆除等工作;
· 转发平面(Forwarding Plane):依据标签转发表对收到的报文进行转发。
如图1-3所示,MPLS网络的基本构成单元是LSR。MPLS网络包括以下几个组成部分:
· 入节点Ingress:报文的入口LSR,负责为进入MPLS网络的报文添加标签。
· 中间节点Transit:MPLS网络内部的LSR,根据标签沿着由一系列LSR构成的LSP将报文传送给出口LSR。
· 出节点Egress:报文的出口LSR,负责剥离报文中的标签,并转发给目的网络。
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-5 MPLS转发过程示意图
如图1-5所示,MPLS网络中报文的基本转发过程为:
(1) Ingress(Device B)接收到不带标签的报文,根据报文的目的IP地址查找FIB表获取报文的出标签(40)、下一跳LSR(Device C)和出接口(GigabitEthernet1/0/2),为报文添加标签,并从相应的出接口将带有标签的报文转发给下一跳LSR。
(2) Device C根据报文上的标签(40)查找LFIB表获取报文的标签操作(交换标签)、出标签(50)、下一跳LSR(Device D)和出接口(GigabitEthernet1/0/2 ),用新的标签(50)替换原有标签后,从相应的出接口将带有标签的报文转发给下一跳LSR。
(3) Egress(Device D)接收到标签报文,根据报文上的标签(50)查找LFIB表获取报文的标签操作(删除标签)、下一跳LSR(Device E)和出接口(GigabitEthernet1/0/2),删除报文中的标签,从相应的出接口将不带标签的报文转发给下一跳LSR。如果LFIB表项中没有记录下一跳和出接口,则根据IP报文头查FIB表转发该报文。
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等信息后,直接弹出标签栈,进行下一层的转发处理。
与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
· 下列SG系列接口板暂不支持PHP功能:LSUM1QGS12SG0、LSUM1TGS48SG0。
· 下列接口板仅在业务板的工作模式配置为bridging或者normal时支持PHP功能,有关业务板的工作模式的详细介绍,请参见“基础配置指导”中的“设备管理配置”。
¡ SD系列接口板
¡ 下列SE系列接口板:LSU1GP24TXSE0、LSU1GT48SE0、LSU1GP48SE0、LSU1TGX4SE0、LSU1GP24TSE0
¡ 下列EA系列接口板:LSU1GP24TXEA0、LSU1GP48EA0、LSU1GT48EA0、LSU1TGX4EA0
¡ 下列EB系列接口板:LSU1GP48EB0、LSU1GP24TXEB0、LSU1TGX4EB0
· 当前,交换机作为Egress时,最多只能解封装带两层标签的MPLS报文。
· 下列接口板上不支持MPLS功能:
¡ SA系列接口板
¡ 下列SC系列接口板:LSU1TGS16SC0
· 配置MPLS基础功能,不能同时配置EVI或VXLAN。有关EVI和VXLAN的详细介绍,请参见“EVI配置指导”和“VXLAN配置指导”。
配置任务 |
说明 |
详细配置 |
使能MPLS功能 |
必选 |
|
配置MPLS MTU |
可选 |
|
配置Egress分配的标签类型 |
可选 |
|
配置TTL复制 |
可选 |
|
使能MPLS的TTL超时消息发送功能 |
可选 |
|
开启告警功能 |
可选 |
在使能MPLS功能之前,需要完成以下任务:
· 配置链路层协议,保证链路层通信正常。
· 配置接口的网络层地址,使各相邻节点网络层可达。
· 配置单播静态路由或IGP协议,保证各LSR在网络层互通。
操作 |
命令 |
说明 |
进入系统视图 |
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能力处于关闭状态 在IP隧道源端的设备出接口上不能配置本命令来使能MPLS功能,设备不支持IP隧道封装的报文通过LSP转发 |
· 配置的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报文发送失败 |
· 对于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。
· 非空标签
对于采用标签分发协议动态建立的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) |
· 建议在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域 |
使能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超时消息发送功能处于开启状态 |
开启MPLS模块的告警功能后,该模块会生成告警信息,用于报告该模块的重要事件。生成的告警信息将发送到设备的SNMP模块,通过设置SNMP中告警信息的发送参数,来决定告警信息输出的相关属性。
有关告警信息的详细介绍,请参见“网络管理和监控配置指导”中的“SNMP”。
表1-7 开启告警功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
开启MPLS模块的告警功能 |
snmp-agent trap enable mpls |
缺省情况下,MPLS模块的告警功能处于开启状态 |
在完成上述配置后,在任意视图下执行display命令可以显示配置后MPLS的运行情况,用户可以通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除MPLS统计信息。
表1-8 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 [ 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 ] |
清除指定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保留在没有任何通知或提示的情况下对资料内容进行修改的权利!