HCIP第九章(MPLS理论)

一。MPLS(多协议标签交换)简介:

标签交换:数据包再进入到的MPLS的域内后,将在第2层和第3层中间压入标签号,使得域内的路由器在转发数据包的时候,++路由器基于2.5层的标签号进行路由行为,在数据包的2.5层压入标签号。路由器基于2.5的标签号查询本地的LFIB表(标签转发信息数据库),++ 即可进行数据转发,第一跳路由器压入标签,最后一跳弹出标签,最初在包交换仅支持原始交换的时候,++标签的意义在于更快的查询++,但是随着包交换的加速,使用标签交换失去了快速查表的优势

包交换:包为网络层的PDU,故包交换是基于IP地址进行数据转发,就是路由器的路由行为(路由器和终端基于3层的ip地址进行数据转发路由行为)

两张表:路由表,ARP(下一跳,目标MAC)

1.原始包交换:需要路由器和ARP表,数据包进入路由器后,路由器需要查询本地的路由表(RIB-路由信息数据库),再基于下一跳或者目标ip查询ARP表,才能进行数据的转发

2.快速包交换:一个数据流的第一个数据包进行原始交换,过程中生成转发规则缓存,改数据流剩下的数据包全部基于缓存中规则进行转发(一次路由多次交换,每个数据流中的第一个包被基于原始包交换规则转发,过程中生成缓存列表,记录整个通讯过程,改数据流量剩余数据包仅查询缓存记录即可)

3.特快交换:无需路由,直接交换 路由器表->FIB ARP->ADJ,产生LFIB表

二。MPLS控制与数据层面

1.MPLS控制层面

路由协议(直连,动态,静态)完成路由收敛后--路由器生成RIB-FIB

MPLS的执行协议LDP--++基于本地本地的FIB表中的每一个目标网段,分配一个本地唯一的标签号++ ,存于本地的LIB中,然后与上下游邻居共享LIB表,最后本地基于完整的LIB表加上本地的FIB表,生成最佳标签转发规则--LFIB

LDP:基于UDP和TCP的646端口工作,先使用udp发送组播hello包认识邻居,获取邻居ip地址,再和该直连邻居建立TCP会话,邻居建立后,为了邻居间关系的稳定,一般使用设备的环回地址来建立TCP会话,建立设置环回地址为mpls协议的router-id,将该id值将携带再组播收发hello报文中,之后自动建立tcp会话

2.MPLS数据层面:

数据包进入第一跳路由器后,压入下一跳设备分配的标签号,然后将流量转发给下一跳路由器,之后域中路由器基于数据包中的2.5层标签号,查询本地的LFIB表来进行数据包的转发,以及标签号的替换,当数据到达最后一跳路由器,将弹出标签号

三。标签号:

标签被压入在2层和3层之间,称为2.5层(标签的格式:32位,4个字节)

前20位为标签号,2*20个标签号,其中1-15号保留,作为特殊编号

第21-23位为exp(策略位),3为8个数,为优先级,用于QOS策略使用

第24位为栈底位,该位1标识该标签的最后一层标签,MPLS最大可以在一个数据包中封装3次标签

普通的MPLS一层标签 MPLS VPN两层标签 MPLS TE 3层标签

TTL 生存时间 在第一次压入标签时,将当前数据包中的3层TTL复制到标签中,之后查询一次标签TTL减一,在最后一次弹出标签时将2.5层的TTL复制到3层报头中

四。MPLS的次末跳:倒数第二跳,默认执行

过程:第一台发出一个不带标签的包,进入路由器(FIB表找到下一跳,++并且打上标签++ ),传入下一台,有标签则通过标签(LFIB)找下一跳,到达倒数第二台,不查询FIB表直接弹出该标签号,这时候到达最后一台路由器则没有标签,终究会查询FIB表

解释:边界LSR将本地的直连网段传递给MPLS域内邻居的时候,LDP分配标签号为3,告知倒数第二跳设备它的身份,导致倒数第二跳设备在查询LFIB表后,使得转发路径的前提下提前弹出标签,使得最后一跳路由器均只需要查询FIB表,否则最后一跳路由器在查询LFIB后,弹出标签还需要查询FIB

五。MPLS配置:

查看tcp关系:dis tcp status

查看mpls邻居表:display mpls ldp peer

查看LIB表,查看标签号:display mpls ldp lsp

查看FIB表:display fib

R3mpls lsr-id 3.3.3.3

