虚拟局域网扩展(VXLAN)


虚拟局域网扩展(Virtual Extensible LAN,VXLAN)是一种网络虚拟化技术,它试图改善大云计算部署相关的可扩展性问题。它采用类似VLAN封装技术封装基于MAC含括第4层的UDP数据包的OSI第2层以太网帧,使用4789作为默认分配的IANA目的地UDP端口号。是一项革命性的网络虚拟化技术,是企业数字化转型的基础设施革命。
VXLAN是努力覆盖封装协议的演变,它提高了可扩展性达1600万个逻辑网络,并允许透过IP网络邻接第2层。使用HER(Head-End Replication)的多播或单播是用来淹没BUM(broadcast,unknown destination address,multicast)流量。VXLAN是一种创新的Overlay网络技术,通过MAC-in-UDP封装实现:
24位VNI(VXLAN Network Identifier)标识,支持1600万个虚拟网络(是传统VLAN的4096倍!)
突破物理边界,构建跨三层网络的二层大二层域
标准UDP 4789端口,完美穿透现有网络设备
不少的设备厂商均有相关的方案提供,VXLAN规格一开始是由 VMware、Arista Networks和Cisco建立的,其他的VXLAN技术拥护者包括Huawei、Broadcom、Citrix、Pica8、Cumulus Networks、Dell、Mellanox、OpenBSD、Red Hat 和 Juniper Networks。

VXLAN正式由IETF记录在RFC 7348内。Open vSwitch支持VXLAN覆盖网络。
VXLAN可以为网络提供以下作用:
1.突破VLAN的最多4096个终端的数量限制,以满足大规模云计算数据中心的需求。目前因为现在虚拟化技术的发展,在数据中心里的服务器都模拟成虚拟机(VM),而且VM一般都会需要分割成组,达成二层隔离,目前大多是透过VLAN技术实现的。但VLAN技术的缺陷是VLAN Header预留的长度只有12 bit,最多只能支持4096个,无法满足日益增长的需求。目前VXLAN的报文Header内有24 bit,可以支持224次方的VNI个数。(VXLAN中透过VNI来识别,相当于VLAN ID)
2.解决STP在大型网络设备带宽浪费和收敛性能变慢的缺陷。在数据中心一旦启动STP,将导致链路带宽的浪费。此外,当拓扑增加到二百台网络设备时,收敛性能会显变慢。
3.解决ToR(Top of Rack)交换机MAC表耗尽问题。二层网络出现后,不仅要记录数据中心二层设备的MAC地址,还得记录其他数据中心二层范围内的地址,这包括了海量的虚拟机的MAC地址,这增加了TOR MAC表的需求。但目前的交换机芯片远远无法满足此一需求。
核心组件全景图

解密VXLAN协议栈
+---------------------------------+
| 原始以太网帧(1500字节) |
+---------------------------------+
| VXLAN头部(8字节) | → VNI标识/标志位
+---------------------------------+
| UDP头部(8字节) | → 目的端口4789
+---------------------------------+
| 外层IP头部(20字节) | → Underlay网络路由
+---------------------------------+
| 外层MAC头部(14字节) | → 物理网络传输
+---------------------------------+
MTU需调整至1550字节以上(建议1600)避免分片。
VXLAN采用MAC-in-UDP封装,在原始以太网帧外添加多层头部:
+---------------------------------+
| 原始以太网帧(1500字节) |
+---------------------------------+
| VXLAN头部(8字节) |
| - Flags(8位) |
| - VNI(24位) |
| - Reserved(24位+8位) |
+---------------------------------+
| UDP头部(8字节) |
| - 源端口(动态分配) |
| - 目的端口(4789) |
+---------------------------------+
| 外层IP头部(20字节) |
| - 源IP(本地VTEP地址) |
| - 目的IP(远端VTEP地址) |
+---------------------------------+
| 外层MAC头部(14字节) |
| - 源MAC(本地VTEP MAC) |
| - 目的MAC(下一跳MAC) |
+---------------------------------+
VXLAN头部:包含24位VNI,用于标识虚拟网络。
UDP头部:使用标准端口4789,确保兼容性。
外层IP头部:用于在Underlay网络中路由数据包。
封装过程
1.原始帧接收:VTEP接收到虚拟机发送的以太网帧。
2.VXLAN封装:
添加VXLAN头部(含VNI)。
添加UDP头部(源端口动态分配,目的端口4789)。
添加外层IP头部(源IP为本地VTEP,目的IP为远端VTEP)。
添加外层MAC头部(用于物理网络传输)。
3.发送封装后的数据包:通过Underlay网络发送到远端VTEP。

