使用BGP EVPN方式部署分布式网关VXLAN

网友投稿 765 2022-10-18


使用BGP EVPN方式部署分布式网关VXLAN

BGP EVPN

VXLAN能够通过VETP隧道实现大二层MAC IN UDP,但是没有控制平面,虽然可以手动创建隧道,但是再面对大规模虚拟机场景下,基本不太现实,同时BUM报文泛滥,占用带宽华为的VXLAN方案可以通过BGP EVPN方式来充当控制平面,解决相关问题。EVPN(Ethernet Virtual Private Network)是一种用于二层网络互联的VPN技术。EVPN技术采用类似于BGP/MPLS IP VPN的机制,在BGP协议的基础上定义了一种新的NLRI(Network Layer Reachability Information,网络层可达信息)即EVPN NLRI,EVPN NLRI定义了几种新的BGP EVPN路由类型,用于处在二层网络的不同站点之间的MAC地址学习和发布。

BGP EVPN路由

Type2路由,MAC/IP路由

主要实现的功能是:

主机MAC地址通告

要实现同子网主机的二层互访,两端VTEP需要相互学习主机MAC。作为BGP EVPN对等体的VTEP之间通过交换MAC/IP路由,可以相互通告已经获取到的主机MAC。其中,MAC Address Length和MAC Address字段为主机MAC地址。

主机ARP通告

MAC/IP路由可以同时携带主机MAC地址+主机IP地址,因此该路由可以用来在VTEP之间传递主机ARP表项,实现主机ARP通告。其中,MAC Address和MAC Address Length字段为主机MAC地址,IP Address和IP Address Length字段为主机IP地址。此时的MAC/IP路由也称为ARP类型路由。

Type3路由Inclusive Multicast路由

该类型路由在VXLAN控制平面中主要用于VTEP的自动发现和VXLAN隧道的动态建立。作为BGP EVPN对等体的VTEP,通过Inclusive Multicast路由互相传递二层VNI和VTEP IP地址信息。其中,Originating Router's IP Address字段为本端VTEP IP地址,MPLS Label字段为二层VNI。如果对端VTEP IP地址是三层路由可达的,则建立一条到对端的VXLAN隧道。同时,如果对端VNI与本端相同,则创建一个头端复制表,用于后续BUM报文转发。

在vxlan跨子网通信的场景中,使用typ3路由

VXLAN分布式网关

VXLAN网关划分

和VLAN类似,不同VNI之间的VXLAN,及VXLAN和非VXLAN之间不能直接相互通信。为了使VXLAN之间,以及VXLAN和非VXLAN之间能够进行通信,VXLAN引入了VXLAN网关。

VXLAN网关分为:二层网关:用于解决租户接入VXLAN虚拟网络的问题,也可用于同一VXLAN虚拟网络的子网通信。

三层网关:用于VXLAN虚拟网络的跨子网通信以及外部网络的访问。

根据三层网关部署方式的不同,VXLAN三层网关又可以分为集中式网关和分布式网关。

分布式网关

VXLAN分布式网关具有如下特点:同一个Leaf节点既可以做VXLAN二层网关,也可以做VXLAN三层网关,部署灵活。Leaf节点只需要学习自身连接服务器的ARP表项,而不必像集中三层网关一样,需要学习所有服务器的ARP表项,解决了集中式三层网关带来的ARP表项瓶颈问题,网络规模扩展能力强。

分布式网关模型

分布式网关实验

实验拓扑

组网说明:1、三台CE交换机,按照spine-leaf组网,CE1属于spine,可以使用不具备VXLAN的功能交换机,CE2,CE2分别数据LEAF-1,LEAF-2,除了作为NVE接入点之外,充当分布式网关,即leaf作为网关,两个网关是一样的2、spine,leaf之间,underlay网络使用ospf协议组网,使用area0,实现vtep之间的互通,每个ce交换机使用loopback接口,充当ospf的router id和vtep地址3、spine,leaf之间,配置bgp,使用loopback接口配置全互联邻居都属于一个AS 100,配置BGP EVPN协议来实现vxlan的控制层面,实现vxlan隧道的自动发现,配置4、leaf交换机上,配置VPN INSTANCE A,用来模拟区分不同租户,使他们路由信息隔离5、POD1,POD2,模拟数据中心下同一个租户的不同网络,实现同子网,跨子网通信6、在leaf上,配置VNI10,VNI20二层VNI,实现VXLAN标记,满足同一个VXLAN下同子网二层通信,同时在SPINE上配置VNI99三层VNI,满足不同VXLAN下跨子网三层通信

现在需要通过分布式网关,实现PC1->PC2的同子网和PC1->PC4的跨子网通信

POD网络配置

