华为路由与交换 MPLS 协议原理与配置

本次博客主要介绍MPLS协议原理与配置

MPLS(英语:Multi-Protocol Label Switching,缩写为MPLS)  多协议标签交换

90年代初,互联网流量快速增长,而由于当时硬件技术的限制,采用的不是硬件,而是采用软件去转,路由器采用最长匹配算法逐跳转发数据包,成为网络数据转发的瓶颈。快速路由技术成为当时研究的一个热点。

在各种方案中,IETF确定MPLS协议作为标准的协议,用来提高数据转发的速率,所以,对于MPLS这个协议,一开始提出的目的就是在没有硬件的条件上,通过软件的方式,去提升数据转发的能力,但是随着网络的发展,硬件条件上来了,所以在某段时间里,MPLS就没有用武之地了,但是现在又把MPLS提出来,是因为发展到后期,有网络需要用到VPN,发现VPN和MPLS结合在一起非常好,就把MPLS又拿出来用了,所以现在MPLS用在现网里,并不是提升硬件的转发能力,而是有了更高层次的使用。

MPLS采用短而定长的标签进行数据转发,大大提高了硬件限制下的转发能力;而且MPLS可以扩展到多种网络协议(如IPv6IPX等)。 

MPLS概述

MPLS 多协议标签交换

正常的路由器在处理数据包的时候,首先收到一个数据包,会从二层进行解封装,看看二层的mac地址是不是给我的,然后看三层,发现不是给我的,就会查询路由表,有路由就进行封装(没有路由就丢掉),往下一跳转发,封装的时候也是从二层封装,这样的话,也会限制转发的速率,我们平时说交换快,路由慢,为什么说交换快,就是因为交换的话,解封装的层次不一样,看见二层的mac地址就直接走了,不会看三层,所以这个MPLS叫做多协议的标签交换。如下图所示,

华为路由与交换 MPLS 协议原理与配置_第1张图片

 

这个多协议表示的是,不管上层的三层协议是ipv4还是ipv6,还是非ip,都无所谓,这是叫做多协议。

那么标签交换指的是,当我路由器采用MPLS进行交换的时候,不需要再看3层的ip头部了,那不看三层的ip头部,看什么来完成转发呢,看的是MPLS的头,这个头部在封装的过程中是处于二层和三层之间,处于2.5层,在这个位置里面会放一个标签值,那么有了这个标签值之后,路由器会事先形成一个标签转发表,标签转发表是A过来一个数据包,标签值是A,转出去变成B,从某个接口出去,这样的话,来了一个数据包,2.5层已经有了标签A ,同时这个路由器有这个映射表,就会把A替换成B从某个接口扔出去,就不需要去看3层ip,查路由表了,这样的话数据的转发速率就会提升。

 

MPLS基本网络结构 

如下图所示,RTA,和RTE处于完全纯的IP网络里面,中间RTB,RTC,RTD这三台设备上,处于同一个OSPF区域,同时还都配置了MPLS协议,那么这三台设备就组成了一个MPLS的网络。

数据包在IP网络里面传输的时候,还是一个纯的ip报文,当这个纯的ip报文进入MPLS网络去传输的时候,就会采用标签去交换了,会把原始的数据包打上MPLS头,如下图所示,打上MPLS头,RTB把报文给RTC,RTC只需要看MPLS头部里面的标签就可以完成交换,到RTD,RTD再给RTE,在这个过程中,就不需要再看ip报文头部里的内容了,在这种情况下,如果没有路由表,有标签映射表也是不影响数据包的转发的。

华为路由与交换 MPLS 协议原理与配置_第2张图片

LSP(Label Switched Path):标签交换路径 ,即到达同一目的地址的报文在 MPLS 网络中经过的路径。
这个LSP在数据转发之前先生成的,当数据来了之后,再去生成肯定来不及了。先生成,等到数据来了之后,再去走就可以了。 这个LSP的生成方式分两大类:一个是管理员手工去生成,还有一个是协议动态去创建。
 