控制平面三大流派
1.多播模式(传统方案)
使用多播组传播广播、未知单播和多播流量。
每个VNI映射到一个多播组(如VNI 5000映射到239.1.1.1)。
依赖IGMP协议维护VTEP组
示例:224.1.1.1多播组对应VNI 5001
2.单播模式+集中式控制
已知单播:通过MAC表查找目的VTEP地址,直接发送。
未知单播:泛洪到同一VNI的所有VTEP。
采用SDN控制器(如NSX、ACI)
典型架构:PIM-SM+RP实现最优路径
3.BGP EVPN(现代主流)
通过MP-BGP传播MAC/IP信息
支持Active-Active多活网关
VXLAN vs VLAN

VLAN是一种在二层网络中实现逻辑分区的技术,通过在以太网帧中添加VLAN标签(802.1Q)来区分不同的网络分段。
核心特性:
12位VLAN ID,支持最多4094个虚拟网络。
基于MAC地址的二层转发。
依赖生成树协议(STP)避免环路。
而VXLAN是一种Overlay网络技术,通过MAC-in-UDP封装实现跨三层网络的二层扩展。
核心特性:
24位VNI(VXLAN Network Identifier),支持1600万个虚拟网络。
基于IP网络的隧道技术,突破物理边界。
支持多播、单播和BGP EVPN等多种控制平面。

VXLAN vs VLAN:数据封装
VXLAN vs VLAN:控制平面

VXLAN vs VLAN

VLAN和VXLAN各有优劣,选择哪种技术取决于你的具体需求和场景。在传统网络中,VLAN仍然是可靠的选择;而在云原生时代,VXLAN无疑是更强大的工具。
应用场景实战解析
1、云计算多租户网络
# OpenStack Neutron VXLAN配置示例
[ml2_type_vxlan]
vni_ranges = 10000:20000
vxlan_group = 239.1.1.1
[ovs]
bridge_mappings = physnet1:br-ex
tunnel_type = vxlan
对比传统VLAN:租户隔离粒度提升4000倍!
2、跨数据中心大二层
案例:两地三中心架构中实现VMotion
关键技术:VXLAN+EVPN+ECMP(延迟<5ms)
容器网络方案
典型方案:Calico+VXLAN模式
性能指标:PPS提升300% vs传统VLAN
运维监控要点
关键指标:VXLAN封装率、VTEP状态、BGP会话
诊断命令:
show nve peers(Cisco)
display vxlan tunnel(Huawei)
ovs-ofctl dump-flows br-tun(Open vSwitch)
挑战与未来演进
当前技术痛点
1.封装开销导致~15%带宽损耗
2.硬件要求:需支持VXLAN Offload的网卡
下一代技术演进
1.GENEVE(通用网络虚拟化封装)
2.SRv6+VXLAN融合方案
3.AI驱动的智能流量调度
VXLAN是努力覆盖封装协议的演变,它提高了可扩展性达1600万个逻辑网络,并允许透过IP网络邻接第2层。使用HER(Head-End Replication)的多播或单播是用来淹没BUM(broadcast,unknown destination address,multicast)流量。VXLAN是一种创新的Overlay网络技术,通过MAC-in-UDP封装实现:
24位VNI(VXLAN Network Identifier)标识,支持1600万个虚拟网络(是传统VLAN的4096倍!)
突破物理边界,构建跨三层网络的二层大二层域
标准UDP 4789端口,完美穿透现有网络设备
不少的设备厂商均有相关的方案提供,VXLAN规格一开始是由 VMware、Arista Networks和Cisco建立的,其他的VXLAN技术拥护者包括Huawei、Broadcom、Citrix、Pica8、Cumulus Networks、Dell、Mellanox、OpenBSD、Red Hat 和 Juniper Networks。

VXLAN正式由IETF记录在RFC 7348内。Open vSwitch支持VXLAN覆盖网络。
VXLAN可以为网络提供以下作用:
1.突破VLAN的最多4096个终端的数量限制,以满足大规模云计算数据中心的需求。目前因为现在虚拟化技术的发展,在数据中心里的服务器都模拟成虚拟机(VM),而且VM一般都会需要分割成组,达成二层隔离,目前大多是透过VLAN技术实现的。但VLAN技术的缺陷是VLAN Header预留的长度只有12 bit,最多只能支持4096个,无法满足日益增长的需求。目前VXLAN的报文Header内有24 bit,可以支持224次方的VNI个数。(VXLAN中透过VNI来识别,相当于VLAN ID)
2.解决STP在大型网络设备带宽浪费和收敛性能变慢的缺陷。在数据中心一旦启动STP,将导致链路带宽的浪费。此外,当拓扑增加到二百台网络设备时,收敛性能会显变慢。
3.解决ToR(Top of Rack)交换机MAC表耗尽问题。二层网络出现后,不仅要记录数据中心二层设备的MAC地址,还得记录其他数据中心二层范围内的地址,这包括了海量的虚拟机的MAC地址,这增加了TOR MAC表的需求。但目前的交换机芯片远远无法满足此一需求。
核心组件全景图

