MPLS --- 多协议标签交换技术

包交换

包交换转发效率不高的问题所在:

      1、在整个包交换的过程中,需要先查询路由表之后在查看ARP缓存表两张表来完成转发过程,导致效率较低;

       2、路由表的匹配规则 --- 最长匹配原则导致路由表的查询效率不会太高;

       3、路由表存在递归查找的过程;

       4、IP头部是可变长头部,导致我们对IP头部进行读取时需要使用软件进行处理,无法基于硬件进行快速的查找。

标签交换

       标签交换在二层和三层封装之间,添加一个和路由条目存在映射关系的标签,之后维护一张记录对应关系及转发接口的表,携带标签的数据来到设备上,先看标签,之后基于维护的标签转发表进行转发,而不再需要查看三层的内容。因为标签本身短小且定长,所以,其转发效率将高于包交换。

       但是标签交换需要先给数据包中上打上标签,之后在到达目标之前还需要将标签弹出,因此,标签交换只在转发过程中提高了效率,整体上相交包交换提升并不明显。

包交换的变更

进程交换 --- process switching --- 最早期的包交换

快速包交换(fast switching)--- 基于流的包交换 --- 一次路由,多次交换

思科的快交换技术 --- Cisco EXpress Forwading --- 简称CEF技术。--- 主要是将路由表和ARP缓存表中的内容进行预读取(就是将该递归的进行递归运算,该查ARP缓存表的提前查好),之后将结果记录在CEF表中,而CEF是支持硬件转发的,所以,可以极大的提升路由的转发效率。

CEF技术是思科的私有技术,但是各大厂商也基于思科设计出了属于自己特快交换技术。华为设备在进行路由转发时就基于FIB(转发信息表),这个表是支持硬件转发的。

标签交换可以做到更好:

          1、用于解决BGP的路由黑洞

          2、MPLS VPN

MPLS TE --- 流量工程

多协议标签交换MPLS的工作原理是怎样的 多协议标签交换的优势_路由表

       所有运行标签交换的路由器组成的转发网络,我们可以看作是一个MPLS网络,我们将他称为MPLS域。我们将这些运行了MPLS的设备称为LSR --- 标签交换路由器

       基于标签交换前提首先得有标签,标签是每台LSR基于本地的路由表中的路由条目来生成的。我们将所有具有相同特征(所有匹配到同一条路由条目的数据包)的数据包称为FEC --- 等价转发类。同一个FEC需要配置一个标签。

LIB(标签信息表)。之后,将和FIB表进行结合,生成LFIB表 --- 标签转发信息表

       在整个过程中,LSR设备除了需要自己分配标签以外还需要知道其他LSR设备针对同一个FEC分配的标签,所以,标签交换和包交换一样也分为两个层面 --- 控制层面,数据层面

包交换和标签交换的两个层面

包交换

       控制层面 --- 路由协议的数据流方向,目的是为了获取未知网段的路由信息,生成路由表。

       数据层面 --- 设备基于已经完善的路由表(FIB)来转发具体的数据信息,其方向正好和控制层流量相反。

标签交换

       控制层面 --- 基于FEC分配标签,并获取其他LSR对同一个FEC分配的标签,之后,记录生成LIB表,之后结合FIB生成LFIB表。 --- 这个过程可以基于静态来完成,也可以基于动态协议来完成 --- LDP协议 --- 标签分发协议

LBIB,根据标签进行转发。

三种LSR

入站LSR (ingress)--- MPLS域的边界,当没有标签的数据包来到入站LSR上,他需要在数据包压入标签;

中站LSR(transit) --- 完成标签置换动作的LSR设备;

出站LSR(egress) --- 也是MPLS域的边界,完成标签的弹出动作。

LSP --- 标签交换路径

LSP --- 标签交换路径。需要注意的是,LSP是单向的,如果想让数据双向来回,则还需要构建一条R4-R3-R2-R1的路径。

MPLS标签报文:

多协议标签交换MPLS的工作原理是怎样的 多协议标签交换的优势_服务器_02

Label --- 20位 --- 0 - 2的20次方 --- 我们将标签号的取值范围称为标签空间,每台LSR设备的标签空间都是独立的。