FEC(Forwarding Equivalent Class):转发等价类 ,一般指具有相同转发处理方式的报文。在 MPLS 网络中,到达同一目的地址的所有报文就是一个 FEC 。相同的前缀,是相同的FEC,不同的前缀是不通的FEC,不通的前缀,目的不一样。
 

如上图所示,在BCD上面运行MPLS,如果用动态的方式,BCD之间就会相互交换标签, 这个标签是给FEC分的,在华为的设备里面,不通的前缀就是不同的FEC,当你运行动态的标签分配协议之后,它会为路由表里面的前缀去分标签,也就是说,某台路由器都有了去往不同前缀的标签值了,去访问的时候,就可以打上相应的标签了。

 在MPLS网络中,路由器的角色分为两种:

LER(Label Edge Router): MPLS网络中,用于标签的压入或弹出,如上图中的RTBRTD。
LSR(Label Switched Router):在MPLS网络中,用于标签的交换,如图中的RTC。
根据数据流的方向,LSP的入口LER被称为入节点(Ingress);位于LSP中间的LSR被称为中间节点(Transit);LSP的出口LER被称为出节点(Egress)。
MPLS报文由Ingress发往Transit,则IngressTransit的上游节点,TransitIngress的下游节点;同理,TransitEgress的上游节点,EgressTransit的下游节点。
MPLS作为一种分类转发技术,将具有相同转发处理方式的报文分为一类,称该类报文为一个FECForwarding Equivalent Class)。
FEC的划分方式非常灵活,可以是以源地址、目的地址、源端口、目的端口、协议类型或VPN等为划分依据的任意组合。

 

MPLS体系结构 

如下图所示,MPLS的体系结构有控制平面和转发平面,可以把下面的这个图理解为一个路由器,在这个路由器上边,控制平面,需要有动态路由协议,(OSPF,ISIS,RIP),为什么要有这个,得形成路由表,有路由表才有前缀,通过动态路由协议形成一个RIB(Routing Information Base路由信息数据库 )的表,可以把他理解成路由表,用来转发数据的,同时还会在转发平面上形成一个表,叫做FIB表,(Forwarding  Information Base 转发信息库),这个FIB表实际上是从IP路由表里提取出来的信息,转发就会更快;同时还需要在这台路由器上运行标签的发布协议,就是分发协议,需要给不同的前缀分发标签,路由协议产生路由,标签分发协议为前缀分发标签,这个协议叫做LDP(Label Distribution Protocol),LDP这个协议为路由前缀分配标签,同时会形成一个标签转发表或者叫做(Label Forwarding Information Base  LFIB)标签转发信息数据库,这里面是不同的前缀对应不同的标签。

 

FIB表和LFIB表相互同步,FIB表里很有可能就会出现标签了,之前的的话,没有标签的参与,就没有标签,就是路由表,出接口出去了,现在由于有标签了,这里面就可能有些表项存在标签,有些表项,不存在标签。

同时,LFIB表里面也会有路由前缀信息,所以对于MPLS网络来讲,控制平面,就是各种各样的协议,通过各种各样的协议,形成各种各样的表,通过各种各样的表,去用来转发数据的,在转发数据的时候,当一个ip报文过来了,被这个路由器收到了,那么这个路由器会去查找FIB表,当收到带标签的报文时查找LFIB表;如果对应的出标签是普通标签,则进行MPLS转发;查找LFIB表,如果对应的出标签是特殊标签,如标签3,则将报文的标签去掉,进行IP转发。

还有一个表叫做LIB(标签信息数据库,)比较完整,把最优的放入LFIB表中。这个LIB里面包含了所有标签数据,但是用来转发数据标签的时候用的是LFIB表。

华为路由与交换 MPLS 协议原理与配置_第3张图片

 

MPLS数据报文结构 

如下图所示,RTB在从RTA那里收到了一个ip报文之后,查找了FIB表之后,会给这个报文打上标签,这个标签的格式是什么样子的?首先MPLS的头部是在2层头和3层头之间的,在这个MPLS头部里面,占比最大的是Label(标签值),后面紧跟着的是Exp位,Exp位是3个bit,这个Exp位用来去做MPLS的QOS 的;S,是当打了多层标签嵌套的时候,你这个栈底位是不是紧挨着IP头,一个数据包可以打多层标签的,

 

