一、VXLAN 简介
(1)定义
RFC7348 定义了 VLAN 扩展方案 VXLAN(Virtual eXtensible Local Area Network)。VXLAN 采
用 MAC in UDP(User Datagram Protocol)封装方式,是 NVO3(Network Virtualization over
Layer 3)中的一种网络虚拟化技术。
(2)目的
作为云计算的核心技术之一,服务器虚拟化凭借其大幅降低 IT 成本、提高业务部署灵活性、
降低运维成本等优势已经得到越来越多的认可和部署。
(3)挑战
一台服务器可虚拟多台虚拟机,而一台虚拟机相当于一台主机。主机的数量发
生了数量级的变化,这也为虚拟网络带来了如下问题:
1、 虚拟机规模受网络规格限制
在传统二层网络环境下,数据报文是通过查询 MAC 地址表进行二层转发,而 MAC 地址表
的容量限制了虚拟机的数量。
2、网络隔离能力限制
当前主流的网络隔离技术是 VLAN,在大规模的虚拟化网络中部署存在如下限制:
由于 IEEE 802.1Q 中定义的 VLAN Tag 域只有 12 比特,仅能表示 4096 个
VLAN,无法满足大二层网络中标识大量租户或租户群的需求。
3、传统二层网络中的 VLAN 无法满足网络动态调整的需求。
4、 虚拟机迁移范围受网络架构限制
虚拟机启动后,可能由于服务器资源等问题(如 CPU 过高,内存不够等),需要将虚拟机迁
移到新的服务器上。为了保证虚拟机迁移过程中业务不中断,则需要保证虚拟机的 IP 地址
保持不变,这就要求业务网络是一个二层网络,且要求网络本身具备多路径的冗余备份和可
靠性。
二、 VXLAN解决的问题
1、针对虚拟机规模受网络规格限制
VXLAN 将虚拟机发出的数据包封装在 UDP 中,并使用物理网络的 IP、MAC 地址作为外层
头进行封装,对网络只表现为封装后的参数。因此,极大降低了大二层网络对 MAC 地址规
格的需求。
2、针对网络隔离能力限制
VXLAN 引入了类似 VLAN ID 的用户标识,称为 VXLAN 网络标识 VNI(VXLAN Network
Identifier),由 24 比特组成,支持多达 16M 的 VXLAN 段,从而满足了大量的用户标识。
3、 针对虚拟机迁移范围受网络架构限制
VXLAN 通过采用 MAC in UDP 封装来延伸二层网络,将以太报文封装在 IP 报文之上,通过
路由在网络中传输,无需关注虚拟机的 MAC 地址。且路由网络无网络结构限制,具备大规
模扩展能力、故障自愈能力、负载均衡能力。通过路由网络,虚拟机迁移不受网络架构限制。
受益随着数据中心在物理网络基础设施上实施服务器虚拟化的快速发展,作为 NVO3 技术之一
的 VXLAN:
4、 通过 24 比特的 VNI 可以支持多达 16M 的 VXLAN 段的网络隔离,对用户进行隔离
和标识不再受到限制,可满足海量租户。
5、除 VXLAN 网络边缘设备,网络中的其他设备不需要识别虚拟机的 MAC 地址,减轻
了设备的 MAC 地址学习压力,提升了设备性能。
6、通过采用 MAC in UDP 封装来延伸二层网络,实现了物理网络和虚拟网络解耦,租
户可以规划自己的虚拟网络,不需要考虑物理网络 IP 地址和广播域的限制,大大降
低了网络管理的难度。
三、VXLAN基本概念
1、基于 NVo3 的二层 Fabric 组网
NVO3(Network Virtualization Over Layer 3),基于三层 IP overlay 网
络构建虚拟网络技术统称为 NVO3,目前比较有代表性的有:VXLAN、NVGRE、STT。
运行 NVO3 的设备叫做 NVE(Network Virtualization Edge),它位于 overlay 网络的边界,
实现二、三层的虚拟化功能。
VXLAN(Virtual Extensible LAN,虚拟可扩展局域网)是目前 NVO3 中影响力最为广泛的一种。
它通过 LMAC in UDP 的报文封装方式,实现基于 IP overlay 的虚拟局域网。
VXLAN 网络中的 NVE 以 VTEP 进行标识,VTEP(VXLAN Tunnel EndPoint,VXLAN 隧道端
点);每一个 NVE 至少有一个 VTEP,VTEP 使用 NVE 的 IP 地址表示;
两个 VTEP 可以确定一条 VXLAN 隧道。
2、VXLAN 概念 – VTEP
VXLAN 网络中的 NVE 以 VTEP 进行标识,VTEP(VXLAN Tunnel EndPoint,VXLAN 隧道端
点);
每一个 NVE 至少有一个 VTEP,VTEP 使用 NVE 的 IP 地址表示;
两个 VTEP 可以确定一条 VXLAN 隧道,VTEP 间的这条 VXLAN 隧道将被两个 NVE 间的所有
VNI 所公用。
3、VXLAN – VNI
VNI-24 比特,用于标识虚拟网络,最大支持 16M。
4、VXLAN 转发数据封装
5、隧道和 VNI 关系
标识 VXLAN 网络中的二层域。
两个 VTEP 可以确定一条 VXLAN 隧道,VTEP 间的这条 VXLAN 隧道将被两个 NVE 间的所有
VNI 所公用。