其中:

          0 - 15 --- 特殊标签值 --- 我们分配的时候不能直接分配,因为每个特殊标签都拥有其特殊的含义

          16 - 1023 --- 一般应用于静态LSP搭建

          1024 - 2的20次方 --- 应用于LDP等动态标签交换协议来分配时使用

EXP --- 占3位 --- 做策略使用的

S --- 占1位 --- 栈底位 --- 标签不止可以打一个,可以打多个,我们将多个标签的有序集合称为标签栈。如果存在多个标签,需要使用这个标记位进行标识。如果是最后一个标签,则该位置1,如果不是,则置0。

TTL --- 生存时间

构建静态LSP:

多协议标签交换MPLS的工作原理是怎样的 多协议标签交换的优势_包交换_03

一、保证路由条件 --- 静态只需要边界设备拥有来回路由信息即可

二、配置LSR

     入站LSR:

      1.给LSR配置LSR-ID --- 32位二进制构成,都是按照IP地址格式来写,但是,只能手动配置。

       

多协议标签交换MPLS的工作原理是怎样的 多协议标签交换的优势_路由表_04

       2.激活MPLS

           1、全局激活MPLS

         

多协议标签交换MPLS的工作原理是怎样的 多协议标签交换的优势_服务器_05

           2、接口激活MPLS --- 所有需要参与MPLS数据收发的接口都需要激活

        

多协议标签交换MPLS的工作原理是怎样的 多协议标签交换的优势_网络_06

     3.构建静态的LSP  

多协议标签交换MPLS的工作原理是怎样的 多协议标签交换的优势_路由表_07

下一跳 --- 必须和路由表中的下一跳相同

out --- label --- 出站标签

配置中转LSR:

多协议标签交换MPLS的工作原理是怎样的 多协议标签交换的优势_包交换_08

in - label --- 入站标签必须和上一跳配置的出站标签相同

配置出站LSR:

多协议标签交换MPLS的工作原理是怎样的 多协议标签交换的优势_服务器_09

多协议标签交换MPLS的工作原理是怎样的 多协议标签交换的优势_系统安全_10

LDP --- 标签分发协议 --- 主要应用在MPLS的控制层面

   MPLS控制层面需要完成的工作主要是分配标签和传递标签。分配标签的前提是本地路由表中得先存在标签,传递标签的前提也是得先具备路由基础。所以,LDP想要正常工作,则需要IGP作为基础。

多协议标签交换MPLS的工作原理是怎样的 多协议标签交换的优势_包交换_11

1、分配标签

       分配标签并不是所有设备都针对自己本地路由表中所有的路由条目分配标签,而是在判定自己是到达某网段的出站LSR时,才会主动分配标签。

        当然,在构成到达目标网段的LSP过程中,所有中间的LSR都需要给对应的FEC分配标签才行。则其他设备只有在收到标签和目标网段的映射关系后,才会被动的分配标签。分配标签之前需要完成检查工作,主要检查目标网段本地路由表是否可达,以及下一跳和通告者是否相同。检查通过则可以分配标签,不通过则不能分配标签。

LDP的标签分配方式:

有序方式

独立方式

2、传递标签

        出站LSR分配完标签之后,需要传递给其他的LSR设备。传递的前提条件是彼此之间得先是LDP对等体关系,LDP对等体关系建立的前提条件是需要先建立LDP会话。

LDP会话分类:

本地LDP会话

远程LDP会话

 LDP协议在建立本地的LDP会话时,不需要手动指定邻居的IP地址,可以自动的发现邻居关系。主要是因为LDP首先会通过组播(224.0.0.2)的形式周期性发送hello包来发现邻居。hello包使用UDP 646端口来完成。

本地LDP会话的建立过程:

1、在LSR上激活LDP之后,首先周期性的发送hello包来完成对等体的发现工作。

多协议标签交换MPLS的工作原理是怎样的 多协议标签交换的优势_服务器_12

在hello包中需要携带一些参数,其中包含传输地址和LDP ID

传输地址:这个地址主要是后面建立TCP会话时需要用到的地址,默认情况下,我们将使用高地址设备的LSR ID来作为这个地址。所以要求,LSR ID必须是可用且可达的IP地址。