华为路由与交换 MPLS 协议原理与配置_第4张图片

MPLS 标签封装在链路层和网络层之间,可以支持任意的链路层协议, MPLS 标签的封装结构如图所示。
MPLS 标签的长度为 4 个字节,共分 4 个字段:
Label 20bit ,标签值域;
Exp 3bit ,用于扩展。现在通常用做 CoS Class of Service ),当设备发生阻塞时,优先发送优先级高的报文;
S 1bit ,栈底标识。 MPLS 支持多层标签,即标签嵌套。 S 值为 1 时表明为最底层标签;
TTL 8bit ,和 IP 报文中的 TTL Time To Live )意义相同。
标签空间是指标签的取值范围。标签空间划分如下:
0 15 :特殊标签。如标签 3 ,称为隐式空标签,用于倒数第二跳弹出;
16 1023 :静态 LSP 和静态 CR-LSP Constraint-based Routed Label Switched Path )共享的标签空间;
1024 及以上: LDP RSVP-TE Resource Reservation Protocol-Traffic Engineering )、 MP-BGP MultiProtocol Border Gateway Protocol )等动态信令协议的标签空间。

 

LSP建立方式 

只要LSP建立了,数据包就可以依据标签转发了,所以建立LSP是非常重要的。

建立LSP的方式有两种:

静态LSP:用户通过手工方式为各个转发等价类分配标签建立转发隧道;

动态LSP:通过标签发布协议动态建立转发隧道。

静态LSP

静态LSP的特点:

不使用标签发布协议,不需要交互控制报文,资源消耗比较小;

通过静态方式建立的LSP不能根据网络拓扑变化动态调整,需要管理员干预。

静态LSP适用于拓扑结构简单并且稳定的网络。

对于一个LSP来讲,这个LSP是单向的,分为上游和下游,上下游是数据流的方向,如果数据流是从A------->B,那么A 就是上游,B就是下游,那么对于这样单项的LSP,他的上游叫做入节点,下游叫做出节点,比如说,RTA左边的PC 想要去访问100.1.1.1,如果采用标签的话,数据包到了RTA上,打个标签,传给RTB,RTC,RTD,那么去访问的时候,这个路径就是A--B--B--D,那么A就是上游,D就是下游,形成的LSP也是这个方向的,这种情况下,分发标签的时候,是相反的方向,

首先是由D为100.1.1.1去分配一个标签,指定了入标签是300,就意味着C的出标签是300,然后C再分配一个入标签是200,就意味着B的出标签是200,然后B再分配一个入标签是100,那么就意味着A的出标签是100,当然这个过程也可以反过来。从下游朝着上游去分。

华为路由与交换 MPLS 协议原理与配置_第5张图片

配置静态 LSP 时,管理员需要为各路由器手工分配标签,需要遵循的原则是:前一节点出标签的值等于下一个节点入标签的值。
如图所示拓扑, MPLS 网络中有一个 100.1.1.1/32 的用户,静态为该路由建立一条 LSP ,配置过程如下:
配置 LSR ID 用来在网络中唯一标识一个 MPLS 路由器。缺省没有配置 LSR ID ,必须手工配置。为了提高网络的可靠性,推荐使用 LSR 某个 Loopback 接口的地址作为 LSR ID
配置命令: mpls lsr -id lsr -id
MPLS 域的所有节点与相应的接口上开启 MPLS 协议。
配置命令: system-view
                      mpls
                     interface interface-type interface-number
                        mpls
Ingress 进行以下配置:
static- lsp ingress lsp -name destination ip -address { mask-length | mask } { nexthop next-hop-address | outgoing-interface interface-type interface-number } * out-label out-label

 

如下图所示: 

华为路由与交换 MPLS 协议原理与配置_第6张图片

 

[AR5]dis cu
[V200R003C00]
#
 sysname AR5
#
mpls lsr-id 5.5.5.5
mpls
#
interface GigabitEthernet0/0/0
 ip address 10.0.45.5 255.255.255.0 
 mpls
#
interface GigabitEthernet0/0/1
 ip address 10.0.57.5 255.255.255.0 
