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

[R3]mpls lsr-id 3.3.3.3

[R3]mpls

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

[R3-mpls]mpls ldp

[R3-mpls-ldp]int g0/0/0

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

[R3-GigabitEthernet0/0/0]mpls 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

相关推荐
龙哥说跨境31 分钟前
如何利用指纹浏览器爬虫绕过Cloudflare的防护?
服务器·网络·python·网络爬虫
懒大王就是我1 小时前
C语言网络编程 -- TCP/iP协议
c语言·网络·tcp/ip
Elaine2023911 小时前
06 网络编程基础
java·网络
海绵波波1072 小时前
Webserver(4.3)TCP通信实现
服务器·网络·tcp/ip
热爱跑步的恒川5 小时前
【论文复现】基于图卷积网络的轻量化推荐模型
网络·人工智能·开源·aigc·ai编程
云飞云共享云桌面6 小时前
8位机械工程师如何共享一台图形工作站算力?
linux·服务器·网络
音徽编程8 小时前
Rust异步运行时框架tokio保姆级教程
开发语言·网络·rust
幺零九零零9 小时前
【C++】socket套接字编程
linux·服务器·网络·c++
23zhgjx-NanKon10 小时前
华为eNSP:QinQ
网络·安全·华为
23zhgjx-NanKon10 小时前
华为eNSP:mux-vlan
网络·安全·华为