R3mpls

Info: Mpls starting, please wait... OK!

R3-mplsmpls ldp

R3-mpls-ldpint g0/0/0

R3-GigabitEthernet0/0/0mpls(接口配置)

R3-GigabitEthernet0/0/0mpls ldp

注释:华为默认只为32号开启标签号,如果希望全部都开启:

mpls

lsp-trigger all

六.解决BGP路由黑洞

MPLS协议并不会同通过BGP协议学习的路由条目分配标签号,而是再访问这些BGP路由目标网段的时候,++在流量中压入到达这些网段的BGP下一跳设备地址的标签号++

例:R2从BGP邻居5.5.5.5学习到6.6.6.0网段的路由,R2在访问6.6.6.0时,将在数据包中压入到达5.5.5.5ip地址的标签号,来穿越中间没有运行BGP协议的设备,实现打破路由黑洞

注:华为设备默认不为BGP协议执行下一跳标签机制,cisco默认执行

华为设备需要:route recursive-lookup tunnel路由基于隧道进行递归查询

七.MPLS VPN--ISP

1.CE将私有路由传递给PE端

2.PE端收到不同CE发过来的相同网段路由时,使用RD值进行区分--格式X:X 32位

3.PE端将附在RD的私有路由不能直接装载于本地共有路由中,需要放置到对应的VRF(虚拟路由转发)空间内,之后再路由赋RT值,用于传递到对端的PE设备,进行端区分信息

VPNV4路由=普通IPV4路由+RD+RT

4.VPNV4路由需要MP-BGP来进行传递,对端基于RT值,将路由装载到对应的VRF空间内,再共享给对应的CE

5.控制层面工作完成后,数据层面需要基于MPLS来工作,由于数据层面不能携带RD/PT值,故MPLS将在数据包中压入两层标签,++外层标签用于穿越中间设备,打破BGP路由黑洞,内层标签用于对应的VRF空间++

配置方法:

ip vpn-instance a1(空间名为a1)

ipv4-family(进入IPV4的配置模式下)

++route-distinguisher 1:1(++配置RD值为1:1)

++vpn-target 1:1(++配置RT值为1:1,必须对端PE的RT值一致)

int g0/0/0(进入与私有相连的接口内)

ip binding vpn-instance a1(将接口绑定到a1空间内)

ip add 192.168.1.2 24 (再对接口进行配置ip地址)

注释:需要命令display ip routing-table vpn-instance a1才能查看配置的ip地址

同理ping:ping -vpn-instance a1 192.168.2.1才能进行私有的访问

如果是bgp配置VPN:

bgp 1

ipv4-family vpnv4

peer 4.4.4.4 enable

如果是配置路由(如rip和ospf):

对于rip: 对于ospf:

rip 1 vpn-instance a1 ospf 2 vpn-instance a2

version 2 area 0

network 192.168.2.0 network 192.168.2.1 0.0.0.0

如果是重发布:

bgp 1

ipv4-family vpn-instance a1(进入空间内)

import-route rip 1

查看bgp路由:display bgp vpnv4 vpn-instance a1 routing-table

查看内层标签表:display mpls lsp vpn-instance a2

相关推荐
星恒讯工业路由器19 小时前
5G FWA技术演进与趋势
网络·5g·信息与通信·4g·5g fwa·3gpp规范·fwa趋势
星夜夏空991 天前
网络编程(1)
服务器·网络
上海云盾-小余1 天前
中小站点防护避坑:低价高防服务存在的各类安全短板剖析
网络·爬虫·安全·ddos
数据知道1 天前
邮件安全实战:SPF/DKIM/DMARC 配置与钓鱼绕过
网络·安全·web安全·网络安全·邮件安全
王莎莎-MinerU1 天前
MCP 解决的是工具接入,科研 Agent 还缺的是科学证据接口标准化
开发语言·网络·人工智能·深度学习·pdf·c#·php
Chloeis Syntax1 天前
JAVAEE初阶 --- 构造HTTP请求
网络·网络协议·http·postman
砚凝霜1 天前
软考网络工程师|第 1 章 计算机网络基础 完整备考笔记
网络·笔记·计算机网络
rcms152702692181 天前
NIKON 4S019-394 接口模块
网络
某不知名網友1 天前
Linux Socket 编程完整讲解
网络
ICT系统集成阿祥1 天前
不用复杂命令,快速定位二层 / 三层网络故障
网络·网络排查·二层故障·三层故障