vxlan 动态三层通信_方式2_通过 BGP EVPN Type 2 MAC Route(IRB路由)

发布于:2024-12-20 ⋅ 阅读:(10) ⋅ 点赞:(0)

一、拓扑:

在这里插入图片描述

二、配置思路:

1、配置 ISP 公网底层互通

2、PE 之间建立 BGP EVPN 关系,做为控制平面

l2vpn-family evpn
  peer x.x.x.x enable
  peer x.x.x.x advertise encap-type vxlan	#通告时,要支持 vxlan 类型的路由:Type 2、3、5
  peer x.x.x.x advertise irb	#开启发送irb路由功能,默认不发

3、PE 创建 EVI,使用 BD-Mode

evpn vpn-instance 1 bd-mode	#由于 vxlan 不是用 esi 来区分用户,而是用 BD 来区分用户,所以用 BD模式
  route-distinguisher 1:1
  vpn-target 1:1

4、PE 创建 BD,并绑定 EVI(3、4 配置二层实例)

bridge-domain 100
  vxlan vni 5000 split-horizon-mode	#创建 VNI 并关联 BD,然后按照水平分割方式进行转发,因为没有 ESI 号,这里用 vni 进行防环
 evpn binding vpn-instance 1

5、PE 上创建三层 IP实例,vpn-target 使用 evpn 模式,配置三层 vni(IRB路由需要用):

ip vpn-instance 1
 ipv4-family
  route-distinguisher 11:11
  vpn-target 11:11 export-extcommunity evpn
  vpn-target 22:22 import-extcommunity evpn
  vpn-target 2:2 import-extcommunity evpn		#这里要把 evpn 实例2 的 vpn-target 配到 三层实例中,因为 evpn 路由只在二层运行
 vxlan vni 1000

6、PE 上创建 vbdif,绑定三层实例(5、6 配置三层实例)

int vbdif 10
  ip binding vpn-instance 1
  ip addr 10.1.1.254 24
 arp collect host enable	#为防止广播流量泛洪,开启这个收集主机路由后,本地会产生一个Type 2 mac-route,带有mac和ip地址的,发给对方。

7、PE 配置 NVE,开启 vxlan 隧道

interface nve 1
  source 1.1.1.1
  vni 100 head-end peer-list protocol bgp
  vni 200 head-end peer-list protocol bgp
dis vxlan tunnel

8、PE 配置 VAP

interface ethernet 1/0/1.10 mode l2
   encapsulation dot1q vid 10
   rewrite pop single	#NE5000接入二层接口后,不会像CE12800一样自动弹出 vlan 标签,需要手动弹出一下vtag
   bridge-domain 100

三、验证:

1、从 PC1 到 PC4 跟踪一下:

在这里插入图片描述

2、看一下抓包,可以看到,数据是通过 三层 vni 1000 传递的:

在这里插入图片描述

3、看一下 PE1 的实例路由,可以看到,因为有了 IRB 路由,对端 PE 的路由通过 BGP EVPN Type 2 mac-route 传递到了三层实例路由表中:

在这里插入图片描述

四、详细配置:

NE1(PE1):

evpn vpn-instance 1 bd-mode
route-distinguisher 1:1
vpn-target 1:1 export-extcommunity
vpn-target 1:1 import-extcommunity

evpn vpn-instance 2 bd-mode
route-distinguisher 2:2
vpn-target 2:2 export-extcommunity
vpn-target 2:2 import-extcommunity

ip vpn-instance 1
ipv4-family
route-distinguisher 11:11
vpn-target 11:11 export-extcommunity evpn
vpn-target 22:22 import-extcommunity evpn
vpn-target 2:2 import-extcommunity evpn #这里要把 evpn 实例2 的target 配到 三层实例中,因为 evpn 路由只在二层运行
vxlan vni 1000

bridge-domain 100
vxlan vni 100 split-horizon-mode
evpn binding vpn-instance 1

bridge-domain 200
vxlan vni 200 split-horizon-mode
evpn binding vpn-instance 2

interface Vbdif100
ip binding vpn-instance 1
ip address 10.1.1.254 255.255.255.0
arp collect host enable

interface Ethernet1/0/0
undo shutdown
undo dcn
undo dcn mode vlan

interface Ethernet1/0/0.10 mode l2
encapsulation dot1q vid 10
rewrite pop single
bridge-domain 100

interface Ethernet1/0/0.20 mode l2
encapsulation dot1q vid 20
rewrite pop single
bridge-domain 200

interface Ethernet1/0/1
undo shutdown
ip address 13.1.1.1 255.255.255.0
undo dcn
undo dcn mode vlan

interface LoopBack0
ip address 1.1.1.1 255.255.255.255

interface Nve1
source 1.1.1.1
vni 100 head-end peer-list protocol bgp
vni 200 head-end peer-list protocol bgp

bgp 100
router-id 1.1.1.1
undo default ipv4-unicast
peer 2.2.2.2 as-number 100
peer 2.2.2.2 connect-interface LoopBack0

