配置指导:vAsterNOS(设备模拟器)上的EVPN VXLAN场景配置
- 1 目的
- 2 vAsterNOS介绍
- 3 EVPN VXLAN简介
- 4 EVPN VXLAN典型场景配置
- 4.1 要求
- 4.2 拓扑
- 4.3 测试环境
- 4.4 设备互联IP
- 4.5 测试前的准备工作
- 4.6 配置步骤
- 4.7 验证网络配置
- 5 结论
- Asterfusion CX-N数据中心交换机
1 目的
本文主要介绍EVPN VXLAN场景在Asterfusion虚拟SONiC交换机(vAsterNOS)中的配置实现。通过阅读本文,用户可以快速理解和掌握EVPN VXLAN在Asterfusion SONiC交换机中的配置方法。
2 vAsterNOS介绍
vAsterNos是星融元推出的一款sonic交换机的虚拟操作系统,它继承了AsterNOS的所有软件特性,可运行在GNS3、EVE-NG等网络虚拟软件中。用户可以通过使用vAsterNos更好地了解星融元企业级sonic交换机的特性,从而为构建高效网络环境提供有力支撑。
关于设置vAsterNOS的使用环境的信息,请阅读:
Asterfusion虚拟SONiC交换机使用说明
3 EVPN VXLAN简介
VXLAN(Virtual eXtensible Local Area Network)技术是VLAN的一种扩展方案,由IETF在RFC7348中定义。VXLAN采用MAC in UDP(User Datagram Protocol)封装方式,是NVO3(Network Virtualization over Layer 3)中的一种网络虚拟化技术。
EVPN(Ethernet VPN)是VXLAN的控制平面,EVPN通过扩展BGP协议新定义了几种BGP EVPN路由,通过在网络中发布EVPN路由来实现VTEP的自动发现、主机地址学习等行为。EVPN定义了五种路由类型,其中Type1~Type4是在RFC7432中定义,Type5是在后续的草案中定义。
4 EVPN VXLAN典型场景配置
4.1 要求
用户的数据中心当前有两个子网,共部署了四台VM,分别分布在两台Leaf交换机上,Leaf1上部署了VM-A1、VM-A2和VM-B1,Leaf2上部署了VM-A3。A1、A2和A3在同一网段,B1在另一网段。现要求通过BGP EVPN VXLAN 方式实现各VM间的互通。
4.2 拓扑
4.3 测试环境
此配置示例是采用 Asterfusion 虚拟 SONiC 交换机 (vAsterNOS) 实现的,因此需要运行 vAsterNOS 的虚拟环境。具体环境搭建请参考本文第二章的相关链接。
4.4 设备互联IP
| 设备名称 | 接口 | IP地址 | 备注 |
|---|---|---|---|
| Spine | Ethernet 0/0 | 11.11.11.2/24 | |
| Spine | Ethernet 0/1 | 22.22.22.2/24 | |
| Spine | Loopback 0 | 10.1.0.210/32 | Router-id and vtep ip same as loopback0 |
| Leaf1 | Ethernet 0/0 | 11.11.11.1/24 | |
| Leaf1 | Vlan 100 | 100.0.0.1/24 | |
| Leaf1 | Vlan 200 | 200.0.0.1/24 | |
| Leaf1 | Loopback 0 | 10.1.0.211/32 | Router-id and vtep ip same as loopback0 |
| Leaf2 | Ethernet 0/0 | 22.22.22.1/24 | |
| Leaf2 | Vlan 300 | 100.0.0.1/24 | |
| Leaf2 | Loopback 0 | 10.1.0.212/32 | Router-id and vtep-ip same as loopback0 |
| VM-A1 | eth0 | 100.0.0.2/24 | |
| VM-A2 | eth0 | 100.0.0.3/24 | |
| VM-B1 | eth0 | 200.0.0.2/24 | |
| VM-A3 | eth0 | 100.0.0.4/24 |
4.5 测试前的准备工作
确保每个 vAsterNOS 和 VM 设备都正确上线,并按照拓扑正确连接。
4.6 配置步骤
第 1 步
修改 leaf1、leaf2 和 spine 设备的 mac 地址。由于初始 mac 地址相同,因此在配置服务之前,必须先修改 mac 地址。修改leaf1、leaf2及spine设备的mac地址,由于初始mac地址相同,所以在进行业务配置之前,必须先进行mac地址的修改,才能使EVPN VXLAN等功能正常运行。这里分别修改leaf1和leaf2设备地址,使三台设备的mac地址不相同。
sonic# system bash
admin@sonic:~$ sudo vi /etc/sonic/config_db.json
修改以下位置。
重新加载配置并退出system bash。
admin@sonic:~$ sudo config reload -yf
admin@sonic:~$ exit
第2步
配置VLAN及其成员端口,配置各端口IP(要求同一VNI下VM的网关的ip必须一致)
Spine
sonic# configure terminal
sonic(config)# interface ethernet 0/0
sonic(config-if-0/0)# ip address 11.11.11.2/24
sonic(config)# interface ethernet 0/1
sonic(config-if-0/1)# ip address 22.22.22.2/24
Leaf1
sonic# configure terminal
sonic(config)# interface ethernet 0/0
sonic(config-if-0/0)# ip address 11.11.11.1/24
sonic# configure terminal
sonic(config)# vlan 100
sonic(config)# vlan 200
sonic(config)# interface vlan 100
sonic(config-vlanif-100)# ip address 100.0.0.1/24
sonic(config)# interface vlan 200
sonic(config-vlanif-200)# ip address 200.0.0.1/2
sonic# configure terminal
sonic(config)# interface ethernet 0/1
sonic(config-if-0/1)# switchport access vlan 100
sonic(config)# interface ethernet 0/2
sonic(config-if-0/2)# switchport access vlan 100
sonic(config)# interface ethernet 0/3
sonic(config-if-0/3)# switchport access vlan 200
Leaf2
sonic# configure terminal
sonic(config)# interface ethernet 0/0
sonic(config-if-0/0)# ip address 22.22.22.1/24
sonic# configure terminal
sonic(config)# vlan 300
sonic(config)# interface vlan 300
sonic(config-vlanif-300)# ip address 100.0.0.1/24
sonic# configure terminal
sonic(config)# interface ethernet 0/1
sonic(config-if-0/1)# switchport access vlan 300
第3步
建立BGP邻居。
Spine
sonic# configure terminal
sonic(config)# interface loopback 0
sonic(config-loif-0)# ip address 10.1.0.210/32
sonic# configure terminal
sonic(config)# router bgp 65200
sonic(config-router)# bgp router-id 10.1.0.210
sonic(config-router)# no bgp ebgp-requires-policy
sonic(config-router)# neighbor 11.11.11.1 remote-as 65201
sonic(config-router)# address-family ipv4
sonic(config-router-af)# neighbor 11.11.11.1 activate
sonic(config-router-af)# q
sonic(config-router)# neighbor 22.22.22.1 remote-as 65202
sonic(config-router)# address-family ipv4
sonic(config-router-af)# neighbor 22.22.22.1 activate
Leaf1
sonic# configure terminal
sonic(config)# interface loopback 0
sonic(config-loif-0)# ip address 10.1.0.211/32
sonic# configure terminal
sonic(config)# router bgp 65201
sonic(config-router)# bgp router-id 10.1.0.211
sonic(config-router)# no bgp ebgp-requires-policy
sonic(config-router)# neighbor 11.11.11.2 remote-as 65200
sonic(config-router)# address-family ipv4
sonic(config-router-af)# neighbor 11.11.11.2 activate
Leaf2
sonic# configure terminal
sonic(config)# interface loopback 0
sonic(config-loif-0)# ip address 10.1.0.212/32
sonic# configure terminal
sonic(config)# router bgp 65202
sonic(config-router)# bgp router-id 10.1.0.212
sonic(config-router)# no bgp ebgp-requires-policy
sonic(config-router)# neighbor 22.22.22.2 remote-as 65200
sonic(config-router)# address-family ipv4
sonic(config-router-af)# neighbor 22.22.22.2 activate
第4步
在Leaf上配置VTEP并使能EVPN。
Leaf1
sonic# configure terminal
sonic(config)# interface vxlan 0
sonic(config-vxlanif-0)# source 10.1.0.211
sonic(config-vxlanif-0)# end
sonic# write
sonic# reload
sonic# configure terminal
sonic(config)# router bgp 65201
sonic(config)# route-map DEFAULT_EVPN_ROUTE_MAP permit 15
sonic(config-router)# address-family l2vpn evpn
sonic(config-router-af)# neighbor 11.11.11.2 activate
sonic(config-router-af)# advertise-all-vni
sonic(config-router-af)# neighbor 11.11.11.2 route-map DEFAULT_EVPN_ROUTE_MAP in
sonic(config-router-af)# neighbor 11.11.11.2 route-map DEFAULT_EVPN_ROUTE_MAP out
Leaf2
sonic# configure terminal
sonic(config)# interface vxlan 0
sonic(config-vxlanif-0)# source 10.1.0.212
sonic(config-vxlanif-0)# end
sonic# write
sonic# reload
sonic# configure terminal
sonic(config)# router bgp 65202
sonic(config)# route-map DEFAULT_EVPN_ROUTE_MAP permit 15
sonic(config-router)# address-family l2vpn evpn
sonic(config-router-af)# neighbor 22.22.22.2 activate
sonic(config-router-af)# advertise-all-vni
sonic(config-router-af)# neighbor 22.22.22.2 route-map DEFAULT_EVPN_ROUTE_MAP in
sonic(config-router-af)# neighbor 22.22.22.2 route-map DEFAULT_EVPN_ROUTE_MAP out
第5步
在叶上创建 VRF 并绑定端口。
Leaf1
sonic# configure terminal
sonic(config)# vrf 123
sonic(config)# interface vlan 100
sonic(config-vlanif-100)# vrf 123
sonic(config)# interface vlan 200
sonic(config-vlanif-200)# vrf 123
Leaf2
sonic# configure terminal
sonic(config)# vrf 456
sonic(config)# interface vlan 300
sonic(config-vlanif-300)# vrf 456
第6步
配置二层VXLAN映射。
Leaf1
sonic# configure terminal
sonic(config)# vlan 100
sonic(config-vlan-100)# vni 100
sonic(config-vlan-100)# exit
sonic(config)# vlan 200
sonic(config-vlan-200)# vni 200
Leaf2
sonic# configure terminal
sonic(config)# vlan 300
sonic(config-vlan-300)# vni 100
第7步
配置三层VXLAN映射。
Leaf1
sonic# configure terminal
sonic(config)# vrf 123
sonic(config-vrf)# vni 1000
Leaf2
sonic# configure terminal
sonic(config)# vrf 456
sonic(config-vrf)# vni 1000
第8步
修改端口MAC地址(同一VNI下VM的网关的MAC必须一致)。
Leaf1
sonic# configure terminal
sonic(config)# interface vlan 100
sonic(config-vlanif-100)# mac-address 00:11:22:33:44:55
sonic(config-vlanif-100)# exit
sonic(config)# interface vlan 200
sonic(config-vlanif-200)# mac-address 00:11:22:33:44:66
Leaf2
sonic# configure terminal
sonic(config)# interface vlan 300
sonic(config-vlanif-300)# mac-address 00:11:22:33:44:55
第9步
路由通告。
Spine
sonic# configure terminal
sonic(config)# router bgp 65200
sonic(config-router)# address-family ipv4 unicast
sonic(config-router)# network 10.1.0.210/32
sonic(config-router)# address-family l2vpn evpn
sonic(config-router-af)# neighbor 11.11.11.1 activate
sonic(config-router-af)# neighbor 22.22.22.1 activate
sonic(config-router-af)# advertise-all-vni
Leaf1
sonic# configure terminal
sonic(config)# router bgp 65201
sonic(config-router)# address-family ipv4 unicast
sonic(config-router)# network 10.1.0.211/32
Leaf2
sonic# configure terminal
sonic(config)# router bgp 65202
sonic(config-router)# address-family ipv4 unicast
sonic(config-router)# network 10.1.0.212/32
第10步
开启 ARP 代理。
Leaf1
sonic# configure terminal
sonic(config)# interface vlan 100
sonic(config-vlanif-100)# arp proxy mode evpn
sonic(config-vlanif-100)# exit
sonic(config)# interface vlan 200
sonic(config-vlanif-200)# arp proxy mode evpn
Leaf2
sonic# configure terminal
sonic(config)# interface vlan 300
sonic(config-vlanif-300)# arp proxy mode evpn
第11步
配置VM的IP地址网关等参数,上线各VM,并验证VM之间是否互通
Server-A1
[root@localhost ~]# ifconfig eth0 100.0.0.2/24
[root@localhost ~]# route add default gw 100.0.0.1
Server-A2
[root@localhost ~]# ifconfig eth0 100.0.0.3/24
[root@localhost ~]# route add default gw 100.0.0.1
Server-B1
[root@localhost ~]# ifconfig eth0 200.0.0.2/24
[root@localhost ~]# route add default gw 200.0.0.1
Server-A3
[root@localhost ~]# ifconfig eth0 100.0.0.4/24
[root@localhost ~]# route add default gw 100.0.0.1
4.7 验证网络配置
1、各vm之间互ping,能够ping通。
2、查看leaf1的vxlan映射表及隧道
sonic# show vxlan map
sonic# show vxlan tunnel
3.查看Leaf2的vxlan映射表和隧道。
sonic# show vxlan map
sonic# show vxlan tunnel
5 结论
本次测试中,使用vAsterNOS及VM设备组网并配置EVPN VXLAN网络后,各VM之间能互相正常通信,并且leaf之间能正确建立vxlan隧道,相关路由也正常工作,说明vAsterNOS的EVPN VXLAN功能特性正常,可满足用户组网需求,同时Asterfusion Data Center switch的功能特性与配置方法与vAsterNOS 是完全一致的,用户通过vAsterNOS验证配置之后,可以直接用Asterfusion Data Center switch实施。
点击了解Asterfusion CX-N数据中心交换机
如有其它问题,请填写右侧需求表单联系我们