#
interface LoopBack0
 ip address 5.5.5.5 255.255.255.255 
#
ospf 1 router-id 5.5.5.5 
 area 0.0.0.0 
  network 5.5.5.5 0.0.0.0 
  network 10.0.45.0 0.0.0.255 
  network 10.0.57.0 0.0.0.255 
#
static-lsp egress AR2_AR5 incoming-interface GigabitEthernet0/0/0 in-label 500  

 

[AR4]DIS CU
mpls lsr-id 4.4.4.4
mpls
#
interface GigabitEthernet0/0/0
 ip address 10.0.34.4 255.255.255.0 
 mpls
#
interface GigabitEthernet0/0/1
 ip address 10.0.45.4 255.255.255.0 
 mpls
#
interface LoopBack0
 ip address 4.4.4.4 255.255.255.255 
#
ospf 1 router-id 4.4.4.4 
 area 0.0.0.0 
  network 4.4.4.4 0.0.0.0 
  network 10.0.34.0 0.0.0.255 
  network 10.0.45.0 0.0.0.255 
#
static-lsp transit AR2_AR5 incoming-interface GigabitEthernet0/0/0 in-label 400 
nexthop 10.0.45.5 out-label 500
#

[AR3]DIS CU
 sysname AR3
#
mpls lsr-id 3.3.3.3
mpls
#
interface GigabitEthernet0/0/0
 ip address 10.0.23.3 255.255.255.0 
 mpls
#
interface GigabitEthernet0/0/1
 ip address 10.0.34.3 255.255.255.0 
 mpls
#
interface LoopBack0
 ip address 3.3.3.3 255.255.255.255 
#
ospf 1 router-id 3.3.3.3 
 area 0.0.0.0 
  network 3.3.3.3 0.0.0.0 
  network 10.0.23.0 0.0.0.255 
  network 10.0.34.0 0.0.0.255 
#
static-lsp transit AR2_AR5 incoming-interface GigabitEthernet0/0/0 in-label 300 
nexthop 10.0.34.4 out-label 400

[AR2]dis cu
[V200R003C00]
#
 sysname AR2
#
mpls lsr-id 2.2.2.2
mpls
#
interface GigabitEthernet0/0/0
 ip address 10.0.12.2 255.255.255.0 
#
interface GigabitEthernet0/0/1
 ip address 10.0.23.2 255.255.255.0 
 mpls

#
interface LoopBack0
 ip address 2.2.2.2 255.255.255.255 
#
ospf 1 router-id 2.2.2.2 
 area 0.0.0.0 
  network 2.2.2.2 0.0.0.0 
  network 10.0.12.0 0.0.0.255 
  network 10.0.23.0 0.0.0.255 
#
static-lsp ingress AR2_AR5 destination 5.5.5.5 32 nexthop 10.0.23.3 out-label 30
0
#

配置验证:

 

华为路由与交换 MPLS 协议原理与配置_第7张图片 

 

华为路由与交换 MPLS 协议原理与配置_第8张图片 

动态LSP 

动态 LSP 通过 LDP 协议实现对 FEC 的分类、标签的分配及 LSP 的建立和维护等操作。
动态 LSP 的特点:
组网配置简单,易于管理和维护;
支持基于路由动态建立 LSP ,网络拓扑发生变化时,能及时反映网络状况。

 

华为路由与交换 MPLS 协议原理与配置_第9张图片

如上图所示拓扑:
Egress 路由器 RTD 为本地存在的路由分配标签,并将路由和标签的绑定关系主动发送给上游邻居路由器 RTC
路由器 RTC 收到下游邻居路由器 RTD 的路由和标签的绑定关系后,将其记录到 LIB 中,并将自己分配的标签和路由的绑定关系发送给上游邻居路由器 RTB
RTB 执行相同的动作将标签和路由的绑定关系发送给上游邻居路由器 RTA RTA Ingress 路由器,没有上游邻居,因此动态的 LSP 完成建立。

 

路由器分的时候一定是入标签,

 

LDP邻居发现 

 

