HCIP之MPLS

目录

MPLS

MPLS --- 多协议标签交换

包交换

标签交换

包交换的变更

MPLS主要应用于三大领域

​编辑

MPLS和包交换一样,其过程也可以分为控制层面和数据层面

标签交换过程(数据层流量)

标签解读

静态搭建LSP

创建路由条件

配置MPLS

        配置LSR - ID

        激活MPLS

        搭建静态LSP


MPLS

MPLS --- 多协议标签交换

包交换

        包交换 --- 数据组成数据包,之后,在各个网络节点中不断传递,最终达到目标。(可以简单的理解为是三层转发的过程)

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

  1. 完成过程需要查两张表 --- 路由表ARP缓存表

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

  3. 递归查找 --- 在一定情况下,设备需要递归查出接口或者下一跳

  4. IP头部(IPV4)是可变长头部 --- 则处理头部信息时必须依靠软件来处理。相对而言,以基于硬件来实现(通常使用支持二元运算的硬件芯片。如:CAM),这样,即使数量很多,也可以在短时间内完成匹配动作,效率远高于路由表的软件查找

标签交换

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

注意:

        标签交换需要给数据包中先打上标签,之后达到目标之前,还需要弹出标签,因此标签是传输过程中提高转发效率的手段。因为有这些动作的存在,所以标签交换转发效率的提升相较于包交换不明显

包交换的变更

        因为标签交换的转发效率并不是很明显,所以,在数据转发上又继续研发改进包交换,至今,存在三次大的变更:

        进程交换 --- process switching --- 最早的包交换,就是每个数据包到设备上需要先查看路由表,之后再看ARP缓存表来确定二层封装内容

        快速包交换 --- fast switching --- 基于流的包交换 --- 一次路由多次交换 --- 一股数据流来到设备上,只需要针对数据流中的第一个数据包进行路由查询过程,之后,将数据包的特征(一般使用五元组来标识数据流)及转发方式记录缓存中,之后,数据流中的其他数据来到设备上,将直接比对缓存中的特征,比对上则直接按照转发方式进行转发,而不需要所有数据包都进行路由过程,可以极大地提高效率

        思科的特快交换技术 --- Cisco Express Forwading --- 简称CEF(思科私有),其思路就是将路由表和ARP缓存表中的内容进行预读取,之后都记录在CEF表中。并且该表支持硬件转发。

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

        MPLS --- 和包交换共同发展的一个标签交换技术 --- 因为标签交换中的标签需要跟路由信息相关,所以MPLS协议作为多标签交换技术,可以识别兼容多种三层协议(IPV 4,IPV6),其兼容性较强

MPLS主要应用于三大领域

  1. 用于解决BGP的路由黑洞问题

  2. MPLS VPN

  3. MPLS TE --- 流量工程 --- 简单理解为控制流量转发的路径

        所用路由器激活MPLS之后,将按照MPLS的规则实现标签交换,这些运行了标签交换的设备所组成的网络,我们称为MPLS域

        所有运行MPLS的路由器都可以称为LSR(标签交换路由器)

        因为所有匹配到同一条路由的所有数据报文,他们最终走的路线都是一样的,所以我们只需要分配同一个标签即可。在MPLS中,我们把这些具有相同特征的数据报文称为FEC --- 等价转发类。一个FEC只需要分配一个标签即可

        标签分配后,设备需要将路由信息和标签的映射关系记录在一张表中 --- LIB(标签信息表)后,结合FIB表,生成LFIB(标签转发表) --- 这张表中记录的是标签编号对应出接口下一跳信息

MPLS和包交换一样,其过程也可以分为控制层面和数据层面

包交换

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

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

MPSL

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

        数据层面 --- 设备基于LFIB表,根据标签进行转发

标签交换过程(数据层流量)

        入站LSR (ingress)--- MPLS域的一个边界,之前数据包中不存在标签,数据来到设备上之后,需要压入标签,完成压入动作的设备,我们称为入站LSR

        中转LSR (transit) --- 在标签交换过程中完成标签配置换动作的LSR

        出站LSR (egress) --- 也是MPLS域的边界,完成标签的弹出动作,之后基于三层IP头部进行包交换的LSR设备

        标签交换数据流量走过的路径 --- R1-R2-R3-R4,这条路径我们称为LSP --- LSP分方向,如果想要实现1.0网段和4.0网段互通除了要有R1-R2-R3-R4这条LSP外还需要构建一条R4-R3-R2-R1的LSP

        LSP构建 --- 静态,LDP协议

标签解读

         Label --- 标签号 --- 前20位(0-2^20 --- 这个标签的取值范围可以理解为标签空间),是标签转发的主要标识依据。

                        0 -15 --- 特殊标签值 --- 不能直接分配,每一个都存在特殊含义

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

                        1024 - 2^20 --- LDP等一些动态协议分配标签的取值范围

        EXP --- 3位(0-7) --- 主要用于做策略 --- 可以理解为优先级,数值越大优先级越高,越高则可以优先转发数据

        S --- 栈底位 --- 仅占1位(0-1) --- 如果存在多个标签,需要使用这个标记位进行表示。如果是最后一个标签,则栈底位置1,不是则置0。如果只有一个标签,则栈底位置1

