局域网SDN技术硬核内幕 二 云网融合CP的关键——层次化端口绑定

局域网SDN技术硬核内幕 二 云网融合CP的关键——层次化端口绑定

在之前的文章中,我们提到,Ev*n是云网融合的红娘,撮合了云平台和网络转发平面。而当网络中的硬件交换机支持Ev*n和VXLAN时,它可以代替软件OVS,提升网络吞吐量,降低转发时延,并且节约宝贵的CPU资源。

一个问题出现了:
在硬件交换机实现VXLAN封装的场景中,它需要将不同的VLAN封装到对应的VXLAN中。VLAN和VXLAN的对应关系,是Neutron进行分配的,那么,Neutron怎么样才能将这个对应关系下发到硬件交换机呢?

让我们揭开今天的主题——层次化端口绑定。
层次化端口绑定是在OpenStack Kilo版本中引入的。
原来,在Neutron中,向网络节点下发配置的组件,叫做ML2组件。当用户在Nova中创建虚拟机时,Nova会通知Neutron将虚拟机的网络端口,绑定到虚拟化网络中。对于软件Overlay的场景,ML2组件调用OVS的驱动——Mechanism Driver,把虚拟机的VLAN、对应的VXLAN等信息配置到OVS上。
引入了层次化端口绑定机制以后,ML2允许注册多个Mechanism Driver。这样,硬件交换机的厂商只需要按照ML2 Mechanism Driver的规约,自行开发适配了交换机的Mechanism Driver并在ML2中注册,就可以接管端口绑定的功能,将Neutron对虚拟化网络的配置接管到硬件交换机上了。

典型的层次化端口绑定的机制如下图:
局域网SDN技术硬核内幕 二 云网融合CP的关键——层次化端口绑定
图中数字表示的各步骤如下:

  1. 用户在Nova中创建一个虚拟机,将其加入网络VXLAN 100;
  2. Neutron为VXLAN 100创建网络接口,并将请求发送到ML2组件;
  3. ML2调用物理交换机(TOR)的Mechanism Driver,设定VXLAN 100;
  4. 物理交换机Mechanism Driver再申请一个VLAN 110,通知ML2,当前这个VM的网络接口还需要绑定在VLAN 110
  5. 物理交换机Mechanism Driver通过Netconf接口设定VLAN 110和VXLAN 100的映射关系;
  6. ML2调用OVS的Mechanism Driver,在OVS添加VLAN 110,并将该VLAN配置到VM对应的接口上,
  7. OVS将对VM发出的数据包打上VLAN 110的 TAG并转发到物理交换机的接口,物理交换机将带有VLAN 110 TAG的数据包封装入VXLAN 110;

我们看到,VM的一个网络接口,既通过OVS的Mechanism Driver绑定到了OVS的VLAN接口上,又通过物理交换机的Mechanism Driver绑定到了物理交换机的VLAN/VXLAN接口上(在交换机上也叫VXLAN Attach Circult接口与VXLAN Tunnel接口)。这就是所谓“层次化端口绑定”这个短语的意义。

层次化端口绑定的本质,是Neutron为硬件交换机厂商提供了一个实现硬件SDN Overlay的接口。有了这种机制,云平台和物理网络才能成为一对亲密无间的CP。
类似的接口还有LBaaS和FWaaS,在后面内容会提到。
下一章我们将详解硬件Overlay的转发平面原理。