MPLS路由器通过周期性地发送LDP链路Hello消息(LDP Link Hello),实现LDP邻居的发现,并建立本地LDP会话。

为了能使开启 LDP 协议的设备快速发现邻居, LDP Hello 消息使用 UDP 封装。 UDP 是无连接的协议,为了保证邻居的有效性和可靠性, Hello 消息周期发送,发送周期为 5s ,使用组播 224.0.0.2 作为目的 IP 地址,意思是“发送给网络中的所有路由器”。

LDPHello消息中,携带有Transport Address(传输地址字段,该字段与设备配置的LSR(标签交换路由器) ID (唯一标识一台标签交换路由器)一致,表明与对端建立邻居关系时所使用的IP地址。如果该字段IP地址是直连接口IP地址,则直接建立邻居关系;如果该字段地址是LoopBack接口IP地址,保证该接口IP地址路由可达,才能建立邻居关系。

 

华为路由与交换 MPLS 协议原理与配置_第10张图片

 

LDP邻居建立 

LDP 协议主要使用四类消息:
发现( Discovery )消息:用于通告和维护网络中邻居的存在,如 Hello 消息。
会话( Session )消息:用于建立、维护和终止 LDP 对等体之间的会话,如 Initialization 消息、 Keepalive 消息。
通告( Advertisement )消息:用于创建、改变和删除 FEC 的标签映射,如 Address 消息、 Label Mapping 消息。

通知(Notification)消息:用于提供建议性的消息和差错通知。

华为路由与交换 MPLS 协议原理与配置_第11张图片

LDP 邻居建立过程如上图所示:
两个 LSR 之间互相发送 Hello 消息。
Hello 消息中携带传输地址,双方使用传输地址建立 LDP 会话。
传输地址较大的一方作为主动方,发起 TCP 连接。
如上图所示, RTB 作为主动方发起 TCP 连接, RTA 作为被动方等待对方发起连接。
TCP 连接建立成功后,由主动方 RTB 发送初始化消息,协商建立 LDP 会话的相关参数。
LDP 会话的相关参数包括 LDP 协议版本、标签分发方式、 Keepalive 保持定时器的值、最大 PDU 长度和标签空间等。

在session 的基础上, label mapping (标签映射信息)这个路由前缀,我给他分配的标签是多少,你收了。

被动方 RTA 收到初始化消息后,如果 RTA 接受相关参数,则发送初始化消息,同时发送 Keepalive 消息给主动方 RTB
如果被动方 RTA 不能接受相关参数,则发送 Notification 消息终止 LDP 会话的建立。
主动方 RTB 收到初始化消息后,接受相关参数,则发送 Keepalive 消息给被动方 RTA
如果主动方 RTB 不能接受相关参数,则发送 Notification 消息给被动方 RTA 终止 LDP 会话的建立。
当双方都收到对端的 Keepalive 消息后, LDP 会话建立成功。 LDP 会话建立成功后,进行 FEC 的创建与标签的分发。
 

 

标签的发布方式 

 

标签的发布方式:
DU Downstream Unsolicited ,下游自主方式):对于一个到达同一目地址报文的分组, LSR 无需从上游获得标签请求消息即可进行标签分配与分发。
DoD Downstream on Demand ,下游按需方式):对于一个到达同一目的地址报文的分组, LSR 获得标签请求消息之后才进行标签分配与分发。
如图所示拓扑:
采用 DU 方式分发标签,对于目的地址为 100.1.1.1/32 的分组,下游 RTD Egress )通过标签映射消息主动向上游 RTC Transit )通告自己主机路由 100.1.1.1/32 的标签。
采用 DoD 方式分发标签,对于目的地址为 100.1.1.1/32 的分组,上游 RTC Transit )向下游发送标签请求消息,下游 RTD Egress )收到标签请求消息后,才会向上游发送标签映射消息。
华为设备默认采用DU的方式发布标签。

DU无需等待上游的请求消息,可以直接向邻居分配标签。在网络拓扑发生变化时,采用DU方式可以快速反应为新的拓扑分发标签,收敛时间相对于DoD方式较短。

华为路由与交换 MPLS 协议原理与配置_第12张图片

 