注意:

        标签不止可以打一个,可以打两个或多个。这些标签头部的有序集合我们称为标签栈

        TTL --- 生存时间 --- 和三层IP头部中的TTL值作用一样,每经过一台设备转发需要减1,因为在标签交换过程中,不看IP头部,所以,TTL的计数作用就放在了标签中了。在进入MPLS域时,由入站LSR将IP头部中的TTL值复制压入到标签中,之后,离开MPLS域时,再弹出标签时,将标签中的TTL值再复制回IP头部

静态搭建LSP

创建路由条件

       路由条件 --- 静态搭建LSP不需要所有设备都具备路由信息,因为所有路径都需要人工手工说明。只有边界(入站LSP与出站LSP)会被需要具备路由,因为他们将会核查条件

[R1]ip route-static 4.4.4.0 24 12.0.0.2

配置MPLS

        配置LSR - ID

                MPLS要求每台LSR设备都拥有唯一的身份标识,我们使用LSR-ID来标识,这个参数由32位二进制构成,按照IP地址格式配置。但是,只能手动配置不能自动生成(注意 --- 一般情况下我们习惯使用设备的环回接口IP地址作为LSR-ID)

[R1]mpls lsr-id 1.1.1.1

        激活MPLS

                全局激活

[R1]mpls
Info: Mpls starting, please wait... OK!
[R1-mpls]

                接口激活 --- 所有参与MPLS转发的接口都需要激活

[R1]int g 0/0/0
[R1-GigabitEthernet0/0/0]mpls

        搭建静态LSP

                配置入站LSR

[R1]static-lsp ingress lto4 destination 4.4.4.0 24 nexthop 12.0.0.2 out-label 16

注意:

        destination 4.4.4.0 24 nexthop 12.0.0.2 --- 需要和本地路由表中的下一跳对应上,否则静态LSP搭建失败

        out-label --- 出站标签 --- 即R1将数据包转发后压入的标签,R2收到数据包后,需要根据这个标签判断到底是到达哪个网段的数据包 --- 下一跳设备接受后需要根据这个标签判断数据到达哪个网段

[R1]static-lsp ?
  egress   Egress node --- 出站LSR
  ingress  Ingress node --- 入站LSR
  transit  Transit node --- 中转LSR
[R1]static-lsp ingress ?
  STRING<1-19>  Name of LSP(Label Switched Path) --- 起名字

                配置中转LSR

[R2]static-lsp transit lto4 incoming-interface GigabitEthernet 0/0/0 in-label 16
 nexthop 23.0.0.2 out-label 17

注意:

        incoming-interface --- 数据进入的接口

        int-lable --- --- 入站标签 --- 必须和上一跳配置的出战标签相同

                配置出站LSR

[R4]static-lsp egress lto4 incoming-interface g 0/0/0 in-label 18 

MultiProtocol Label Switching Header, Label --- 为添加的标签

[R1]display fib
Route Flags: G - Gateway Route, H - Host Route,    U - Up Route
             S - Static Route,  D - Dynamic Route, B - Black Hole Route
             L - Vlink Route
--------------------------------------------------------------------------------
 FIB Table:
 Total number of Routes : 11 
 
Destination/Mask   Nexthop         Flag  TimeStamp     Interface      TunnelID
12.0.0.255/32      127.0.0.1       HU    t[6]          InLoop0        0x0
12.0.0.1/32        127.0.0.1       HU    t[6]          InLoop0        0x0
1.1.1.255/32       127.0.0.1       HU    t[3]          InLoop0        0x0
1.1.1.1/32         127.0.0.1       HU    t[3]          InLoop0        0x0
255.255.255.255/32 127.0.0.1       HU    t[3]          InLoop0        0x0
127.255.255.255/32 127.0.0.1       HU    t[3]          InLoop0        0x0
127.0.0.1/32       127.0.0.1       HU    t[3]          InLoop0        0x0
127.0.0.0/8        127.0.0.1       U     t[3]          InLoop0        0x0
1.1.1.0/24         1.1.1.1         U     t[3]          Loop0          0x0
12.0.0.0/24        12.0.0.1        U     t[6]          GE0/0/0        0x0
4.4.4.0/24         12.0.0.2        GSU   t[7]          GE0/0/0        0x1
[R1]

注意 :

        4.4.4.0/24 12.0.0.2 GSU t[3502] GE0/0/0 0x1 --- 如果,在入站LSR上,需要根据FIB表中标识判断需要走标签交换,标识就是tunnel ID 为非0时

[R1]display mpls static-lsp --- 查看静态LSP表

[R4]display mpls static-lsp
TOTAL          :	2       STATIC LSP(S)
UP             :	2       STATIC LSP(S)
DOWN           :	0       STATIC LSP(S)
Name                FEC                I/O Label    I/O If                Status
lto4                -/-                18/NULL      GE0/0/0/-             Up    
4to1                1.1.1.0/24         NULL/1000    -/GE0/0/0             Up    

————————————————
版权声明:本文为CSDN博主「White乄joker」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_57289939/article/details/130160037

猜你喜欢

转载自blog.csdn.net/qq_57289939/article/details/130162452