SDN网络架构 —— ML2层次化端口

发布时间:2021-11-18

浏览次数:992

分享到:
  SDN是一种新型网络架构,其核心技术就是把网络设备的控制平面和转发平面分离,采用控制器集中控制的方式来替代原本分散在各个网络设备上的控制引擎功能,通过定义开放的可编程接口实现业务的灵活定制。SDN架构分为应用层、控制平面层和数据平面层三个层,它可以通过编写软件的方式来灵活定义网络设备的转发功能,其中包含了多种接口协议,使用南向接口协议实现SDN控制器与SDN控制器的交互,使用北向API实现业务应用与SDN控制器的交互。在云数据中心的SDN解决方案,其应用层通常为openstack,控制平面层为SDN控制器,数据平面层为OpenFlow虚拟交换机和SDN硬件网关,其中SDN控制器是整个架构的核心,负责统一管理和配置转发层的网络资源与设备。


  数据平面由若干网元组成,每个网元可以包含一个或多个SDN Datapath。每个SDN Datapath是一个逻辑上的网络设备,单纯被用来转发和处理数据,其在逻辑上代表了全部或部分的物理资源。控制平面中SDN控制器主要负责两个任务,一是将SDN应用层请求转换到SDN Datapath,二是为SDN应用层提供底层网络的抽象模型。一个SDN控制器包括北向接口代理、SDN控制逻辑和控制平面接口驱动三部分。



SDN架构:


层次化端口绑定:(Hierarchical Port Binding)

   ML2将支持分层网络技术,通过机制drivers绑定端口和在每一个层级为端口分配网络segment值。例如一个机制driver可以绑定静态VXLAN segment,从而导致与静态网络相连的ToR交换机,在与连接的计算节点之间的链路上会分配一个动态的VLAN值。因此第二个机制driver,例如VOS或HyperV driver,将绑定那个动态VLAN值到计算节点。

  层次化端口绑定是在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对虚拟化网络的配置接管到硬件交换机上了。



  典型的层次化端口绑定的机制如下图:



  图中数字表示的各步骤如下:

  用户在Nova中创建一个虚拟机,将其加入网络VXLAN 100;
  Neutron为VXLAN 100创建网络接口,并将请求发送到ML2组件;
  ML2调用物理交换机(TOR)的Mechanism Driver,设定VXLAN 100;
  物理交换机Mechanism Driver再申请一个VLAN 110,通知ML2,当前这个VM的网络接口还需要绑定在VLAN 110
  物理交换机Mechanism Driver通过Netconf接口设定VLAN 110和VXLAN 100的映射关系;
  ML2调用OVS的Mechanism Driver,在OVS添加VLAN 110,并将该VLAN配置到VM对应的接口上,
  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接口)。这就是所谓“层次化端口绑定”这个短语的意义。

 
15012962335