CCNP9:MPLS 虚拟网络专线的【原理、配置】、MPLS的【原理、优化、配置】、MPLS解决BGP路由黑洞

CCNP9:MPLS 虚拟网络专线 的【原理、配置】、MPLS的【原理、优化、配置】、MPLS解决BGP路由黑洞

一、MPLS(多协议标签交换):

我们之前说过一个AS内部在运行BGP协议时,如果有AS没有运行BGP协议,那么该设备的存在就会导致路由黑洞,因为在数据层面它没有路由。

为了更好的解决路由黑洞,我们就使用这个技术:MPLS

1、早期的MPLS:

有关名词:
包交换:依赖报文中的IP地址进行数据转发(基于3层IP地址进行路由)。

标签交换:在二层与三层的中间,人为的添加一个2.5层出来。之后路由器查看不再使用3层,而是基于2.5层进行转发(基于2.5层标签号路由)

在没有CEF技术的时候,假设当要去往1.1.1.0/24这个网段,它的标签号是17,去这个网段的出接口为F0/0,源、目MAC分别是X、Y。这些都需要MPLS自己解决,需要看路由器的路由表、ARP表

早期的MPLS最初的意义是让中间的设备仅仅在于查一张表,这样能够相对较快,随着CPU的运算能力的不断提升,包交换方式从原始到传统(一次路由多次交换)、到最后的CEF快速的数据交换方式出现,MPLS在速度方面的优势已经完全没有了,几年之后它就在这方面被淘汰了。

但至于今天MPLS不但保留而且非常流行的原因是:MPLS在有些方面是不可以被替代的,它有以下主要应用:
①解决BGP的路由黑洞,运营商首先要考虑。
②实现MPLS 虚拟网络专线,它是所有 虚拟网络专线中最接近于专线的。
③做MPLS TE 流量工程

2、相关理论:

(1)现在的MPLS使用的前提是设备基于CEF工作:
是因为CEF有以下作用:
①启动CEF后,表格(二进制数)可以被ASIC(硬件芯片)直接调用
②CEF解决了递归问题,便于MPLS生成标签转发表格。
③CEF工作后生成FIB表,只有FIB可以存储标签表。

(2)控制层面:

这个我会一会儿详细的讲,现在只有脑海中留个印象就可以了。

用于交互路由信息(路由协议收敛),进行标签号的分发,就是为相应的路由分对应的标签。

(3)数据层面:
根据路由表转发用户数据报文,基于标签号进行数据转发,压入标签、弹出标签。

3、MPLS的基本工作原理:

(1)控制层面:

R4把去往B的路由给R3时(或者我们可以理解为通过IGP/EGP交互路由条目时),R3首先生成路由表,路由表生成之后就会生成ARP表。
在这里插入图片描述

接着CEF基于路由表解决了递归问题生成FIB表。然后 TDP(私有)/LDP(公有)基于CEF表格中的每一个目标网络号生成标签号,进而形成一张表格LIB表,最后将FIB表和LIB表相结合生成LFIB表。

总结一下这些表:

注解
路由表 通过交互获取路由条目时,首先生成。
FIB表 转发信息数据库,这个一般情况下就有,由CEF基于路由表并解决递归生成。
LIB表 标签信息数据库(本地和邻居关于所有学习到的路由条目生成的标签号)
LFIB表 标签转发信息数据库(LFIB=FIB+LIB),包含目标网络号、标签号、出接口、[源、目]MAC。

但是上面的FIB表不完整,我们知道R3会把去往B网段的路由还会发给R2,同理R2也会建立一张LFIB表,R2对于该网段也会生成一个标签,这里假设为20
在这里插入图片描述

(2)数据层面:

那么对于完整的LFIB表来说,去往某网段,还应该包括进来的标签号,替换的标签号,出接口,新的源、目MAC。

