VXLAN (Virtual eXtensible Local Area Network)

VXLAN是为云计算而生的,考虑到虚拟机在运行过程中,如果想在不改变IP地址的前提下,在不同地域间移动,在VXLAN之前,技术上是做不到的。

VXLAN (Virtual eXtensible Local Area Network)_第1张图片
image.png

VXLAN的思想就是,把一个虚拟的二层网络(以太网),叠加在已有的三层网络(IP网)之上。这样不同地域的虚拟机可以通过VXLAN技术,好像都处于同一个局域网之中。这样,VM在不同地域间移动时,因为就像在同一个局域网中移动一样,所以IP地址可以保持不变。

VXLAN桢结构:

image.png

VXLAN也可以说是在现有的三层网络中,建立一个新的,虚拟的二层网络。这个虚拟的二层网络,好比是在下面的三层网络中建立了一条隧道。隧道两端的终点需要一个特殊的设备,称为虚拟隧道端点(VXLAN Tunnel End Point 或 VTEP)。

VXLAN (Virtual eXtensible Local Area Network)_第2张图片
image.png

在VXLAN头中,有一个24比特的VNI,用于唯一标识一个VXLAN。

VNI/VXLAN隧道/VXLAN包头,都在VTEP中处理,虚拟机是看不到它们的。VTEP可能实现在交换机或服务器上,可以是硬件或软件。

举个简单例子

同一个局域网内,有两个虚拟机。分别通过网卡nic0互连。

在第一个虚拟机中输入:

sudo ip link add name vxlan-nic type vxlan id 1234 group 224.0.0.123 dev nic0 dstport 4789
sudo ip link set vxlan-nic up
sudo ip addr add 10.0.0.1/24 dev vxlan-nic

第二个虚拟机中输入:

sudo ip link add name vxlan-nic type vxlan id 1234 group 224.0.0.123 dev nic0 dstport 4789
sudo ip link set vxlan-nic up
sudo ip addr add 10.0.0.2/24 dev vxlan-nic

两个虚拟机就可以在虚拟局域网(10.0.0.0/24 )中通信了。

参考资料

  1. Virtual Extensible LAN (VXLAN) Overview
  2. RFC 7348: Virtual eXtensible Local Area Network (VXLAN): A Framework for Overlaying Virtualized Layer 2 Networks over Layer 3 Networks

你可能感兴趣的:(VXLAN (Virtual eXtensible Local Area Network))