首页 » OpenStack系统架构设计实战 » OpenStack系统架构设计实战全文在线阅读

《OpenStack系统架构设计实战》4.3 Neutron的架构

关灯直达底部

网络服务模块Neutron(见图4-3)提供开放接口(API),允许用户定义云中的网络连接和地址。网络服务使运营商能够利用不同的网络技术来增强它们的云网络。网络服务也提供了一套API来配置和管理各种网络服务,如L3转发、NAT转换、负载平衡、边缘防火墙、IPsec VPN等。

图4-3 Neutron分层架构

OpenStack网络允许用户创建和管理网络对象,如网络(Net)、子网(Subnet)和端口(Port),这些对象可以被其他OpenStack服务所利用。插件架构模式增强了OpenStack架构和部署的柔韧性,可以适应不同的网络设备和软件。

Neutron包括以下几个组件。

1.Neutron服务器

这一部分包含守护进程neutron-server和各种插件neutron-*-plugin,它们既可以安装在控制节点上也可以安装在网络节点上。Neutron-server提供API接口,并把对API的调用请求传给已经配置好的插件以进行后续处理。Neutron API支持二层组网和IP地址管理(IPAM),也支持三层路由器的创建、实现二层网络与外部网关的互联互通。Neutron包含越来越多的插件,从而提升Neutron与各种商业或者开源网络技术的互操作性,包括路由器、交换机、虚拟交换机以及软件定义网络控制器(SDN控制器)。

2.OpenStack网络插件和代理

插件需要访问数据库来维护各种配置数据和对应关系,例如路由器、网络、子网、端口、浮动IP、安全组等,如端口插拔、创建网络或者子网,以及提供IP地址。不同的提供商以及所采用的技术决定了插件及其代理的差异性,比如思科的虚拟交换机和物理交换机,NEC公司的Openflow交换机产品,Open vSwitch、Linux桥接,以及VMware NSX产品等。

公共的代理还包括L3(路由器),DHCP(动态配置服务)等。

特别注意,多种插件不能同时使用,一次仅能用一个插件。

3.消息队列

消息队列主要用于接收或者路由RPC消息,RPC消息在代理和API操作之间传递。ML2插件中也使用消息队列,用于传递Neutron服务器和各个HyperVisor上的Neutron代理之间的RPC消息。

4.数据库

几乎所有组件都需要用数据库来维护一个持续的网络模型,因此,数据库的语法是由已配置的核心插件和服务插件来定义的。