在传统的大二层网络里,实现二层网络隔离主要依赖于vlan技术。但是在目前云计算的环境下,基于vlan的二层网络存在很多问题,如下:
虚拟机规模受网络设备表项规格的限制
二层转发基于mac转发表。在云领域,虚机的规模很大,导致mac表的规模很大,接入层设备的压力较大。
网络隔离能力有限
公有云中,租户较多,vpc的数目也较多。VLAN只有12bit的标示位,最多能够4096 个 VLAN 网络。对于公有云场景也是无法满足那么多租户的网络需求。
虚机迁移的需求受限
云中,虚机的迁移是较为频繁的需求。虚机的迁移需要保证,虚机的IP及MAC地址不变,因此,无论虚机迁移至何处,都需要保证虚机在原来的子网内。在vlan模式下,这就要求迁移的目标宿主机在同一个二层网络下,这就限制了虚机迁移的范围。
针对VLAN上述存在的问题,因此VXLAN被提出用于实现网络隔离。同样GRE也是同样功能。
VXLAN协议
VXLAN:Virtual eXtensible Local Area Network,虚拟扩展局域网。基于UDP实现跨三层网络的二层网络,MAC-IN-UDP。
VXLAN报文架构:
VXLAN报文
如上报文格式:
VXLAN头部封装的是原始的二层报文,VXLAN头部则封装在UDP报文中。
Inner:
内部报文,分别是内部目的地址MAC及IP地址。
VXLAN Header:
<