Skip to main content
开放网络的先行者与推动者—星融元
加入我们技术支持(Support)  TEL:(+86)4000989811

配置指导:vAsterNOS(设备模拟器)上的EVPN VXLAN场景配置

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地址备注
SpineEthernet 0/0 11.11.11.2/24
SpineEthernet 0/1 22.22.22.2/24
SpineLoopback 010.1.0.210/32Router-id and vtep ip same as loopback0
Leaf1Ethernet 0/011.11.11.1/24
Leaf1Vlan 100100.0.0.1/24
Leaf1Vlan 200200.0.0.1/24
Leaf1Loopback 0 10.1.0.211/32Router-id and vtep ip same as loopback0
Leaf2Ethernet 0/022.22.22.1/24
Leaf2Vlan 300100.0.0.1/24
Leaf2Loopback 0 10.1.0.212/32Router-id and vtep-ip same as loopback0
VM-A1eth0100.0.0.2/24
VM-A2eth0100.0.0.3/24
VM-B1eth0200.0.0.2/24
VM-A3eth0100.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
查看leaf1的vxlan映射表
sonic# show vxlan tunnel 
查看leaf1的vxlan隧道

3.查看Leaf2的vxlan映射表和隧道。

sonic# show vxlan map
查看leaf2的vxlan映射表
sonic# show vxlan tunnel
查看leaf2的vxlan隧道

5 结论

本次测试中,使用vAsterNOS及VM设备组网并配置EVPN VXLAN网络后,各VM之间能互相正常通信,并且leaf之间能正确建立vxlan隧道,相关路由也正常工作,说明vAsterNOS的EVPN VXLAN功能特性正常,可满足用户组网需求,同时Asterfusion Data Center switch的功能特性与配置方法与vAsterNOS 是完全一致的,用户通过vAsterNOS验证配置之后,可以直接用Asterfusion Data Center switch实施。

点击了解Asterfusion CX-N数据中心交换机

如有其它问题,请填写右侧需求表单联系我们

A-lab-产品开箱和试用, A-lab-部署验证

对星融元产品感兴趣?

立即联系!

返回顶部

© 星融元数据技术(苏州)有限公司 苏ICP备17070048号-2