neutron理解总结 neutron基于的技术

267 阅读2分钟

​​本文已参与「新人创作礼」活动,一起开启掘金创作之路。

 以下内容为网络内容整理,如有侵权部分,通知删除:

Linux环境下网络设备的虚拟化主要有以下几种形式,Neutron也是基于这些技术来完成项目私有虚拟网络network的构建。
(1) TAP/TUN
TAP/TUN是 Linux内核实现的一对虚拟网络设备, TAP工作在二层,TUN工作在三层,Linux内核通过TAP/TUN设备向绑定该设备的用户空间程序发送数据,反之,用户空间程序也可以像操作硬件网络设备那样,通 过 TAP/TUN设备发送数据。

(2) Linux Bridge/VLAN
Linux Bridge (网桥)是工作于二层的虚拟网络设备,功能类似于物理的交换机。
(3) Open vSwitch
Open vSwitch 是一个具有产品级质量的虚拟交换机,它使用C语言进行开发 。可以区分被桥接的物理网卡上流淌的数据包属于哪个VM 、哪 个 OS 及哪个用户。接入到OpenvSwitch上的各个 VM分配到不同的VLAN中实现网络的隔离。
实现了分布式的虚拟交换机( Distributed Virtual Switch),一个物理Server上的vSwtch可以透明地与另一Server上的vSwitch连接在一起,

​编辑

Neutron Server
对外提供OpenStack网络API,接收请求,并调用Plugin处理请求。

Plugin agent
处理Neutron Server发来的请求,维护OpenStack逻辑网络的状态,并调用Agent处理请求。

Database
存放OpenStack的网络状态信息,包括Network,Subnet,Port,Router等。

Queue
Neutron Server Plugin和Agent之间通过Messaging Queue通信和调用。

metadata-agent

instance在启动时需要访问nova-metadata-api服务获取metadata和userdata,比如hostname,ip,public key等。该agent让instance能够通过dhcp-agent或者l3-agent与nova-metadata-api通信。

Plugin agent

Ml2 agent默认安装组件。最常用的是linux bridage和open vswitch。

Dhcp agent

通过dnsmasq为instance提供dhcp服务。

L3 agent

l3 agent可以为project(租户)创建router,提供Neutron subnet之间的路由服务。路由功能默认通过 IPtables 实现。

neutron agent服务:

(1)plug-in agent(neutron-*-agent)

插件代理,需要部署在每一个运行hypervisor的主机上,它提供本地的vSwitch配置,更多的时候得依赖你具体所使用的插件类型。(常用的插件是OpenvSwitch,还包括Big Switch,Floodinght REST Proxy,Brocade, NSX, PLUMgrid, Ryu)

(2)dhcp agent(neutron-dhcp-agent)

DHCP代理,给租户网络提供动态主机配置服务,主要用途是为租户网络内的虚拟机动态地分配IP地址。

(3)l3 agent(neutron-l3-agent)

L3代理,提供三层网络功能和网络地址转换(NAT)功能,来让租户的虚拟机可以与外部网络通信。

(4)metering agent(neutron-metering-agent)

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