标签的分配控制方式 

标签的分配控制方式:
Independent (独立标签分配控制方式):本地 LSR 可以自主地分配一个标签绑定到某个 IP 分组,并通告给上游 LSR ,而无需等待下游的标签。 会为路由表里面的所有路由前缀进行分配,华为的设备缺省只为/32的路由前缀去分。/24是不分的,但是可以设置让他分配。
Ordered (有序标签分配控制方式):只有当该 LSR 已经具有此 IP 分组的下一跳的标签,或者该 LSR 就是该 IP 分组的出节点时,该 LSR 才可以向上游发送此 IP 分组的标签。有序的是,必须从路由表里的下一跳拿到标签,我才给他分配,
 
华为路由与交换 MPLS 协议原理与配置_第13张图片
如图所示拓扑:
采用 Independent 方式:
如果标签发布方式为 DU ,且标签分配控制方式为 Independent ,则 RTC Transit )无需等待下游 RTD Egress )的标签,就会直接向上游 RTB 分发标签。
如果标签发布方式为 DoD ,且标签分配控制方式为 Independent ,则发送标签请求的 RTB Transit )的直连下游 RTC Transit )会直接回应标签,而不必等待来自下游 RTD Egress )的标签。
采用 Ordered 方式:(华为设备缺省)
如果标签发布方式为 DU ,且标签分配控制方式为 Ordered ,则 RTC Transit )只有收到下游 RTD Egress )的标签,才会向上游 RTB 分发标签。
如果标签发布方式为 DoD ,且标签分配控制方式为 Ordered ,则发送标签请求的 RTB Transit )的直连下游 RTC Transit )只有收到下游 RTD Egress )的标签,才会向上游 RTB 分发标签。

 

华为设备默认采用Ordered的方式分配标签。

采用Ordered方式,只有当该LSR已经具有此IP分组的下一跳的标签时,才能向上游分发标签,这样是为了避免下游IP分组的标签未分配或收敛时间较长,上游的标签已分配,数据开始转发造成的数据丢失。

 

标签的保持方式 

路由表中, RTB 通过 RTD 到达 100.1.1.1/32 的路径最优, RTB RTC 收到分配给 100.1.1.1/32 的标签处理方式有以下两种:
一是 RTB 保留从 RTC 收到的标签信息,二是 RTB 不保留从 RTC 收到的标签信息,前者称为 Liberal 方式,后者称为 Conservative 方式。
 

华为路由与交换 MPLS 协议原理与配置_第14张图片

 
标签的保持方式:
Liberal (自由标签保持方式):对于从邻居 LSR 收到的标签映射,无论邻居 LSR 是不是自己的下一跳都保留。
Conservative (保守标签保持方式):对于从邻居 LSR 收到的标签映射,只有当邻居 LSR 是自己的下一跳时才保留。
当网络拓扑变化引起下一跳邻居改变时:
使用自由标签保持方式, LSR 可以直接利用原来非下一跳邻居发来的标签,迅速重建 LSP ,但需要更多的内存和标签空间。
使用保守标签保持方式, LSR 只保留来自下一跳邻居的标签,节省了内存和标签空间,但 LSP 的重建会比较慢。

华为设备默认采用自由标签保持方式保存标签。

 

LDP建立LSP过程 

IGP 协议负责实现 MPLS 网络内路由可达,为 FEC 的分组提供路由;
LDP 协议负责实现对 FEC 的分类、标签的分配以及 LSP 的建立和维护等操作。
 

华为路由与交换 MPLS 协议原理与配置_第15张图片

