拓扑结构
拓扑图以思科厂商为例,可自行更换为其他厂商设备

(1)MPLS的体系结构
控制层面:路由协议→RIB,标签分发协议→LIB
数据层面:RIB→FIB(IP转发表),LIB+FIB→LFIB(标签转发表,最优的LIB)
转发数据看FIB表和LFIB表
收到一个纯IP包首先看FIB表
收到带标签的就看LFIB表
(2)基本配置
支持建立本地直连的LDP邻居、远端LDP邻居
· 思科
Cisco:
ip cef
mpls label protocol ldp
mpls ldp router-id loopback 0
mpls ip
##############以上配置默认已经存在
int e0/0
mpls ip #接口下开启mpls功能
查看:
RIB:show ip route
LIB:show mpls ldp neibores
LIB:show mpls ldp bindings --查看标签绑定表
FIB:show ip cef --查看cef表
LFIB:show mpls forwarding-table --标签转发表
clear mpls ldp neighbor *
show mpls ldp discovery
· 华为
Huawei:
[R2]mpls lsr-id 2.2.2.2
[R2]mpls
[R2]mpls ldp
[R2-mpls]int g0/0/1
[R2-GigabitEthernet0/0/1]mpls
[R2-GigabitEthernet0/0/1]mpls ldp
# 路由与标签共存,默认没有使用标签处理,建议在MPLS边界设备开启路由迭代功能
[R2]route recursive-lookup tunnel --开启路由迭代功能
#华为默认情况下对路由表中学习到的IGP条目和主机条目分发标签
#因为MPLS并没有主要应用在数据转发上,如果路由表中的路由条目太多,则导致生成过多的LSP,造成资源浪费
[R2]mpls
[R2-mpls] lsp-trigger all #给所有接口分配标签
查看命令:
<R3>display mpls ldp peer
<R3>display mpls lsp
· 华三
H3C:
[H3C-R2]mpls lsr-id 2.2.2.2
[H3C-R2]mpls ldp
[H3C-R2]int g0/1
[H3C-R2-GigabitEthernet0/1]mpls enable
[H3C-R2-GigabitEthernet0/1]mpls ldp enable
[H3C-R2]mpls ldp
[H3C-R2-ldp]lsp-trigger all #开启所有接口的标签分配
[H3C-R2]bgp 65002
address-family ipv4 unicast
unicast-route recursive-lookup tunnel #开启路由迭代(在出栈和入栈路由器上开启)
#测试MPLS域内LSP路径是否可以正常通信
[H3C-R2]ping mpls -a 2.2.2.2 ipv4 5.5.5.5 24
查看命令:
display mpls lsp
display mpls ldp lsp
display mpls ldp peer
display mpls summary
· 未开启lsp-trigger all之前(以华三为例)


· 开启lsp-trigger all之后(以华三为例)


(3)抓包分析MPLS交互过程




(4)案例(以思科为例)
①当所有设备都开启cef,PC1访问4.4.4.4
PC1把包发给网关,然后网关收到有个IP包,查看FIB表

然后发现R1是通过标签18把包发给R2,接着R2就要查看FIB+LIB=LFIB表

从R2的LFIB表可以发现R2通过标签18将包发给R3

R3收到之后查看LFIB表,发现将包发给R4需要弹标签,接着吧标签移除发给R4
然后R4将会收到一个IP包,所以需要去看自己的FIB表,发现是给自己的lo0接口


②当所有设备都开启cef,但是R3关闭cef时,PC1访问4.4.4.4


R2发给R3,从R3的LFIB表里可以看出发给R4的时候没有标签,并且执行的动作是丢弃。



1万+

被折叠的 条评论
为什么被折叠?