PC1 :192.168.1.1/24 ,GW192.168.1.254PC2:192.168.2.1/24,GW192.168.1.254PC3:192.168.1.2/24,GW192.168.1.254PC4:192.168.2.2/24,GW192.168.1.254交换机S1配置VLAN10,20,对应PC1,PC2,S1配置如下:

interface GigabitEthernet0/0/1 port link-type trunk port trunk allow-pass vlan 10 20 # interface GigabitEthernet0/0/2 port link-type access port default vlan 10 # interface GigabitEthernet0/0/3 port link-type access port default vlan 20

S2配置配置类似

UNDEYLAY配置

配置OSPF

CE1作为SPINE,配置如下

[HUAWEI]sysname CE1 [CE1-LoopBack0]ip address 1.1.1.1 32 [CE1-LoopBack0]q [CE1]interface GE 1/0/1 [CE1-GE1/0/1]undo portswitch [CE1-GE1/0/1]ip address 10.1.12.1 24 [CE1-GE1/0/1]q [CE1]interface GE 1/0/2 [CE1-GE1/0/2]undo portswitch [CE1-GE1/0/2]undo shutdown [CE1-GE1/0/2]ip address 10.1.13.1 24 [CE1-GE1/0/2]q [CE1]ospf 1 router-id 1.1.1.1 [CE1-ospf-1]are [CE1-ospf-1]area 0 [CE1-ospf-1-area-0.0.0.0]network 10.1.12.0 0.0.0.255 [CE1-ospf-1-area-0.0.0.0]network 10.1.13.0 0.0.0.255 [CE1-ospf-1-area-0.0.0.0]network 1.1.1.1 255.255.255.0

CE2作为leaf,配置如下:

system-view immediately [HUAWEI]sysname CE2 [CE2]interface LoopBack 0 [CE2-LoopBack0]ip address 2.2.2.2 32 [CE2-LoopBack0]q [CE2]interface GE 1/0/1 [CE2-GE1/0/1]undo portswitch [CE2-GE1/0/1]undo shutdown [CE2-GE1/0/1]ip address 10.1.12.2 24 [CE2-GE1/0/1]q [CE2]ospf 1 router-id 2.2.2.2 [CE2-ospf-1]area 0 [CE2-ospf-1-area-0.0.0.0]network 2.2.2.2 0.0.0.0 [CE2-ospf-1-area-0.0.0.0]network 10.1.12.0 0.0.0.255 [CE2-ospf-1-area-0.0.0.0]q

CE3配置类似

配置完成后,检查OSPF邻居建立和路由,以CE2为例

配置BGP和BGP EVPN对等体

配置BGP全互联,使用loopback接口,创建BGP EVPN对等体,同时使用发布irb类型的路由,可以实现跨子网互访

CE1配置如下:

[CE1]evpn-overlay enable [CE1]bgp 100 [CE1-bgp]peer 2.2.2.2 as-number 100 [CE1-bgp]peer 3.3.3.3 as-number 100 [CE1-bgp]peer 2.2.2.2 connect-interface LoopBack 0 [CE1-bgp]peer 3.3.3.3 connect-interface LoopBack 0 [CE1-bgp]l2vpn-family evpn [CE1-bgp-af-evpn] [CE1-bgp-af-evpn]peer 2.2.2.2 enable [CE1-bgp-af-evpn] peer 2.2.2.2 advertise irb [CE1-bgp-af-evpn]peer 3.3.3.3 enable [CE1-bgp-af-evpn] peer 3.3.3.3 advertise irb

CE2,CE3配置类似配置完成后检查bgp邻居和BGP evpn邻居建立情况,以CE1为例

LEAF的CE2,CE3的VPN实例和EVPN实例

配置EVPN实例,以CE2为例

[CE2]bridge-domain 10 [CE2-bd10]vxlan vni 10 [CE2-bd10]evpn [CE2-bd10-evpn]rou [CE2-bd10-evpn]route-distinguisher 100:1 [CE2-bd10-evpn]vpn-target 100:1 both IVT Assignment result: Info: VPN-Target assignment is successful. EVT Assignment result: Info: VPN-Target assignment is successful. [CE2-bd10-evpn]q [CE2-bd10]q [CE2]bridge-domain 20 [CE2-bd20]vxlan vni 20 [CE2-bd20]evpn [CE2-bd20-evpn]route-distinguisher 100:2 [CE2-bd20-evpn]vp [CE2-bd20-evpn]vpn-target 100:2 b [CE2-bd20-evpn]vpn-target 100:2 both

说明:1、不同的BD域只能绑定一个vxlan vni2、ERT和IRT即vpn-target ,注意配置正确,即CE2的bd10的vpn-target和CE3的bd10的vpn-target一致,不然无法正确传递和接受3、EVPN的rd值和vpn的rd值可以配置一样,方便区分,但是两者不是一个概念