如图所示拓扑, LDP 动态建立 LSP 的过程如下:
RTD 上存在 100.1.1.1/32 的主机路由,因为 RTD Egress 节点,所以直接向自己上游邻居 RTC 发布 100.1.1.1/32 与标签的绑定关系;
RTC 收到下游邻居 RTD 分配的 100.1.1.1/32 与标签的绑定关系后,将标签记录在自己的 LIB 表中,并向上游邻居 RTB 发布 100.1.1.1/32 与标签的绑定关系,同时 RTC 查看自己 IP 路由表中到达 100.1.1.1/32 的下一跳是否为 RTD ,如果 IP 路由表中的下一跳为 RTD ,则 RTC 使用 RTD 分配的标签封装到达 100.1.1.1/32 的数据;如果 IP 路由表中的下一跳不是 RTD ,则 RTC 保留 RTD 分配的标签作为备用标签;
RTB 收到下游邻居 RTC 分配的 100.1.1.1/32 与标签的绑定关系后,执行与 RTC 相同的动作;
RTA 收到下游邻居 RTB 分配的 100.1.1.1/32 与标签的绑定关系后,查看自己 IP 路由表中到达 100.1.1.1/32 的下一跳是否为 RTB ,如果 IP 路由表中的下一跳为 RTB ,则 RTA 使用 RTB 分配的标签封装到达 100.1.1.1/32 的数据;如果 IP 路由表中的下一跳不是 RTB ,则 RTA 保留 RTB 分配的标签作为备用。因为 RTA Ingress ,最终到达 100.1.1.1/32 LSP 完成建立。

 

LDP 的基本配置如下:
执行命令 mpls lsr -id lsr -id ,配置本节点的 LSR ID
执行命令 mpls ,使能全局 MPLS 功能,并进入 MPLS 视图;
执行命令 mpls ldp ,使能全局的 LDP 功能,并进入 MPLS-LDP 视图;
执行命令 interface interface-type interface-number ,进入需要建立 LDP 会话的接口视图;
执行命令 mpls ,使能接口的 MPLS 能力;
执行命令 mpls ldp ,使能接口的 MPLS LDP 能力。
 

MPLS数据转发过程

MPLS 网络中,数据包在每台路由器上根据已分配的标签进行标签的封装和转发;
分析数据包到达 Egress 节点 RTD 上怎么处理?如果 MPLS 网络中业务量很大, Egress 节点的处理方式有何不妥?

 

华为路由与交换 MPLS 协议原理与配置_第16张图片

如图所示拓扑, MPLS 数据转发过程如下:
RTA 上收到访问 100.1.1.1/32 的数据包,如果数据包为 普通 IP 报文, 则查找 FIB 表,因为 Tunnel ID 为非 0x0 ,封装已分配的标签 1027 进行 MPLS 转发;如果数据包为带标签的报文 查找 LFIB 表,封装已分配的标签 1027 进行 MPLS 转发;
RTB 收到 RTA 发送的带标签 1027 的报文 查找 LFIB 表,封装已分配的出标签 1026 进行 MPLS 转发给 RTC
RTC 收到 RTB 发送的带标签 1026 的报文 查找 LFIB 表,封装已分配的出标签 1025 进行 MPLS 转发给 RTD
RTD 收到 RTC 发送的带标签 1025 的报文 查找 LFIB 表,出标签为 Null ,表明数据包已经到达 Egress 节点,所以路由器将数据包的标签信息去掉,并对数据包进行三层处理,查找 IP 路由表发现 100.1.1.1/32 的路由为自己本地的路由,根据 IP 路由表中的出接口进行 IP 数据的封装并转发。
如果 MPLS 网络中的业务量很大,则每次数据包在 Egress 节点都要进行两次处理才能进行正确的路由转发,这样会导致 Egress 节点的处理压力增加,路由器的处理性能降低。我们希望在 Egress 节点上只处理一次就能将数据包正确转发,以提高 Egress 的转发性能,所以提出了 PHP 技术。

 

 如果说在次末跳在发送数据包的时候,把标签剥掉,到了RTD上,就直接查看FIB了,就不用两次处理了,

Penultimate Hop Popping

 

华为路由与交换 MPLS 协议原理与配置_第17张图片

PHP(Penultimate Hop Popping,倒数第二跳弹出),具体过程如下:

RTC收到RTB发送的带标签1026的报文查找LFIB表,发现分配的出标签为隐式空标签3,于是执行弹出标签的动作,并将IP数据包转发给下游路由器RTD

RTD收到RTC发送的IP报文直接查找自己的FIB表,根据FIB表中的出接口进行IP数据的封装并转发。

 

 

你可能感兴趣的:(路由与交换,MPLS)