解密VXLAN协议栈
+---------------------------------+
| 原始以太网帧(1500字节) |
+---------------------------------+
| VXLAN头部(8字节) | → VNI标识/标志位
+---------------------------------+
| UDP头部(8字节) | → 目的端口4789
+---------------------------------+
| 外层IP头部(20字节) | → Underlay网络路由
+---------------------------------+
| 外层MAC头部(14字节) | → 物理网络传输
+---------------------------------+
MTU需调整至1550字节以上(建议1600)避免分片。
VXLAN采用MAC-in-UDP封装,在原始以太网帧外添加多层头部:
+---------------------------------+
| 原始以太网帧(1500字节) |
+---------------------------------+
| VXLAN头部(8字节) |
| - Flags(8位) |
| - VNI(24位) |
| - Reserved(24位+8位) |
+---------------------------------+
| UDP头部(8字节) |
| - 源端口(动态分配) |
| - 目的端口(4789) |
+---------------------------------+
| 外层IP头部(20字节) |
| - 源IP(本地VTEP地址) |
| - 目的IP(远端VTEP地址) |
+---------------------------------+
| 外层MAC头部(14字节) |
| - 源MAC(本地VTEP MAC) |
| - 目的MAC(下一跳MAC) |
+---------------------------------+
VXLAN头部:包含24位VNI,用于标识虚拟网络。
UDP头部:使用标准端口4789,确保兼容性。
外层IP头部:用于在Underlay网络中路由数据包。
封装过程
1.原始帧接收:VTEP接收到虚拟机发送的以太网帧。
2.VXLAN封装:
添加VXLAN头部(含VNI)。
添加UDP头部(源端口动态分配,目的端口4789)。
添加外层IP头部(源IP为本地VTEP,目的IP为远端VTEP)。
添加外层MAC头部(用于物理网络传输)。
3.发送封装后的数据包:通过Underlay网络发送到远端VTEP。

控制平面三大流派
1.多播模式(传统方案)
使用多播组传播广播、未知单播和多播流量。
每个VNI映射到一个多播组(如VNI 5000映射到239.1.1.1)。
依赖IGMP协议维护VTEP组
示例:224.1.1.1多播组对应VNI 5001
2.单播模式+集中式控制
已知单播:通过MAC表查找目的VTEP地址,直接发送。
未知单播:泛洪到同一VNI的所有VTEP。
采用SDN控制器(如NSX、ACI)
典型架构:PIM-SM+RP实现最优路径
3.BGP EVPN(现代主流)
通过MP-BGP传播MAC/IP信息
支持Active-Active多活网关
VXLAN vs VLAN

VLAN是一种在二层网络中实现逻辑分区的技术,通过在以太网帧中添加VLAN标签(802.1Q)来区分不同的网络分段。
核心特性:
12位VLAN ID,支持最多4094个虚拟网络。
基于MAC地址的二层转发。
依赖生成树协议(STP)避免环路。
而VXLAN是一种Overlay网络技术,通过MAC-in-UDP封装实现跨三层网络的二层扩展。
核心特性:
24位VNI(VXLAN Network Identifier),支持1600万个虚拟网络。
基于IP网络的隧道技术,突破物理边界。
支持多播、单播和BGP EVPN等多种控制平面。

VXLAN vs VLAN:数据封装
VXLAN vs VLAN:控制平面

VXLAN vs VLAN

VLAN和VXLAN各有优劣,选择哪种技术取决于你的具体需求和场景。在传统网络中,VLAN仍然是可靠的选择;而在云原生时代,VXLAN无疑是更强大的工具。
应用场景实战解析
1、云计算多租户网络
# OpenStack Neutron VXLAN配置示例
[ml2_type_vxlan]
vni_ranges = 10000:20000
vxlan_group = 239.1.1.1
[ovs]
bridge_mappings = physnet1:br-ex
tunnel_type = vxlan
对比传统VLAN:租户隔离粒度提升4000倍!
2、跨数据中心大二层
案例:两地三中心架构中实现VMotion
关键技术:VXLAN+EVPN+ECMP(延迟<5ms)
容器网络方案
典型方案:Calico+VXLAN模式
性能指标:PPS提升300% vs传统VLAN
运维监控要点
关键指标:VXLAN封装率、VTEP状态、BGP会话
诊断命令:
show nve peers(Cisco)
display vxlan tunnel(Huawei)
ovs-ofctl dump-flows br-tun(Open vSwitch)
挑战与未来演进
当前技术痛点
1.封装开销导致~15%带宽损耗
2.硬件要求:需支持VXLAN Offload的网卡
下一代技术演进
1.GENEVE(通用网络虚拟化封装)
2.SRv6+VXLAN融合方案
3.AI驱动的智能流量调度