vlan诞生的意义?
VLAN(Virtual LAN),翻译成中文是“虚拟局域网”。LAN可以是由少数几台家用计算机构成的网络,也可以是数以百计的计算机构成的企业网络。VLAN所指的LAN特指使用路由器分割的网络——也就是广播域。
对于L2交换机而言,同属于一个广播域的两个设备想要通信,只有对应MAC地址的设备才是真正的接收方,但实际上却是数据帧传遍整个网络,所有设备都会收到,且直接丢弃。这就造成了几个问题:
- 信息安全风险
- 资源不隔离
vlan怎么解决这些问题
vlan在原生二层以太网协议中加入标记用来标记不同的虚拟网络,
以太网帧
vlan的方式
vlan在其中使用12个bit的vlanId来标记不同vlan的流量。因此vlan最多能支持2^12=4096个lan
vlan的缺点
- 4096对于大型虚拟化场景来说仍然不够,比如公有云和一些数据中心动辄需要支持数万租户。
- 不支持mac地址重叠,这个对于多租户场景来说也是问题
vxlan
vxlan则是一种overlay方案,基于三层搭建的虚拟网络。由于其支持24位
的vxlanid(VNI),因此支持2^24=16777216个虚拟网络,可以说非常充裕了
vxlan的协议构造
每个 VXLAN 节点上的出站L2 Ethernet Frame都会被捕获,然后封装成 UDP 数据包,并通过 L3 网络发送到目标 VXLAN 节点。当 L2 Ethernet Frame 到达 VXLAN 节点时,就从 UDP 数据包中提取(解封装),并注入目标设备的网络接口。这种技术称为隧道。因此,VXLAN 节点会创建一个虚拟 L2 网段,从而创建一个 L2 广播域。
VXLAN Header:增加VXLAN头(8字节),其中包含24比特的VNI字段,用来定义VXLAN网络中不同的租户。此外,还包含VXLAN Flags(8比特,取值为00001000)和两个保留字段(分别为24比特和8比特)。
vxlan的意义
- 支持大量租户的虚拟网络,解决vlan虚拟网络不足的问题。
- 可以利用ip构建大二层虚拟网络
- VXLAN网络保证虚拟机动态迁移:采用“MAC in UDP”的封装方式,保证虚拟机迁移前后的IP和MAC不变。