VXLAN 基本概述
VXLAN(Virtual eXtensible Local Area Network,虚拟扩展局域网)是一种网络虚拟化技术,定义在 RFC7348 中。它采用 MAC in UDP(User Datagram Protocol)封装方式,是 NVO3(Network Virtualization over Layer 3)中的一种网络虚拟化技术。
随着云计算的发展,服务器虚拟化技术的广泛部署,极大地增加了数据中心的计算密度;同时,为了实现业务的灵活变更,虚拟机 VM(Virtual Machine)需要能够在网络中不受限迁移,这给传统的“二层+三层”数据中心网络带来了新的挑战。
在传统二层网络环境下,数据报文是通过查询 MAC 地址表进行二层转发。服务器虚拟化后,VM 的数量比原有的物理机发生了数量级的增长,伴随而来的便是 VM 网卡 MAC 地址数量的空前增加。而接入侧二层设备的 MAC 地址表规格较小,无法满足快速增长的 VM 数量。
VLAN 作为当前主流的网络隔离技术,在标准定义中只有 12 比特,因此可用的 VLAN 数量仅 4096 个。对于公有云或其它大型虚拟化云计算服务这种动辄上万甚至更多租户的场景而言,VLAN 的隔离能力无法满足。
虚拟机迁移范围受限由于服务器资源等问题(如 CPU 过高,内存不够等),虚拟机迁移已经成为了一个常态性业务。虚拟机迁移是指将虚拟机从一个物理机迁移到另一个物理机。为了保证虚拟机迁移过程中业务不中断,则需要保证虚拟机的 IP 地址、MAC 地址等参数保持不变,这就要求虚拟机迁移必须发生在一个二层网络中。而传统的二层网络,将虚拟机迁移限制在了一个较小的局部范围内。
VXLAN 解决了这些挑战的方法是,将管理员规划的同一区域内的 VM 发出的原始报文封装成新的 UDP 报文,并使用物理网络的 IP 和 MAC 地址作为外层头,这样报文对网络中的其他设备只表现为封装后的参数。因此,极大降低了大二层网络对 MAC 地址规格的需求。
VXLAN 还引入了类似 VLAN ID 的用户标识,称为 VXLAN 网络标识 VNI(VXLAN Network Identifier),由 24 比特组成,支持多达 16M 的 VXLAN 段,有效得解决了云计算中海量租户隔离的问题。
VXLAN 技术在三层网络之上,构建出了一个虚拟的大二层网络,只要虚拟机路由可达,就可以将其规划到同一个大二层网络中。这就解决了虚拟机迁移范围受限问题。
传统数据中心网络结构中,网络模型按照经典的三层架构(接入、汇聚、核心)进行部署的。在服务器区,再根据不同的应用类型划分不同的层次,例如,数据库层、应用服务器层、WEB 服务器层等。数据中心的四大焦点:可靠、灵活、绿色、高效。
VXLAN 技术解决了数据中心网络结构中的挑战,如流量需求大、延迟高、东西向流量增多等问题。VXLAN 技术使得数据中心网络结构更加灵活、可靠、绿色、高效。