vlan和vxlan的区别

vlan诞生的意义?

VLAN(Virtual LAN),翻译成中文是“虚拟局域网”。LAN可以是由少数几台家用计算机构成的网络,也可以是数以百计的计算机构成的企业网络。VLAN所指的LAN特指使用路由器分割的网络——也就是广播域。
对于L2交换机而言,同属于一个广播域的两个设备想要通信,只有对应MAC地址的设备才是真正的接收方,但实际上却是数据帧传遍整个网络,所有设备都会收到,且直接丢弃。这就造成了几个问题:

  1. 信息安全风险
  2. 资源不隔离

1

vlan怎么解决这些问题

vlan在原生二层以太网协议中加入标记用来标记不同的虚拟网络,

以太网帧

2
vlan的方式
3
vlan在其中使用12个bit的vlanId来标记不同vlan的流量。因此vlan最多能支持2^12=4096个lan

vlan的缺点

  • 4096对于大型虚拟化场景来说仍然不够,比如公有云和一些数据中心动辄需要支持数万租户。
  • 不支持mac地址重叠,这个对于多租户场景来说也是问题

vxlan

vxlan则是一种overlay方案,基于三层搭建的虚拟网络。由于其支持24位
的vxlanid(VNI),因此支持2^24=16777216个虚拟网络,可以说非常充裕了

vxlan的协议构造

4

每个 VXLAN 节点上的出站L2 Ethernet Frame都会被捕获,然后封装成 UDP 数据包,并通过 L3 网络发送到目标 VXLAN 节点。当 L2 Ethernet Frame 到达 VXLAN 节点时,就从 UDP 数据包中提取(解封装),并注入目标设备的网络接口。这种技术称为隧道。因此,VXLAN 节点会创建一个虚拟 L2 网段,从而创建一个 L2 广播域。

5

VXLAN Header:增加VXLAN头(8字节),其中包含24比特的VNI字段,用来定义VXLAN网络中不同的租户。此外,还包含VXLAN Flags(8比特,取值为00001000)和两个保留字段(分别为24比特和8比特)。

vxlan的意义

  • 支持大量租户的虚拟网络,解决vlan虚拟网络不足的问题。
  • 可以利用ip构建大二层虚拟网络
  • VXLAN网络保证虚拟机动态迁移:采用“MAC in UDP”的封装方式,保证虚拟机迁移前后的IP和MAC不变。