wps422

本篇我们来介绍一下MPLS协议,MPLS(Multi-Protocol Label Switching)的概念是在一个封包中加
入Label(标签)。这个标签是加在二层头部与三层头部之间的一串32 bits标识,所以MPLS又叫作2.5层,
其中的20 bits为标签值。路由器会根据这个标签值去判断封包的下一跳(Next Hop),使用这种方法,
路由器不用再去查找路由表即可以决定如何处理封包,传输效率便可大大提升。这里所说的传输效率大大
提升是有年代感的一句话,早期网络设备架构为集中架构,也就是转控一体式架构,在转发量特别大的时
候会严重消耗设备的处理能力,转发效率自然会受到较大的影响。当时推出MPLS的主要目的也是为了减少
转发量,以降低设备的压力,从而提高转发效率,相较于传统IP转发原理,MPLS确实做到了这一点。但是
在当今的网络环境下,网络设备已经实现了架构的大转变,由原来的一体式集中架构变成了转控分离式架
构,比如一台设备中分为交换板与控制板,这种架构在硬件上就解决了集中式架构的低效率问题,并且设
备本身的性能也大大提升,所以现在如果还是说采用MPLS会使得传输效率大大提升是一句不严禁的话。就
当今网络而言,MPLS最大的用处就是MPLS VPN。当初MPLS在设计中所使用的标签功能让其在现代网络中
又找到了新的用武之地,当初认为并不是很主要的一个功能让其没有被完全淘汰掉,除了MPLS VPN,现在
已经找不到它的一点点用处,这也正是有心栽花花不开,无心插柳柳成荫。

wps423

名词解释

● LER(Label Edge Router):在MPLS网络中,用于标签的压入或弹出。

● LSR(Label Switched Router):在MPLS网络中,用于标签的交换。根据数据流的方向,LSP的入口LER
被称为入节点(Ingress);位于LSP中间的LSR被称为中间节点(Transit);LSP的出口LER被称为出节点
(Egress)。

● Ingress LSR: 在下图的拓扑中,如果封包是从R1到R6,R1是封包进入MPLS网络遇到的第一个路由器,那
么R1就是Ingress Router,称为Ingress LSR。Ingress Router主要是帮助进入MPLS网络的封包加上
Label(标签)。

● Egress LSR: 当封包将要离开MPLS网络时,它经过的最后一个Router就是Egress LSR。Egress LSR的
责任是帮封包移除标签。在处图拓扑中,R6就是Egreess LSR。

● LSP(Label Switched Path):标签交换路径,即到达同一目的地址的报文在MPLS网络中经过的路径。

● FEC(Forwarding Equivalent Class):转发等价类,一般指具有相同转发处理方式的报文。在MPLS
网络中,到达同一目的地址的所有报文就是一个FEC。

wps424

MPLS体系结构

● 控制平面:负责产生和维护路由信息以及标签信息。

▲  路由信息表RIB(Routing Information Base):由IP路由协议(IP Routing Protocol)生成,用
于选择路由。

▲  标签分发协议LDP(Label Distribution Protocol):负责标签的分配、标签转发信息表的建立、标
签交换路径的建立、拆除等工作。

▲  标签信息表LIB(Label Information Base):由标签分发协议生成,用于管理标签信息。
● 转发平面:即数据平面(Data Plane),负责普通IP报文的转发以及带MPLS标签报文的转发。

▲  转发信息表FIB(Forwarding Information Base):从RIB提取必要的路由信息生成,负责普通IP报
文的转发。

▲  标签转发信息表LFIB(Label Forwarding Information Base):简称标签转发表,由标签分发协议
建立LFIB,负责带MPLS标签报文的转发。

● MPLS路由器上,报文的转发过程:

▲  当收到普通IP报文时,查找FIB表,如果Tunnel ID为0x0,则进行普通IP转发;如果查找FIB表,
Tunnel ID为非0x0,则进行MPLS转发。

▲  当收到带标签的报文时,查找LFIB表,如果对应的出标签是普通标签,则进行MPLS转发;查找LFIB表,
如果对应的出标签是特殊标签,如标签3,则将报文的标签去掉,进行IP转发。

wps425

静态LSP与动态LSP

静态LSP的特点:

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

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

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

● 配置静态LSP时,管理员需要为各路由器手工分配标签,需要遵循的原则是:前一节点出标签的值等于下
一个节点入标签的值。

动态LSP的特点:

● 动态LSP通过LDP协议实现对FEC分类、标签的分配以及LSP的建立和维护操作。

● 组网配置简单,易于管理和维护。

● 支持基于路由动态建立LSP,网络拓扑发生变化时,能及时反应网络状况。

