本文将从以下3个方面介绍VXLAN:
- 背景。介绍VXLAN产生的背景,解决的问题;
- VXLAN原理和实现。介绍VXLAN的原理和三种实现方式;
1 背景
随着服务器虚拟化技术在数据中心中的广泛应用,数据中心主机数量大规模增长,给虚拟网络带来了以下挑战:
- 虚拟机规模受网络规模限制:在传统二层网络环境下,数据报文是根据MAC地址表进行二层转发,MAC地址表容量限制了虚拟机数量
- 网络隔离能力限制:传统的8021.Q只能支持4096个VLAN,无法满足大量租户的需求;
- 二层STP使得资源利用率不足,无法实现ECMP,且收敛时间长,维护困难;
- 虚拟机迁移范围受网络架构限制:服务器虚拟化后,虚拟机迁移成为常见的需求,为保证迁移过程中业务不中断,需要IP,MAC地址等参数保持不变,且要求网络本身具备多路径的冗余备份和可靠性;
VXLAN的出现很好解决了这些问题:
- VXLAN将虚拟机发出的数据包封装在UDP中,降低大二层网络对MAC地址容量需求;
- VXLAN使用VXLAN网络标识VNI(VXLAN Network Identifier),由24比特组成,支持多达16M的VXLAN段,从而满足了大量的用户标识;
- VXLAN使用3层IP网络建立二层通道,无需运行STP,基于IP实现ECMP;
- VXLAN采用MAC in UDP封装来延伸二层网络,将以太报文封装在IP报文之上,通过路由在网络中传输,无需关注虚拟机的MAC地址。且路由网络无网络结构限制,具备大规模扩展能力、故障自愈能力、负载均衡能力。通过路由网络,虚拟机迁移不受网络架构限制。
2 VXLAN原理和实现
2.1 VXLAN基本概念
VXLAN是NVO3(Network Virtualization over Layer 3)中的一种网络虚拟化技术,通过将主机发出的数据包封装在UDP中,并使用物理网络的IP、MAC作为outer-header进行封装,然后在IP网络上传输,到达目的地后由隧道终结点解封装并将数据发送给目标虚拟机,实现服务器间端到端的大二层。
VXLAN组件包括:
- NVE(Network Virtualization Edge):网络虚拟边缘节点,实现网络虚拟化功能的网络实体;
- VTEP( VXLAN Tunnel Endpoints VXLAN):VXLAN 隧道端点;
- VNI(VXLAN Network Identifier):类似于VLAN, 包括二层VNI和三层VNI,二层VNI和VLAN 对应,二层VNI一个网络域内唯一,支持16M VNI;三层VNI类似于SVI。