《OpenStack高可用集群(上册):原理与架构》—2.2.5 网络服务Neutron
2.2.5 网络服务Neutron
Neutron是OpenStack云平台中的网络服务,Neutron的起源是Nova项目中的Nova-network服务,在OpenStack的Folsom版本中,Nova-network被分离出来并成为了独立的网络服务项目Quantum,由于商标冲突的原因Quantum在Havana版本中被改名为现在的Neutron,因此,在不同版本的OpenStack部署架构中,网络服务组件可能会以Nova-network、Quantum和Neutron的名称出现,而它们都指代OpenStack的网络服务。Neutron在OpenStack中提供网络即服务(Network as a Service,NaaS),其主要功能包括:提供面向租户的API接口,用于创建虚拟网络、路由器、负载均衡等,关联虚拟机实例到指定的网络和路由;通过API接口管理虚拟或物理交换机;提供Plugin架构来支持不同的网络技术平台;提供固定私网地址(Fixed IP)和公网浮动IP地址(Floating IP)。Neutron向用户提供了网络自助服务的功能,用户可以按需对网络进行定义、隔离、加入网络等操作,同时Neutron还提供了多种灵活的网络模式以适应不同用户的网络环境。
同早期的Nova-network服务相比,Neutron具有更加丰富的网络功能,Nova-network只提供了一组静态的网络拓扑,其支持的网络模型主要是Flat、FlatDHCP、VLAN三种,并且Nova-network所提供的高级服务也只有CloudPipe(VPNaaS)一种,而Neutron具有更丰富的网络拓扑结构和多层网络功能,同时Neutron还支持VxLAN和GRE等网络模型,其丰富的插件功能使得Neutron在网络设备商中得到普遍支持,Neutron提供的高级功能除了VPNaaS,还有LBaaS、FWaaS等,因此,尽管目前还有很多用户在使用Nova-network,但是OpenStack社区已不再支持Nova-network的更新发展,在接下来的版本中,Nova-network即将被抛弃。
在Neutron的功能组件中,最重要的两个组件就是Neutron-Server和插件。Neutron-Server中包含守护进程Neutron-server和各种网络插件(以Neutron-xxx-plugin命名),Neutron-Server既可以安装在控制节点也可以安装在网络节点,Neutron-server提供网络访问的API接口,并把对API的调用请求转给已经配置好的Plugin进行后续处理,而插件需要访问数据库来维护各种虚拟网络设备的配置数据和对应关系,如路由器、网络、子网、端口、浮动IP、安全组等与网络相关的数据。在Neutron中,最常见的两个Agent分别是DHCP-Agent和L3-Agent,DHCP-Agent主要负责向各个租户网络提供IP地址,L3-Agent主要负责租户网络与外部网络的通信转发,图2-13为Neutron服务的内部组件交互架构图。
Neutron API和插件构成了Neutron-Server,Neutron通过插件(Plugin)和插件代理(Plugin Agent)的组合来实现Neutron API转发来的网络服务请求,通常Neutron API和Plugin部署在网络节点或者控制节点上以接收和转发用户网络服务请求,而对应的Plugin Agent则主要部署到计算节点上以响应和实现用户的网络服务请求,Neutron的内部功能实现如图2-14所示。
图2-13 Neutron组件交互架构图
图2-14 Neutron功能实现架构图
通过以插件的形式来实现逻辑API的请求,使得各种不同的网络技术在OpenStack中都可以兼容使用,这对于希望避免厂商锁定和技术自主可控的用户而言,提供了极大的可选择空间,到Mitaka版本为止,Neutron支持的插件如下:
Open vSwitch Plugin。
Cisco UCS/Nexus Plugin。
Cisco Nexus1000v Plugin。
Linux Bridge Plugin。
Modular Layer 2 Plugin。
Nicira Network Virtualization Platform (NVP) Plugin。
Ryu OpenFlow Controller Plugin。
NEC OpenFlow Plugin。
Big Switch Controller Plugin。
Cloudbase Hyper-V Plugin。
MidoNet Plugin。
Brocade Neutron Plugin Brocade Neutron Plugin。
PLUMgrid Plugin。
Mellanox Neutron Plugin Mellanox Neutron Plugin。
Embrane Neutron Plugin。
IBM SDN-VE Plugin。
CPLANE NETWORKS CPLANE NETWORKS。
Nuage Networks Plugin。
OpenContrail OpenContrail Plugin。
Lenovo Networking Lenovo Networking Plugin。
就普通用户而言,使用最多的还是Modular Layer2 Plugin(ML2)、Open vSwitch Plugin(OVS)和Linux Bridge Plugin,其他与具体厂商相关的网络插件功能及其使用方法,可以参考OpenStack官网提供的插件介绍(https://wiki.OpenStack.org/wiki/Neutron)。
- 点赞
- 收藏
- 关注作者
评论(0)