VXLAN 是什么?和 VLAN 有什么区别?

2022-03-05 15:04:46 admin 268

VXLAN 或 Virtual Extended Local Area Network 是一种网络虚拟化技术,广泛应用于大型二层网络。源网络设备和目的网络设备之间建立逻辑VXLAN隧道,采用UDP(User Datagram Protocol)封装方式MAC,即将虚拟机发送的原始以太网报文完全封装在UDP报文中,然后在层封装物理网络的IP包头和以太网包头。这样,封装后的报文就可以像普通的IP报文一样通过路由网络进行转发。路由机翼将虚拟机从第 2 层和第 3 层网络的结构限制中完全解放出来。


为什么需要 VXLAN?


为什么需要 VXLAN?这与服务器虚拟化的趋势息息相关:一方面,虚拟机发生动态迁移,要求虚拟机的IP和MAC地址在迁移前后不能改变;


虚拟机的实时迁移


服务器虚拟化技术将物理服务器虚拟化为多个称为虚拟机 (VM) 的逻辑服务器。服务器虚拟化可以有效提高服务器利用率,降低能耗,降低运营成本,因此虚拟化技术得到广泛应用。


服务器虚拟化后,虚拟机的动态迁移就变得正常了,为了保证迁移过程中服务不中断,不仅要保持虚拟机的IP地址不变,还要保持虚拟机的运行状态machine 虚拟机迁移时的机器。它还必须保持相同的状态(例如 TCP 会话状态),以便动态虚拟机迁移只能在相同的第 2 层域中执行。但不能跨二层域迁移。


传统的三层网络架构限制了虚拟机的动态迁移范围。如下图所示,迁移只能在小范围内进行,应用受到严重限制。


5g/4g工业路由网关


传统的三层网络架构限制了虚拟机的动态迁移范围


为了打破这个限制,实现虚拟机的大规模甚至跨区域动态迁移,需要迁移中可能涉及的所有服务器都包含在同一个二层网络域中,因此可以轻松地进行 VM 的大规模迁移。


众所周知,同一个二层交换机可以实现连接的服务器之间的二层通信,当服务器从二层交换机的一个端口迁移到另一个端口时,IP地址可以保持不变。这样可以满足动态虚拟机迁移的需要。这就是 VXLAN 的设计理念和目标。


VXLAN提供了一种方法论:基于IP网络,当源端和目的端之间有通信需求时,在IP网络上创建虚拟隧道,透明转发用户数据。任何两个点都可以通过 VXLAN 隧道进行通信,而忽略底层网络的结构和细节。从服务器的角度来看,VXLAN为他们把整个骨干网虚拟成一个巨大的“二层交换机”,所有的服务器都连接到这个虚拟的二层交换机上。但是如何在基础网络中转发是这个“巨无霸”内部的事情,服务器根本不用操心。


5g/4g工业路由网关


VXLAN将整个骨干网虚拟成一个巨大的“二层交换机”


基于这个“Layer 2 Switch”模型,很容易理解为什么VXLAN现在可以实现动态VM迁移:将虚拟机从“Layer 2 Switch”的一个端口交换到另一个端口,而无需更改IP地址全部。


租户数量的增加需要能够隔离大量租户的网络


在传统的 VLAN 网络中,标准定义支持的可用 VLAN 数量只有 4000 个左右。服务器虚拟化后,一台物理服务器托管多个虚拟机,每个虚拟机都有独立的 IP 地址和 MAC 地址,服务器对应的数量成倍增加。比如公有云或者其他大型虚拟化云数据中心,往往要容纳数万甚至更多的租户,VLAN能力显然是不够的。


VXLAN如何解决以上问题? VXLAN在VXLAN帧头中引入了一个类似于VLAN-ID的网络标识符,称为VXLAN网络标识符VNI(VXLAN网络ID)由24位组成,理论上最多可以支持1600万个VXLAN网段,从而满足大型和多样化租户之间的识别和隔离需求。


VXLAN 和 VLAN 有什么区别?


VLAN作为一种传统的网络隔离技术,标准定义的VLAN只有4000个左右,无法满足大型二层网络中租户之间的隔离要求。此外,二层VLAN范围一般较小且固定,无法支持虚拟机的大规模动态迁移。


VXLAN完美弥补了VLAN的上述不足。一方面,通过VXLAN中的24位VNI字段,提供高达1600万租户的识别能力,远大于VLAN的4000;另一方面,VXLAN本质上是由两台交换机组成,在两台交换机之间建立了一条虚拟隧道,穿越基础IP网络,基础IP网络到一个巨大的“二层交换机”,即一个大的二层网络被虚拟化了大规模动态虚拟机迁移的需求。


虽然 VXLAN 名义上是 VLAN 的扩展协议,但 VXLAN 建立虚拟隧道的能力与 VLAN 有很大的不同。


让我们介绍一下VXLAN数据包是什么样的。




VXLAN 数据包格式(例如,外部 IP 标头为 IPv4 格式)


如上图所示,VTEP对VM发送的原始以太网帧(原始L2帧)进行如下“包装”:


VXLAN Header 添加一个 VXLAN 头(8 字节),其中包含一个 24 位 VNI 字段,用于定义 VXLAN 网络中的不同租户。此外,它还包含 VXLAN 标志(8 位,值 00001000)和两个保留字段(分别为 24 位和 8 位)。



网站首页
解决方案
产品中心
在线咨询