例:R3的LFIB里记录了去1.1.1.0网段时,进来的标签号为20,出去替换的标签号为27,出接口,以及出接口的新的源、目MAC

这张图是A访问B的时候:
在这里插入图片描述
这样子做,R2、R3就比较省事只用查一张表,R1、R4是查两张表。

(3)MPLS工作过程总结:

当控制层面使用路由协议传递路由条目后,路由器上使用TDP/LDP为本地FIB表中每一条存在的路由条目均分配一个标签号,装载于LIB表中,同时传递给邻居。

LIB中还记录邻居传递到本地标签号,之后路由器基于本地FIB和LIB表生成LFIB(标签转发信息数据库——记录标签号的最佳路径对应关系

数据层面工作时,第一跳路由器负责标签的压入,中间路由器基于标签号转发流量,进行标签号的替换,最后一跳路由器负责标签的弹出。

注:入标签号为本地分配的标号,出标签为下一跳(下游)分配的标签号。基于数据层面定义,存在上下游路由器概念。

4、MPLS细化:

(1)MPLS的数据封装:
MPLS的数据封装与2层和3层之间,故称为2.5层。
在这里插入图片描述
(2)MPLS的数据包格式:
下面这部分就是打进去的东西,总长度为32位(4个字节)。
在这里插入图片描述

位数 名字 作用
0-19 Label
标签号
存在2^20个号码,其中0-15号保留,一个标签号对应一条路由。
20-22 EXP
优先级
存在2^3=8个优先级,用于QOS
23 S
栈底位
为1标识本信息为最后一层标签信息,最多可以存在3层标签
24-31 TTL
生存时间
当标签号被压入时,将复制3层报头的TTL值,然后每经过一个路由器减1,当标签号弹出时,将现在TTL的标签号复制回 IP 报头中。

在这里插入图片描述
一层标签为普通MPLS,主要用于解决BGP的路由黑洞。
二层标签为MPLS 虚拟网络专线使用。
三层标签为MPLS TE 使用。

使用MPLS后,二层若依然为以太网封装,那么类型号将变化:
0x8847 MPLS单播
0x8848 MPLS多播

5、有关MPLS名词注解:

在这里插入图片描述

名词 注解
MPLS domain MPLS工作的范围
LSR
(P路由器)
标签交换路由器,查看数据包的标签号,然后基于LFIB表进行转发
Edge LSR
(PE路由器)
边界标签路由器,在数据层面时:MPLS域的第一跳路由器负责标签的压入,最后一跳负责弹出。
CE
客户端路由器
不工作于MPLS域,使用FIB表转发流量。

二、MPLS的优化(次末跳):

MPLS的优化,又叫做PHP的次末跳(次末跳:倒数第二跳),默认执行
在这里插入图片描述
最后一跳路由器,在默认情况下需要查看LFIB表后再查看FIB表(由于最后一跳路由器在LFIB表中确实找不到下一跳了,因此它需要弹标签,弹完标签后就会查FIB表)

之后再转发数据,PHP次末跳可以使倒数第二跳在已知出接口、下一跳等信息时便将标签号弹出,然后基于出接口转发流量。导致最后一跳路由器发现没有标签了,那么它就仅查看FIB表

最后一跳路由器,将本地直连路由传递给邻居时使用标号3来告知对方为倒数第二跳。

非直连路由正常分配标签号,针对域外的非直连路由,域内的最后一跳路由器需要查询两张表。因此建议PE路由器直接连接用户,不再连接其他路由器。

标识 注解
pop 标识仅弹出最上层标签,仅仅只是倒数第二跳(PHP的另一种解释)
untagged 弹出所有标签,意味离开了MPLS domain。

三、MPLS的配置:

在这里插入图片描述
1、首先要有路由
2、Cisco默认开启CEF:

R2(config)#ip cef

3、修改MTU,链路两端需一致(可选,建议配置),凡是标签涉及到的接口建议都配置MTU:

MPLS 建议MTU
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值