多机环境下虚机网络实现机制(四)

SDN融合方案中,neutron底层网络运行机制


1、服务部署情况

一般而言,neutron-server和各neutron-plugin部署在控制节点或者网络节点上,而neutron agent则部署在网络节点上和计算节点上。我们先来简单地分析控制端neutron-server和neutron-plugin的工作,然后再分析设备端neutron-agent的工作。

1.1 compute节点的部署情况

  • keystone认证服务
  • nova-comput服务
  • OVS service和OVS-agent

1.2 network节点的部署情况

  • OVS service
  • OVS agent
  • L3 agent
  • DHCP agent
  • metadata agent
  • keystone服务

1.3 controller节点的部署情况

  • SQL server
  • message queue
  • keystone service
  • neutron server
  • ml2 plugin

2、neutron底层实现机制

2.1 总体介绍

在neutron和SDN方案中,neutron底层网络的实现包括:

  • agent是处理数据流的网络设备(OVS,Router,负载均衡等)
  • agent是SDN controller(ODL,ONOS等)

具体关系包括两种类型,如图所示:

第一种:neutron作为SDN controller

第二种:neutron作为application

第一种类型:neutron相当于SDN控制器 第二种类型:neutron作为SDN的应用,将业务告知给SDN controller,neutron的角色更多的是super controller或者网络编排器,来完成openstack中有关于网络业务的集中分发,将应用的RESTful API分发给相应的SDN进行处理。具体实现方法包括:

  • 特定的SDN controller plugin
  • ML2 plugin和定制的mechanism driver

2.2 应用举例

openstack和SDN集成中,以openDayLight为例,可以通过实现mechanism driver来与neutron对接,利用ml2 plugin的北向 RESTful API实现功能。

通过一个openstack用户应用的调用为例进行说明(ml2配置的ODL的mechanism driver,以及一个VXLAN的driver):

(1)用户在horizon界面发从对网络操作的一个请求,包装成RESTful API,并送给neutron server,这可以作为一个北向RESTful API; (2)neutron server将RESTful API给到ml2 plugin,并会将配置信息同步给 neutron database(注:由于ODL driver并不实现pre commit,只实现post commit,会出现openstack的数据库和ODL数据库的不一致性); (3)ml2 plugin调用RESTFul API给到ODL controller; (4)ODL接收到请求后,就会利用南向的plugins/网络协议(openFlow,OVSDB等)来对网络进行相应的操作。