一、VXLAN
1、早期的虚拟机管理及迁移依附于物理网络,因此数据中心内部东西向流量主要是二层流量。为扩大二层物理网络的规模,提高链路利用率,出现了TRILL、SPB等大二层网络技术。
随着虚拟化数据中心规模的不断扩大,以及云化管理的不断深入,物理网络的种种限制越来越不能满足虚拟化的要求,由此提出了VXLAN、NVGRE等Overlay技术。
在Overlay方案中,物理网络的东西向流量类型逐渐由二层向三层转变,通过增加封装,将网络拓扑由物理二层变为逻辑二层,同时提供了逻辑二层的划分管理,更好地满足了多租户的需求。
VXLAN、NVGRE等Overlay技术都是通过将MAC封装在IP之上,实现对物理网络的屏蔽,解决了物理网络VLAN数量限制、接入交换机MAC表资源有限等问题,同时通过提供统一的逻辑网络管理工具,更方便地实现了虚拟机在进行迁移时网络策略跟随的问题,大大降低了虚拟化对网络的依赖,成为了目前网络虚拟化的主要发展方向。
2、VXLAN(Virtual eXtensible Local Area Network,RFC7348)是IETF NVO3(Network Virtualization over Layer 3)定义的NVO3标准技术之一,采用MAC in UDP封装方式,将二层报文用三层协议进行封装,可对二层网络在三层范围进行扩展,同时支持24bits的VNI ID(16M租户能力),满足数据中心大二层VM迁移和多租户的需求。
在VXLAN NVO3网络模型中,部署在VXLAN网络边缘的设备称为 VXLAN NVE(Network Virtualization Edge,网络虚拟边缘),主要负责VLAN网络与VXLAN网络间的封装和解封装。经过NVE封装转换后,NVE间就可基于L3基础网络建立Overlay二层虚拟化网络。
VXLAN技术特点:
位置无关性:业务可在任意位置灵活部署,缓解了服务器虚拟化后相关的网络扩展问题。
可扩展性:在传统网络架构上规划新的Overlay网络,部署方便,同时避免了大二层的广播风暴问题,可扩展性极强。
部署简单:由高可靠SDN Controller完成控制面的配置和管理,避免了大规模的分布式部署,同时集中部署模式可加速网络和安全基础架构的配置,提高可扩展性。
适合云业务:可实现千万级别的租户间隔离,有力地支持了云业务的大规模部署。
技术优势:VXLAN利用了现有通用的UDP进行传输,成熟性极高。
3、VXLN网关
NVE:
目前有软件NVE(一般安装在服务器上;例如OVS)和硬件NVE(一般集成在交换机上,例如CE6850)。由于软件NVE是在原设备中安装一个软件包,硬件NVE是在原设备中增加一个硬件模块,而原设备多数是VLAN的二层设备,所以,NVE又是VXLAN的二层网关,主要实现VXLAN与VLAN、MAC等的二层映射。
VXLAN网关:
与VXLAN NVE类似,但是地位更高一些的是另一个VXLAN角色,即VXLAN三层网关,简称VXLAN GW,主要实现VXLAN报文头与IP报文头的映射。
不管二层VXLAN网关还是三层VXLAN网关,都是主要实现了VXLAN网络和非VXLAN网络之间的连接。
NVE是服务器虚拟化层的一个功能模块,虚拟机通过虚拟化软件直接建立VTEP隧道。
NVE也可以是一台支持VXLAN的接入交换机集中为多租户提供VXLAN网关服务。
VXLAN网关可以实现不同VXLAN下租户间通信,也能实现VXLAN用户与非VXLAN用户间通信,这和VLANIF接口的功能是类似的。
4、VXLAN报文封装
VXLAN是IETF定义的NVO3(Network Virtualization over Layer3)标准技术之一。
采用Mac in UDP封装方式将二层报文用三层协议进行封装。
支持24bits的VNI ID ,满足数据中心大二层VM迁移和多租户的需求。
VXLAN头封装:
VNI:VXLAN网络标识,24比特,用于区分VXLAN段。
Reserved:24比特和8比特,必须设置为0。
外层UDP头封装:
目的UDP端口号是4789。源端口号是内层以太报文头通过哈希算法计算后的值。
外层IP头封装:
源IP地址为发送报文的虚拟机所属VTEP的IP地址;目的IP地址是目的虚拟机所属VTEP的IP地址。
外层Ethernet头封装:
SA:发送报文的虚拟机所属VTEP的MAC地址。
DA:目的虚拟机所属VTEP上路由表中直连的下一跳MAC地址。
VLAN Type:可选字段,当报文中携带VLAN Tag时,该字段取值为0x8100。
Ethernet Type:以太报文类型,IP协议报文该字段取值为0x0800。
5、vSwitch
vSwitch为虚拟机工具Hypervisor层中集成的虚拟交换机。
VTEP是在虚拟机所属服务器的Hypervisor中的vSwitch间进行建立的。
控制器为可选组件。
VTEP—Virtual Tunnel End Point 虚拟隧道端点,即VXLAN隧道的入口和出口。在这里VM流量经过vSwtich交换后会导入到VXLAN隧道里,入口是VTEP。
VNI— Virtual Network Instance 虚拟网络实例,一个VNI就是一个虚拟网络,一个VNI用一个VNI ID标识。例子里VM1和VM2在同一个虚拟网络里,VNI ID为1。
VM1地址为IP1,VM3地址为IP3,IP1与IP3为同一子网。
ARP协议交互过程:
VM1先发送ARP报文,请求VM3的MAC地址。
ARP报文通过OpenFlow报文封装发给AC,AC上使能ARP代理。
AC通过IP3找到MAC3,响应ARP报文,SIP为IP3,SMAC为MAC3。
vSwtich将ARP响应报文发给VM1。