neutron整体架构 neutron组件的agent类型_neutron整体架构

 

一般agent的模块主要由Neutron api、core plugin(如linux bridge plugin,ovs plugin等)、XX agent scheduler、XX agent、XX driver(dnsmasq)构成.

在控制节点敲命令neutron agent-list, 可以查看到所有的agent

1.neutron-l3-agent,neutron-vpn-agent

  跑在网络节点,负责处理三层事物例如路由等,两者相互冲突,只需要开一个进程

  neutron-l3-agent代码就和neutron-server在一个包里,不需要额外下载

  neutron-vpn-agent需要下载额外的代码yum install openstack-neutron-vpnaas, 并且还要安装openswan等ipsec代码包

 

2.neutron-openvswitch-agent

 跑在所有openstack节点,负责和openvswitch的交互处理二层事物。连通控制节点、网络节点和计算机点等。

 代码:neutron.plugins.openvswitch.agent.ovs_neutron_agent:main

 

3.neutron-lbaas-agent

 跑在网络节点,处理loadbanlance相关事物

 

4.neutron-fwaas-service, 确切的说该服务不能算是agent, 没有自己的进程,跑在vpn-agent里

  需要在控制节点和网络节点安装额外的代码包 yum install openstack-neutron-fwaas

 

5.neutron-metadata-agent

运行在网络节点,处理主机中cloud-init发出的metadata请求,neutron-metadata-agent会把这些请求从qrouter-xxx命名空间进程带起来的的neutron-ns-metadata-proxy程序或者qdhcp-xxx命名空间带起的neutron-ns-metadata-proxy进程转送到nova-api中包含的metadata-server.

详见另一边文章http://niusmallnan.github.io/_build/html/_templates/openstack/metadata_server.html

 

6.neutron-metering-agent

计量代理,为租户网络提供三层网络流量数据计量服务。

 

7.neutron-dhcp-agent

 跑在网络节点,为租户网络提供3层的DHCP服务,即IP地址动态分配,另外还会提供metadata请求服务。

 neutron-dhcp-agent的入口为neutron.agent.dhcp_agent:main,跟l3-agent的启动方式是类似的,都是以Service启动;Manager类为DhcpAgentWithStateReport,汇报DHCPAgent的状态。