ipv4-family unicast
undo synchronization
undo peer 2.2.2.2 enable

ipv4-family vpn-instance 1
advertise l2vpn evpn

l2vpn-family evpn
undo policy vpn-target
peer 2.2.2.2 enable
peer 2.2.2.2 advertise irb
peer 2.2.2.2 advertise encap-type vxlan

ospf 1 router-id 1.1.1.1
area 0.0.0.0
network 1.1.1.1 0.0.0.0
network 13.1.1.0 0.0.0.255

undo dcn

AR1(P):

interface GigabitEthernet0/0/0
 ip address 13.1.1.3 255.255.255.0 
#
interface GigabitEthernet0/0/1
 ip address 23.1.1.3 255.255.255.0 
#
interface LoopBack0
 ip address 3.3.3.3 255.255.255.255 
#
ospf 1 router-id 3.3.3.3 
 area 0.0.0.0 
  network 3.3.3.3 0.0.0.0 
  network 13.1.1.0 0.0.0.255 
  network 23.1.1.0 0.0.0.255 
  #

NE2(PE2):

evpn vpn-instance 1 bd-mode
 route-distinguisher 3:3
 vpn-target 1:1 export-extcommunity
 vpn-target 1:1 import-extcommunity
#
evpn vpn-instance 2 bd-mode
 route-distinguisher 4:4
 vpn-target 2:2 export-extcommunity
 vpn-target 2:2 import-extcommunity
#
ip vpn-instance 1
 ipv4-family
  route-distinguisher 22:22
  vpn-target 22:22 export-extcommunity evpn
  vpn-target 11:11 import-extcommunity evpn
  vpn-target 1:1 import-extcommunity evpn
 vxlan vni 1000
#
bridge-domain 100
 vxlan vni 100 split-horizon-mode
 evpn binding vpn-instance 1
#
bridge-domain 200
 vxlan vni 200 split-horizon-mode
 evpn binding vpn-instance 2
#
interface Vbdif200
 ip binding vpn-instance 1
 ip address 10.2.2.254 255.255.255.0
 arp collect host enable
#
interface Ethernet1/0/0
 undo shutdown
 undo dcn
 undo dcn mode vlan
#
interface Ethernet1/0/0.10 mode l2
 encapsulation dot1q vid 10
 rewrite pop single
 bridge-domain 100
#
interface Ethernet1/0/0.20 mode l2
 encapsulation dot1q vid 20
 rewrite pop single
 bridge-domain 200
#
interface Ethernet1/0/1
 undo shutdown
 ip address 23.1.1.2 255.255.255.0
 undo dcn
 undo dcn mode vlan
#
interface LoopBack0
 ip address 2.2.2.2 255.255.255.255
#
interface Nve1
 source 2.2.2.2
 vni 5000 head-end peer-list protocol bgp
 vni 5001 head-end peer-list protocol bgp
#
bgp 100
 router-id 2.2.2.2
 undo default ipv4-unicast
 peer 1.1.1.1 as-number 100
 peer 1.1.1.1 connect-interface LoopBack0
 #
 ipv4-family unicast
  undo synchronization
  undo peer 1.1.1.1 enable
 #
 ipv4-family vpn-instance 1
  advertise l2vpn evpn
 #
 l2vpn-family evpn
  undo policy vpn-target
  peer 1.1.1.1 enable
  peer 1.1.1.1 advertise irb
  peer 1.1.1.1 advertise encap-type vxlan
#
ospf 1 router-id 2.2.2.2
 area 0.0.0.0
  network 2.2.2.2 0.0.0.0
  network 23.1.1.0 0.0.0.255
#
undo dcn
#

五、总结:

和方式1 直接宣告网关路由的方式不同,方式2 需要在三层实例路由中开启宣告 L2vpn evpn 能力,并且在 L2vpn evpn 地址族中开启宣告 irb 路由,并且,还需要在三层 IP实例下,配置 evpn 模式的 vpn-target,并打开对端二层 evpn 的 vpn-target 出向值,才能收到对端的 IRB路由
ensp 中,由于用的是NE5000E的设备,无法做分布式网关,只能测一下 EVPN 的 Type 2 三层互通的情况,需要用 CE12800
另外:如果有三层实例,那么需要在和CE的二层接口上弹出tag,如果仅是二层,在二层接口上弹出vlan tag,则无法通信,并且二层 vxlan vni 都是 down 的,这是因为二层和三层通信方式的不同,三层不需要 vlan tag,而二层需要带上vlan tag 才能进行互通

六、踩过的坑:

配置完成后,用 PC1 ping PC4,发现不通,于是查了一下 mac-route,发现 mac-route 里的路由都没有 IP 地址,仔细检查,发现网关上没有开启主机路由收集功能,未开时是这样的:
在这里插入图片描述
开启后是这样的:
在这里插入图片描述

七、最后再附一张 IRB 路由的三种形式的图:

在这里插入图片描述