目录
MPLS
MPLS --- 多协议标签交换
包交换
标签交换
包交换的变更
MPLS主要应用于三大领域
编辑
MPLS和包交换一样,其过程也可以分为控制层面和数据层面
标签交换过程(数据层流量)
标签解读
静态搭建LSP
创建路由条件
配置MPLS
配置LSR - ID
激活MPLS
搭建静态LSP
包交换 --- 数据组成数据包,之后,在各个网络节点中不断传递,最终达到目标。(可以简单的理解为是三层转发的过程)
包交换转发效率不高的问题所在:
完成过程需要查两张表 --- 路由表,ARP缓存表
路由表的匹配原则 --- 最长匹配原则,导致路由表的查询效率不会太高
递归查找 --- 在一定情况下,设备需要递归查出接口或者下一跳
IP头部(IPV4)是可变长头部 --- 则处理头部信息时必须依靠软件来处理。相对而言,以基于硬件来实现(通常使用支持二元运算的硬件芯片。如:CAM),这样,即使数量很多,也可以在短时间内完成匹配动作,效率要远高于路由表的软件查找
在二层和三层封装之间添加一个与路由条目存在映射关系的标签,之后,维护一张记录接口表,携带标签的数据来到设备上,将先看到标签,之后,基于维护的表进行转发,而不看三层的数据。因为标签本身短小而且定长,所以其转发效率应该高于包交换
注意:
标签交换需要给数据包中先打上标签,之后达到目标之前,还需要弹出标签,因此标签是传输过程中提高转发效率的手段。因为有这些动作的存在,所以标签交换转发效率的提升相较于包交换不明显
因为标签交换的转发效率并不是很明显,所以,在数据转发上又继续研发改进包交换,至今,存在三次大的变更:
进程交换 --- process switching --- 最早的包交换,就是每个数据包到设备上需要先查看路由表,之后再看ARP缓存表来确定二层封装内容
快速包交换 --- fast switching --- 基于流的包交换 --- 一次路由、多次交换 --- 一股数据流来到设备上,只需要针对数据流中的第一个数据包进行路由查询过程,之后,将数据包的特征(一般使用五元组来标识数据流)及转发方式记录在缓存中,之后,数据流中的其他数据来到设备上,将直接比对缓存中的特征,比对上则直接按照转发方式进行转发,而不需要所有数据包都进行路由过程,可以极大地提高效率
思科的特快交换技术 --- Cisco Express Forwading --- 简称CEF(思科私有),其思路就是将路由表和ARP缓存表中的内容进行预读取,之后都记录在CEF表中。并且该表支持硬件转发。
虽然CEF技术是思科的私有技术,但是各大厂商也基于其思路设计出了属于自己特快交换技术。华为设备在进行路由转发时就基于FIB(转发信息表),该表是支持硬件转发的。
MPLS --- 和包交换共同发展的一个标签交换技术 --- 因为标签交换中的标签需要跟路由信息相关,所以MPLS协议作为多标签交换技术,可以识别并兼容多种三层协议(IPV 4,IPV6),其兼容性较强
用于解决BGP的路由黑洞问题
MPLS VPN
MPLS TE --- 流量工程 --- 简单理解为控制流量转发的路径
所用路由器激活MPLS之后,将按照MPLS的规则实现标签交换,这些运行了标签交换的设备所组成的网络,我们称为MPLS域
所有运行MPLS的路由器都可以称为LSR(标签交换路由器)
因为所有匹配到同一条路由的所有数据报文,他们最终走的路线都是一样的,所以我们只需要分配同一个标签即可。在MPLS中,我们把这些具有相同特征的数据报文称为FEC --- 等价转发类。一个FEC只需要分配一个标签即可
标签分配后,设备需要将路由信息和标签的映射关系记录在一张表中 --- LIB(标签信息表)后,结合FIB表,生成LFIB(标签转发表) --- 这张表中记录的是标签编号、对应出接口和下一跳信息
包交换
控制层面 --- 路由协议的数据流方向,目的是为了获取位置网段的路由信息,生成路由表
数据层面 --- 设备基于已经完善的路由表(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)会被需要具备路由,因为他们将会核查条件
[R1]ip route-static 4.4.4.0 24 12.0.0.2
MPLS要求每台LSR设备都拥有唯一的身份标识,我们使用LSR-ID来标识,这个参数由32位二进制构成,按照IP地址格式配置。但是,只能手动配置,不能自动生成(注意 --- 一般情况下我们习惯使用设备的环回接口的IP地址作为LSR-ID)
[R1]mpls lsr-id 1.1.1.1
全局激活
[R1]mpls
Info: Mpls starting, please wait... OK!
[R1-mpls]
接口激活 --- 所有参与MPLS转发的接口都需要激活
[R1]int g 0/0/0
[R1-GigabitEthernet0/0/0]mpls
配置入站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