交换机
园区网交换机
数据中心与云计算交换机
行业精选交换系列
意图网络指挥官
无线
放装型无线接入点
墙面型无线接入点
智分无线接入点
室外无线接入点
场景化无线
行业精选无线系列
无线管理与应用
VXLAN(Virtual eXtensible Local Area Network,虚拟可扩展局域网)是建立在物理IP网络之上的虚拟以太网,是一种L2 over UDP技术。
随着网络和虚拟化技术的发展,服务器虚拟化在数据中心中的应用越发广泛。在数据中心的服务器设备上部署虚拟机提高了服务器的设备利用率,有效降低了数据中心的硬件成本和运营成本。
虚拟化技术的引入为传统数据中心网络带来了新的挑战。
l 二层网络边界限制
随着虚拟化技术的应用,每个实体服务器上可能会运行大量虚拟机,因此二层网络中虚拟机MAC地址数量面临数量级的增长。为了正常转发数据报文,接入交换机需要学习每一个二层网络中虚拟机的MAC地址。受限于硬件水平,接入交换机的MAC地址表容量一般较小,难以满足需求。
l 网络隔离能力有限
在传统数据中心网络中,虚拟机通过VLAN进行流量隔离,不同租户虚拟机被划分到不同的VLAN中。VLAN技术通过VLAN ID对不同的VLAN进行区分,实际可分配的VLAN ID数量为4094,这个数量在某些大规模数据中心内是不足的。另外传统的VLAN无法满足网络动态调整的需求,网络的扩容和调整都非常困难。
l 虚拟机迁移限制
由于服务器硬件资源问题(如CPU过高、磁盘不够和内存不足等)或机房的搬迁转移,虚拟机需迁移到其他服务器上。为了保证虚拟机迁移过程中业务不被中断,要求虚拟机的MAC地址和IP地址在迁移前后不发生改变,因此虚拟机只能在当前所在二层网络中进行迁移。
VXLAN技术有效解决了上述问题。
l 打破二层网络边界限制,解决MAC容量问题
VXLAN利用UDP封装虚拟机发出的数据包,UDP数据包的外层IP/MAC头部均使用物理网络的IP/MAC地址。因此,除了VXLAN网络边缘设备,网络中的其他设备不需要识别虚拟机的MAC地址,减轻了设备的MAC地址学习压力。
l 解决VLAN数量不足问题
VXLAN引入了类似VLAN ID的用户标识,称为VNI(VXLAN Network ID,虚拟扩展本地网络标识符),由24比特组成,可以支持多达16M的VXLAN网段的网络隔离,对用户进行隔离和标识不再受到限制,可满足海量租户。
l 虚拟机迁移限制
VXLAN通过采用MAC in UDP封装来延伸二层网络,实现了物理网络和虚拟网络解耦,租户规划虚拟网络时不需要考虑物理网络IP地址和广播域的限制,降低了网络管理的难度。通过VXLAN构建大二层网络,保证了在虚拟迁移时虚拟机的IP地址、MAC地址等参数保持不变。
在下图所示的拓扑中,为实现:
l 将网络中的虚拟机划分为两个VXLAN子网,子网之间可以通过三层转发互访。
l 用SDN控制器进行VXLAN配置的管理和维护。
l 在网关设备故障的情况下VXLAN流量可以迅速收敛。
需要在该拓扑中配置集中式静态隧道VXLAN。
l 在VTEP1、VTEP2、VTEP3和VTEP4上配置IPv4单播路由协议(如OSPF),保证设备间单播路由可达(略)。
l 在VTEP3和VTEP4上配置Anycast网关,配置相同VXLAN网关和VTEP IP。
l 在所有VM上配置VXLAN和网关地址(略)。
l VTEP3和VTEP4之间创建BGP邻居,并配置BGP-EVPN。
以下内容可以手工配置,也可通过SDN控制器下发。在本典型配置举例中将以手工配置的方式呈现。
l 在VTEP1创建VXLAN实例VXLAN 10和VXLAN 20,分别关联VLAN 10和VLAN 20。关闭自动学习MAC地址功能。配置2条Overlaytunnel隧道,连接VTEP2和Anycast网关。配置VXLAN 10和VXLAN 20分别关联2条隧道。
l 在VTEP2创建VXLAN实例VXLAN 20,关联VLAN 20。关闭自动学习MAC地址功能。配置2条Overlaytunnel隧道,连接VTEP1和Anycast网关。配置VXLAN 20关联2条隧道。
l 在VTEP3上创建VXLAN实例VXLAN 10和VXLAN 20。关闭自动学习MAC地址功能。配置Anycast-MAC地址。配置2个VXLAN路由接口,分别配置IP地址为10.1.1.1/24和10.1.2.1/24。配置VXLAN 10关联地址为10.1.1.1/24的VXLAN路由接口。配置VXLAN 20关联地址为10.1.2.1/24的VXLAN路由接口。配置2条Overlaytunnel隧道,分别连接VTEP1和VTEP2。配置VXLAN 10和VXLAN 20分别关联2条隧道。
l VTEP4配置和VTEP3基本相同。
l 分别在VTEP3和VTEP4上配置Loopback 1接口并分配IP地址3.3.3.4和3.3.3.5。两台设备间通过Loopback 1接口建立BGP邻居关系,并在L2VPN EVPN地址族下激活。
(1) 配置VTEP1。
VTEP1> enable
VTEP1# configure terminal
VTEP1(config)# interface loopback 0
VTEP1(config-if-Loopback 0)# ip address 1.1.1.1 255.255.255.255
VTEP1(config-if-Loopback 0)# exit
VTEP1(config)# interface overlaytunnel 1
VTEP1(config-if-OverlayTunnel 1)# tunnel source 1.1.1.1
VTEP1(config-if-OverlayTunnel 1)# tunnel destination 2.2.2.2
VTEP1(config-if-OverlayTunnel 1)# exit
VTEP1(config)# interface overlaytunnel 2
VTEP1(config-if-OverlayTunnel 2)# tunnel source 1.1.1.1
VTEP1(config-if-OverlayTunnel 2)# tunnel destination 3.3.3.3
VTEP1(config-if-OverlayTunnel 2)# exit
VTEP1(config)# vxlan 10
VTEP1(config-vxlan)# tunnel-interface overlaytunnel 1
VTEP1(config-vxlan)# tunnel-interface overlaytunnel 2
VTEP1(config-vxlan)# extend-vlan 10
VTEP1(config-vxlan)# end
VTEP1(config)# vxlan 20
VTEP1(config-vxlan)# tunnel-interface overlaytunnel 1
VTEP1(config-vxlan)# tunnel-interface overlaytunnel 2
VTEP1(config-vxlan)# extend-vlan 20
VTEP1(config-vxlan)# end
(2) 配置VTEP 2。
VTEP2> enable
VTEP2# configure terminal
VTEP2(config)# interface loopback 0
VTEP2(config-if-Loopback 0)# ip address 2.2.2.2 255.255.255.255
VTEP2(config-if-Loopback 0)# exit
VTEP2(config)# interface overlaytunnel 1
VTEP2(config-if-OverlayTunnel 1)# tunnel source 2.2.2.2
VTEP2(config-if-OverlayTunnel 1)# tunnel destination 1.1.1.1
VTEP2(config-if-OverlayTunnel 1)# exit
VTEP2(config)# interface overlaytunnel 2
VTEP2(config-if-OverlayTunnel 2)# tunnel source 2.2.2.2
VTEP2(config-if-OverlayTunnel 2)# tunnel destination 3.3.3.3
VTEP2(config-if-OverlayTunnel 2)# exit
VTEP2(config)# vxlan 20
VTEP2(config-vxlan)# tunnel-interface overlaytunnel 1
VTEP2(config-vxlan)# tunnel-interface overlaytunnel 2
VTEP2(config-vxlan)# extend-vlan 20
VTEP2(config-vxlan)# end
(3) 配置VTEP3。
VTEP3> enable
VTEP3# configure terminal
VTEP3(config)# fabric anycast-gateway-mac 0000.1234.5678
VTEP3(config)# interface loopback 0
VTEP3(config-if-Loopback 0)# ip address 3.3.3.3 255.255.255.255
VTEP3(config-if-Loopback 0)# exit
VTEP3(config)# interface loopback 1
VTEP3(config-if-Loopback 0)# ip address 3.3.3.4 255.255.255.255
VTEP3(config-if-Loopback 0)# exit
VTEP3(config)# route bgp 10000
VTEP3(config-router)# neighbor 3.3.3.5 remote-as 10000
VTEP3(config-router)# neighbor 3.3.3.5 update-source loopback 1
VTEP3(config-router)# address-family l2vpn evpn
VTEP3(config-router-af)# neighbor 3.3.3.5 activate
VTEP3(config-router-af)# neighbor 3.3.3.5 send-community extended
VTEP3(config-router-af)# exit-address-family
VTEP3(config-router)# exit
VTEP3(config)# interface overlaytunnel 1
VTEP3(config-if-OverlayTunnel 1)# tunnel source 3.3.3.3
VTEP3(config-if-OverlayTunnel 1)# tunnel destination 2.2.2.2
VTEP3(config-if-OverlayTunnel 1)# exit
VTEP3(config)# interface overlaytunnel 2
VTEP3(config-if-OverlayTunnel 2)# tunnel source 3.3.3.3
VTEP3(config-if-OverlayTunnel 2)# tunnel destination 1.1.1.1
VTEP3(config-if-OverlayTunnel 2)# exit
VTEP3(config)# interface overlayrouter 1
VTEP3(config-if-OverlayRouter 1)# ip address 10.1.1.1/24
VTEP3(config-if-OverlayRouter 1)# anycast-gateway
VTEP3(config-if-OverlayRouter 1)# exit
VTEP3(config)# interface overlayrouter 2
VTEP3(config-if-OverlayRouter 2)# ip address 10.1.2.1/24
VTEP3(config-if-OverlayRouter 2)# anycast-gateway
VTEP3(config-if-OverlayRouter 2)# exit
VTEP3(config)# vxlan 10
VTEP3(config-vxlan)# tunnel-interface overlaytunnel 1
VTEP3(config-vxlan)# tunnel-interface overlaytunnel 2
VTEP3(config-vxlan)# router-interface overlayrouter 1
VTEP3(config-vxlan)# end
VTEP3(config)# vxlan 20
VTEP3(config-vxlan)# tunnel-interface overlaytunnel 1
VTEP3(config-vxlan)# tunnel-interface overlaytunnel 2
VTEP3(config-vxlan)# router-interface overlayrouter 2
VTEP3(config-vxlan)# end
(4) 配置VTEP4
VTEP4> enable
VTEP4# configure terminal
VTEP4(config)# fabric anycast-gateway-mac 0000.1234.5678
VTEP4(config)# interface loopback 0
VTEP4(config-if-Loopback 0)# ip address 3.3.3.3 255.255.255.255
VTEP4(config-if-Loopback 0)# exit
VTEP4(config)# interface loopback 1
VTEP4(config-if-Loopback 0)# ip address 3.3.3.5 255.255.255.255
VTEP4(config-if-Loopback 0)# exit
VTEP4(config)# route bgp 10000
VTEP4(config-router)# neighbor 3.3.3.4 remote-as 10000
VTEP4(config-router)# neighbor 3.3.3.4 update-source loopback 1
VTEP4(config-router)# address-family l2vpn evpn
VTEP4(config-router-af)# neighbor 3.3.3.4 activate
VTEP4(config-router-af)# neighbor 3.3.3.4 send-community extended
VTEP4(config-router-af)# exit-address-family
VTEP4(config-router)# exit
VTEP4(config)# interface overlaytunnel 1
VTEP4(config-if-OverlayTunnel 1)# tunnel source 3.3.3.3
VTEP4(config-if-OverlayTunnel 1)# tunnel destination 2.2.2.2
VTEP4(config-if-OverlayTunnel 1)# exit
VTEP4(config)# interface overlaytunnel 2
VTEP4(config-if-OverlayTunnel 2)# tunnel source 3.3.3.3
VTEP4(config-if-OverlayTunnel 2)# tunnel destination 1.1.1.1
VTEP4(config-if-OverlayTunnel 2)# exit
VTEP4(config)# interface overlayrouter 1
VTEP4(config-if-OverlayRouter 1)# ip address 10.1.1.1/24
VTEP4(config-if-OverlayRouter 1)# anycast-gateway
VTEP4(config-if-OverlayRouter 1)# exit
VTEP4(config)# interface overlayrouter 2
VTEP4(config-if-OverlayRouter 2)# ip address 10.1.2.1/24
VTEP4(config-if-OverlayRouter 2)# anycast-gateway
VTEP4(config-if-OverlayRouter 2)# exit
VTEP4(config)# vxlan 10
VTEP4(config-vxlan)# tunnel-interface overlaytunnel 1
VTEP4(config-vxlan)# tunnel-interface overlaytunnel 2
VTEP4(config-vxlan)# router-interface overlayrouter 1
VTEP4(config-vxlan)# end
VTEP4(config)# vxlan 20
VTEP4(config-vxlan)# tunnel-interface overlaytunnel 1
VTEP4(config-vxlan)# tunnel-interface overlaytunnel 2
VTEP4(config-vxlan)# router-interface overlayrouter 2
VTEP4(config-vxlan)# end
l 上述命令执行后,集中式静态隧道VXLAN配置完毕,VM1、VM2、VM3和VM4之间可互相Ping通。
l 通过show vxlan命令查看设备的VXLAN实例和隧道配置。以VTEP1为例说明。
VTEP1# show vxlan
VXLAN Total Count: 2
VXLAN Capacity : 8000
VXLAN 10
Symmetric property : FALSE
Router Interface : -
Extend VLAN : 10
VTEP Adjacency Count: 2
VTEP Adjacency List :
Interface Source IP Destination IP Type
---------------------- ---------------------------------------------- ---------------------------------------------- -------
OverlayTunnel 1 1.1.1.1 2.2.2.2 static
OverlayTunnel 2 1.1.1.1 3.3.3.3 static
VXLAN 20
Symmetric property : FALSE
Router Interface : -
Extend VLAN : 20
VTEP Adjacency Count: 2
VTEP Adjacency List :
Interface Source IP Destination IP Type
---------------------- ---------------------------------------------- ---------------------------------------------- -------
OverlayTunnel 1 1.1.1.1 2.2.2.2 static
OverlayTunnel 2 1.1.1.1 3.3.3.3 static
l VTEP1的配置文件
!
interface Loopback 0
ip address 1.1.1.1 255.255.255.255
!
interface OverlayTunnel 1
tunnel source 1.1.1.1
tunnel destination 2.2.2.2
!
interface OverlayTunnel 2
tunnel source 1.1.1.1
tunnel destination 3.3.3.3
!
vxlan 10
tunnel-interface OverlayTunnel 1
tunnel-interface OverlayTunnel 2
extend-vlan 10
!
vxlan 20
tunnel-interface OverlayTunnel 1
tunnel-interface OverlayTunnel 2
extend-vlan 20
!
l VTEP2的配置文件
!
interface Loopback 0
ip address 2.2.2.2 255.255.255.255
!
interface OverlayTunnel 1
tunnel source 2.2.2.2
tunnel destination 1.1.1.1
!
interface OverlayTunnel 2
tunnel source 2.2.2.2
tunnel destination 3.3.3.3
!
vxlan 10
tunnel-interface OverlayTunnel 1
tunnel-interface OverlayTunnel 2
extend-vlan 10
!
vxlan 20
tunnel-interface OverlayTunnel 1
tunnel-interface OverlayTunnel 2
extend-vlan 20
!
l VTEP3的配置文件
!
fabric anycast-gateway-mac 0000.1234.5678
!
interface Loopback 0
ip address 3.3.3.3 255.255.255.255
!
interface Loopback 1
ip address 3.3.3.4 255.255.255.255
!
interface OverlayTunnel 1
tunnel source 3.3.3.3
tunnel destination 2.2.2.2
!
interface OverlayTunnel 2
tunnel source 3.3.3.3
tunnel destination 1.1.1.1
!
interface OverlayRouter 1
ip address 10.1.1.1 255.255.255.0
anycast-gateway
!
interface OverlayRouter 2
ip address 10.1.2.1 255.255.255.0
anycast-gateway
!
router bgp 10000
bgp log-neighbor-changes
bgp graceful-restart restart-time 120
bgp graceful-restart stalepath-time 360
bgp graceful-restart
neighbor 3.3.3.5 remote-as 10000
neighbor 3.3.3.5 update-source Loopback 1
address-family ipv4
neighbor 3.3.3.5 activate
exit-address-family
address-family l2vpn evpn
neighbor 3.3.3.5 activate
neighbor 3.3.3.5 send-community extended
exit-address-family
!
vxlan 10
router-interface OverlayRouter 1
tunnel-interface OverlayTunnel 1
tunnel-interface OverlayTunnel 2
!
vxlan 20
router-interface OverlayRouter 2
tunnel-interface OverlayTunnel 1
tunnel-interface OverlayTunnel 2
!
l VTEP4的配置文件
!
fabric anycast-gateway-mac 0000.1234.5678
!
interface Loopback 0
ip address 3.3.3.3 255.255.255.255
!
interface Loopback 1
ip address 3.3.3.5 255.255.255.255
!
interface OverlayTunnel 1
tunnel source 3.3.3.3
tunnel destination 2.2.2.2
!
interface OverlayTunnel 2
tunnel source 3.3.3.3
tunnel destination 1.1.1.1
!
interface OverlayRouter 1
ip address 10.1.1.1 255.255.255.0
anycast-gateway
!
interface OverlayRouter 2
ip address 10.1.2.1 255.255.255.0
anycast-gateway
!
router bgp 10000
bgp log-neighbor-changes
bgp graceful-restart restart-time 120
bgp graceful-restart stalepath-time 360
bgp graceful-restart
neighbor 3.3.3.4 remote-as 10000
neighbor 3.3.3.4 update-source Loopback 1
address-family ipv4
neighbor 3.3.3.4 activate
exit-address-family
address-family l2vpn evpn
neighbor 3.3.3.4 activate
neighbor 3.3.3.4 send-community extended
exit-address-family
!
vxlan 10
router-interface OverlayRouter 1
tunnel-interface OverlayTunnel 1
tunnel-interface OverlayTunnel 2
!
vxlan 20
router-interface OverlayRouter 2
tunnel-interface OverlayTunnel 1
tunnel-interface OverlayTunnel 2
!