● 如下图所示,Egress路由器RTD为本地存在的路由分配标签,并将路由和标签的绑定关系主动发送给上游
邻居路由器RTC。

● 路由器RTC收到下游邻居路由器RTD的路由和标签的绑定关系后,将其记录到LIB中,并将自己分配的标签
和路由的绑定关系发送给上游邻居路由器RTB

● RTB执行相同的动作将标签和路由的绑定关系发送给上游邻居路由器RTA,RTA为Ingress路由器,没有上
游邻居,因此动态的LSP完成建立。

wps426

MPLS标签的发布方式

标签的发布方式:

● 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方式较短。

wps427

MPLS标签的分配控制方式:

● Independent(独立标签分配控制方式):本地LSR可以自主地分配一个标签绑定到某个IP分组,并通告给
上游LSR,而无需等待下游的标签。

● Ordered(有序标签分配控制方式):只有当该LSR已经具有此IP分组的下一跳的标签,或者该LSR就是该
IP分组的出节点时,该LSR才可以向上游发送此IP分组的标签。

如图所示拓扑:

采用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分发标签。

wps428

MPLS标签的保持方式:

● Liberal(自由标签保持方式):对于从邻居LSR收到的标签映射,无论邻居LSR是不是自己的下一跳都
保留。

● Conservative(保守标签保持方式):对于从邻居LSR收到的标签映射,只有当邻居LSR是自己的下一
跳时才保留。

当网络拓扑变化引起下一跳邻居改变时:

● 使用自由标签保持方式,LSR可以直接利用原来非下一跳邻居发来的标签,迅速重建LSP,但需要更多的
内存和标签空间。

● 使用保守标签保持方式,LSR只保留来自下一跳邻居的标签,节省了内存和标签空间,但LSP的重建会比
较慢。

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

如图所示拓扑,路由表中,RTB通过RTD到达100.1.1.1/32的路径最优,RTB从RTC收到分配给100.1.1.1/32
的标签处理方式有以下两种:

● 一是RTB保留从RTC收到的标签信息。

● 二是RTB不保留从RTC收到的标签信息,前者称为Liberal方式,后者称为Conservative方式。

wps429

PHP(Penultimate Hop Popping)

PHP:倒数第二跳弹出,具体过程如下:

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

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

wps430

MPLS配置演示

1、下面我们根据下图中的拓扑来演示一下MPLS的配置,这里IGP我们使用IS-IS协议,并为各设备配置
Loopback0,使用LDP创建LSP,我们采用动态LSP。其实MPLS基本配置的内容不多,配置非常简单,主要是
要明白其中的各种原理。

wps431

2、地址规划如下,首先做好基本配置,确保IS-IS工作正常,这里就不再演示基本配置了。

Loopback 0:

R1: 1.1.1.1/32

R2: 2.2.2.2/32

R3: 3.3.3.3/32

R4: 4.4.4.4/32

R5: 5.5.5.5/32

R6: 6.6.6.6/32

NET地址:

R1:10.0001.0000.0000.1001.00

R2:10.0002.0000.0000.2001.00

R3:10.0002.0000.0000.3001.00

R4:10.0001.0000.0000.4001.00

R5:10.0002.0000.0000.5001.00

R6:10.0002.0000.0000.6001.00

wps432

3、首先在各交换机上全局使能MPLS和MPLS LDP,注意LSR-ID要使用L0的地址,这个ID与其它协议不同,
这个是真正的地址。

mpls lsr-id 2.2.2.2

mpls

mpls ldp

4、然后在相应接口上使能MPLS和MPLS LDP,例如R2的g0/0/0接口

int gg0/0/0

  mpls

  mpls ldp

5、需要注意的是,华为LDP默认只会为32位主机路由分配标签,所以需要注意环回口L0地址的配置是否
正确。

wps433

6、在所有路由器上配置完成后,可通过以下命令查看MPLS LDP和LSP状态,如下图以R2为例。

dis mpls ldp

dis mpls lsp

wps434

7、在R1上通过MPLS ping R6

ping lsp -a 1.1.1.1 ip 6.6.6.6 32

wps435

8、通过Tracert查看R1到R6的路径。

tracert lsp -a 1.1.1.1 ip 6.6.6.6 32

wps436

9、通过抓包,可以看到MPLS的标签,可以与前面查看的LSP进行对照。这里是在R1上进行的抓包。

wps437

10、查看R6的MPLS Route和IP路由表,可以看到R6并没有到R1的路由。但是二者之间却可以ping通,就是
MPLS标签的功劳。

wps438wps439

Last modification:March 23rd, 2020 at 11:03 am
如果觉得我的文章对你有用,请随意赞赏