其他分享
首页 > 其他分享> > MPLS+BGP+静态引入CE路由的双层标签详解

MPLS+BGP+静态引入CE路由的双层标签详解

作者:互联网

文章目录

参考阅读

实验详解手工指定MPLS的LSP(Huawei设备)
MPLS+BGP产生的数据层面的路由黑洞详解

双层标签含义

在这里插入图片描述

对于MPLS+BGP的组网中,需要将各个CE间的路由打通,这样在公网的内部就回出现两层的label;

实验拓扑

在这里插入图片描述
说明:
1、R2 R4之间建立BGP-vpnv4的邻居,R3不运行BGP进程
2、R2、R3、R4组成一个MPLS-domain
3、R1、R5分别作为独立的客户侧,其路由网段为172.16.1.0/24 172.16.5.0/24
4、CE与PE间采用静态引入的方式打通

配置思路

路由配置
[R1]ip route-static 0.0.0.0 0.0.0.0 172.16.12.2
[R2]ip route-static vpn-instance a 172.16.1.0 255.255.255.0 
[R4]ip route-static vpn-instance b 172.16.5.0 255.255.255.0 
[R5]ip route-static 0.0.0.0 0.0.0.0 172.16.45.4

MPLS配置就是全局、接口使能mpls、mpls ldp即可 参考阅读的实验由配置上说明

vpn-instance配置
[R2-vpn-instance-a]di th
[V200R003C00]
#
ip vpn-instance a
 ipv4-family
  route-distinguisher 12:12
  vpn-target 15:15 export-extcommunity
  vpn-target 15:15 import-extcommunity
#
return
[R4-vpn-instance-b]di th
[V200R003C00]
#
ip vpn-instance b
 ipv4-family
  route-distinguisher 45:45
  vpn-target 15:15 export-extcommunity
  vpn-target 15:15 import-extcommunity
#
return


BGP配置
[R2-bgp]di th
[V200R003C00]
#
bgp 234
 undo default ipv4-unicast
 peer 10.1.4.4 as-number 234 
 peer 10.1.4.4 connect-interface LoopBack0
 #
 ipv4-family unicast
  undo synchronization
  undo peer 10.1.4.4 enable
 # 
 ipv4-family vpnv4
  policy vpn-target
  peer 10.1.4.4 enable
 #
 ipv4-family vpn-instance a 
  import-route direct
  import-route static
#
return

[R4-bgp]di th
[V200R003C00]
#
bgp 234
 peer 10.1.2.2 as-number 234 
 peer 10.1.2.2 connect-interface LoopBack0
 #
 ipv4-family unicast
  undo synchronization
  undo peer 10.1.2.2 enable
 # 
 ipv4-family vpnv4
  policy vpn-target
  peer 10.1.2.2 enable
 #
 ipv4-family vpn-instance b 
  import-route direct
  import-route static
#
return

检查

BGP-vpnv4邻居

在这里插入图片描述

MPLS LDP邻居

在这里插入图片描述
R1的私网路由pingR5在R3的入接口处(S4/0/0)抓包,可以看到是双层的label
在这里插入图片描述

控制+数据层面

下面就对控制和数据层面分别分析路由和label的情况

控制平面

1、私网路由,私网标签
R4将vpn-instance b中的static引入到bgp中
在这里插入图片描述

BGP将RD+ipv4 组成一个96bit的vpnv4路由,且带上export的vpn-target45:45 BGP-vpnv4为这条私网路由分配的私网label
在这里插入图片描述

这条私网路由通过vpnv4的邻居关系传递到R2,R2就收到了这条私网路由,且label为1026,通过10.1.4.4这个vpnv4邻居发来的
在这里插入图片描述

至此,R2收到这个私网路由172.16.5.0/24 下一跳是10.1.4.4 label为1026 是由R4 的bgp vpnv4产生
2、公网路由,公网标签
R4给作为egress给自己的in打上3的label,即告诉R3要进行PHP
在这里插入图片描述

R3打上1025传递给R2
在这里插入图片描述

R2就收到了这个1025的label
在这里插入图片描述

至此,R2收到这个公网路由10.1.4.4/32 下一跳是10.1.23.3 label为1025 是由R3的mpls ldp分配

数据层面

1、R1查询本地FIB,找到下一跳给到R2
在这里插入图片描述

2、R2查询vpn-instance a的FIB,可以看到这IP包要push一个1026的label,变成标签包,这里的BGPNextHop意思是这个label是通过控制平面的BGP-vpnv4传递对于私网传递过来的label
在这里插入图片描述

此时数据包进入到了MPLS-domain中(可以理解为进入公网的范畴),要经过BGP来进行传递,这时就会再次push一个公网的标签,在R2上查看LFIB可以看到对于10.1.4.4有两种操作,分别是Ingress、Transit;看哪个取决于Token,上一步中的tunnel-id对应这里的Fec和Token;继续查询tunnel-id 0x3可以看出对于公网10.1.4.4就要封装1025这个label,至此这个数据包就有了两层label,且下一跳是10.1.23.3 即R3
在这里插入图片描述

此时这个数据包就变成了

Sip 172.16.1.1 dip 172.16.5.5 | 私网label 1026 |公网label 1025 | ppp

如下是对R3的入接口进行抓包(serial 4/0/0)
在这里插入图片描述

此时数据包来到R3后,R3收到一个label的包,肯定查询LFIB,R3对于公网的label做了一个POP操作,此LFIB中存在出接口与下一条,将label包扔给R4
在这里插入图片描述

在这里插入图片描述

如下是对R3的出接口进行抓包,可以看到公网的label被POP了,只留下了私网的label
在这里插入图片描述

数据包来到R4后,查询in-label为1026的LFIB,做的是POP操作,但是没有出接口与下一跳,就要继续查询FIB,注意查找的是vpn-instance b(根据的是VrfIndex)

在这里插入图片描述
在这里插入图片描述

然后数据包扔给R5,路由就通了

总结

后面还会继续更新BGP+MPLS+OSPF的CE联动


标签:10.1,R2,R3,MPLS,CE,label,BGP,vpn
来源: https://blog.csdn.net/qq_41959899/article/details/122754665