CE3的evpn实例配置与CE2类似,不再重复

配置VPN实例,以CE2为例

创建VPN实例A,用于区别不同租户,配置RD值为100:1,同时配置VPN-target,同时绑定EVPN实例,注意,需要创建三层vni,同时为三层vni绑定EVPN实例

[CE2]ip vpn-instance A [CE2-vpn-instance-A]vxlan vni 99 [CE2-vpn-instance-A]route-distinguisher 100:1 [CE2-vpn-instance-A-af-ipv4]vpn-target 100:1 both IVT Assignment result: Info: VPN-Target assignment is successful. EVT Assignment result: Info: VPN-Target assignment is successful. [CE2-vpn-instance-A-af-ipv4]vpn-target 100:1 both evpn IVT Assignment result: Info: VPN-Target assignment is successful. EVT Assignment result: Info: VPN-Target assignment is successful. [CE2-vpn-instance-A-af-ipv4]vpn-target 100:2 import-extcommunity evpn EVT Assignment result: Info: VPN-Target assignment is successful.

说明:1、相同的VPN实例RD值要一致2、vxlan vni 99为三层vni,二层VNI用于同子网互访,三层VNI用于跨子网互访。bd域下绑定的就是二层vni3、配置100:2的evpn实例是为了将 三层vni 99发布,三层VNI可以随意指定,但是不能和二层vni相同

CE3配置与此一样

配置LEAF的CE2,CE3的BD接口作为分布式网关

CE2上配置vbdif10,vbdif20,分别作为分布式网关,对应各自的BD域bdif接口绑定VPN实例,开启分布式网关功能

[CE2]interface Vbdif 10 [CE2-Vbdif10]ip binding vpn-instance A [CE2-Vbdif10]ip address 192.168.1.254 24 [CE2-Vbdif10]arp distribute-gateway enable [CE2-Vbdif10]arp collect host enable [CE2-Vbdif10]q [CE2]interface Vbdif 20 [CE2-Vbdif20]ip binding vpn-instance A [CE2-Vbdif20]IP address 192.168.2.254 24 [CE2-Vbdif20]arp distribute-gateway enable [CE2-Vbdif20]arp collect host enable

配置完成了后,在POD1,POD2,因为租户都是VPN实例A,可以区分租户路由

配置LEAF的CE2,CE3的vxlan接入点

CE2配置BD10,BD20,分别绑定vni10,vni20,同时配置二层子接口,以DOT1Q方式终结VLAN

[CE2]interface GE 1/0/2 [CE2-GE1/0/2]undo shutdown [CE2]bridge-domain 10 [CE2-bd10]vxlan vni 10 [CE2-bd10]q [CE2]interface GE 1/0/2.1 mode l2 [CE2-GE1/0/2.1]bridge-domain 10 [CE2-GE1/0/2.1]encapsulation dot1q vid 10 [CE2]interface GE 1/0/2.2 mode l2 [CE2]bridge-domain 20 [CE2-bd20]vxlan vni 20 [CE2-bd20]q [CE2]interface GE 1/0/2.2 mode l2 [CE2-GE1/0/2.2]bridge-domain 20 [CE2-GE1/0/2.2]encapsulation dot1q vid 20

CE3配置与之类似

配置完成后,测试pc1,PC2与leaf分布式网关的连通性

配置CE2,CE2的vxlan隧道自动发现

因为使用的bgp evpn作为控制层面,所以不用再手动配置vxlan 隧道

CE2上的配置如下

[CE2]interface Nve 1 [CE2-Nve1]source 2.2.2.2 [CE2-Nve1]vni 10 head-end peer-list protocol bgp [CE2-Nve1]vni 20 head-end peer-list protocol bgp

CE3配置类似

至此CE2,和CE3之间的vxlan隧道动态建立成功

测试分布式网关功能

同一个LEAF下不同子网

测试如下流量走向

此时数据包没有经过vxlan隧道,就像三层转发一样

不同LEAF下同一个子网

流量走向

数据包经过了VXLAN 隧道,在CE2的ge1/01接口抓包

1.可以看到同一个子网,VXLAN VNI是一样的,都是VNI 102.可以看到VTEP信息,2.2.2.2->3.3.3.3

不通LEAF下的不同子网

此时PC1 ping PC4

在CE2上抓包分析

可以看到,在跨子网通信时,经过三层VNI,vxlan的vni是99,并非二层VNI

irb 路由

在手动触发evpn更新后,可以观察到irb路由信息

refresh bgp evpn all ex refresh bgp evpn all export refresh bgp evpn all im refresh bgp evpn all import

可以看到bgp邻居更新信息

好复杂额


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Http Cookie机制及Cookie的实现原理
下一篇:《密码学系列》—— 分组密码
相关文章

 发表评论

暂时没有评论,来抢沙发吧~