LDP ID:所有激活LDP协议的LSR设备都要求必须具有一个LDP ID,这个ID是由48位二进制构成,表达方式为32位:16位,前32位使用LSR ID,后16位用0表示。这个和标签空间有关,所有基于设备的标签空间,其值都为0。

hello包的发送周期默认为5s,保活时间为hello时间,即默认15秒。

2、双方在交互完hello包之后,将后去到对方传输地址,则根据这个专属地址来建立TCP会话。

        在建立TCP会话之间,LDP也存在检查动作,需要先确认收到传顺地址,在本地路由表中是否可达,可达则可以正常建立TCP会话。

        如果双方都建立TCP会话,则将创建两条双向通道,造成资源浪费。则在收到对端hello包中的传输地址后,将和本地的传输地址进行对比,传输地址大的一方,我们称为主动方,主动方则可以主动建立TCP会话,二被动方则不建立。

多协议标签交换MPLS的工作原理是怎样的 多协议标签交换的优势_系统安全_13

3、完成TCP会话建立之后,传递地址大的一方将优先使用初始化报文,里面包含一些协商的参数发给被动方,对方如果确认里面的参数,则将回复keep live报文进行确认,同时发送自己本地的初始化报文,携带自己的参数。主动方收到后也将对参数进行确认,如果没问题则也将发送keep live报文。双方都收到keep live报文,则代表参数协商成功,LDP会话建立成功。

多协议标签交换MPLS的工作原理是怎样的 多协议标签交换的优势_路由表_14

        之后,也需要周期性的发送keeplive报文进行保活,发送周期默认为15s,保活时间为3倍的周期发送时间,则默认为45秒。

上下游关系

        由数据层流量流动方向来决定,数据发送方为上游,接收方为下游。从控制层的角度来看,则标签传递的方向应该是从下游发送到上游。之后上游设备会去收集下游的标签

标签传递方式

        DU模式 --- 下游自主模式 --- 华为设备默认采用这种模式,所有LSR在分配号标签之后,可以主动的将标签传递给其他LSR。 --- 如果选择的是下游自主模式,则设备在传递标签时,无法判断上下游关系,则会将标签发给所有的对等体关系。当设备收到标签之后,则将可以基于路由判断上下游关系。华为设备,只有上游设备会记录下游设备发送的标签,而上游设备发送的标签将不保存。(还有一种标签的保存模式是上下游标签都保存。)

       DOD模式 --- 下游按需模式 --- 只有下游设备在收到上游设备通知之后,才会给上游设备发送标签。

数据层面流动过程

        在数据层面流量通过的过程当中,入站LSR设备和出站LSR设备都需要查询两张表,一张FIB表,一张LFIB包才能完成转发过程,导致效率降低,需要优化。

   优化思路:

入站LSR

出站LSR

华为设备默认开启次末跳弹机制。

LSB的配置:

1、先在所有LSR上启动IGP协议,保证路由基础

2、配置MPLS的LSR ID

多协议标签交换MPLS的工作原理是怎样的 多协议标签交换的优势_路由表_15

3、激活MPLS和LDP

      全局激活

多协议标签交换MPLS的工作原理是怎样的 多协议标签交换的优势_路由表_16

多协议标签交换MPLS的工作原理是怎样的 多协议标签交换的优势_包交换_17

      接口激活

多协议标签交换MPLS的工作原理是怎样的 多协议标签交换的优势_包交换_18

查看LDP对等体关系:

多协议标签交换MPLS的工作原理是怎样的 多协议标签交换的优势_包交换_19

查看LDP会话:

多协议标签交换MPLS的工作原理是怎样的 多协议标签交换的优势_服务器_20

查看LFIB表:

多协议标签交换MPLS的工作原理是怎样的 多协议标签交换的优势_路由表_21

注意:华为设备默认只给/32的主机位路由分配标签,因为MPLS没有主要应用在数据转发上,如果路由表中路由条目太多,则将导致生成过多LSP。造成资源浪费。

多协议标签交换MPLS的工作原理是怎样的 多协议标签交换的优势_系统安全_22

MPLS解决路由黑洞问题:

多协议标签交换MPLS的工作原理是怎样的 多协议标签交换的优势_包交换_23

多协议标签交换MPLS的工作原理是怎样的 多协议标签交换的优势_包交换_24