在前一阶段的文章中,我们介绍了Neutron和NSX中的几个基本概念:
IRB(Integrated Routing & Bridging)或DAG (Distributed Anycast Gateway),实现全网所有VM的同网段和跨网段转发;
VTEP,位于IRB的边缘,各VTEP需要互相同步相关网段中所有VM的MAC和IP地址信息;
Overlay,让各VTEP跨域三层IP网络实现二层互联互通。Overlay的实现可以是VXLAN或NVGRE。
VXLAN Bridging (VXLAN L2 Gateway)和VXLAN Routing (VXLAN L3 Gateway),实现从VLAN到VXLAN的同网段二层映射,以及跨网段三层路由。
EVPN,用于各VTEP之间同步VM的MAC和IP地址信息。
也就是说在部署了OpenStack的云数据中心中,虚拟机通过由这些组件构成的SDN网络实现互联互通。
我们发现,在Neutron的默认实现中,这些功能均由运行在各宿主机上的虚拟交换机OVS实现,因此,宿主机的CPU资源中,相当大的一部分将用于实现VXLAN封装/解封装,以及基于EVPN的表项同步。这种实现叫做软件Overlay,或主机Overlay。
随着宿主机网络从10G-25G-100G的演进,软件Overlay消耗的CPU资源也会同步增加。在现代的高性能数据中心中,软件Overlay消耗的CPU资源,与业务对计算通信效率的需求之间的矛盾,已经成为主要矛盾。
为了解决这一矛盾,工程师们期望利用数据中心交换机强大的数据包处理转发能力,将各宿主机的CPU从封装Overlay的枯燥工作中解放出来,这叫做硬件Overlay。
上图是软件Overlay的实现,OVS作为VTEP节点封装VXLAN隧道;
上图是硬件Overlay的实现,数据中心接入交换机(TOR, Top of Rack)作为VTEP节点封装VXLAN隧道; 二者对比如下:
硬件Overlay的基本模型如下图所示:
我们看到,在这个模型中,OVS仅对来自VM的数据包打上VLAN标签,在TOR上进行VLAN到VXLAN的封装。
今天留给大家的问题,也是我们被用户问到的最多的问题之一——
TOR上,VLAN到VXLAN的映射关系,是谁来确定的呢?
明天介绍的内容——层次化端口绑定 (Hierarchy Port Binding),将详解这一机制,也是硬件SDN的精髓。这一机制不但能解决基于VM的IaaS云,还可以应用于容器云平台。大家千万不要错过!