文章目录
前言:
Neutron是OpenStack核心组件之一,本篇博客对Neutron组件的进行简单分解介绍。
一、Neutron基本概念
1.1 Neutron概述
-
Neutron的设计是为了实现网络及服务。为了实现这个目标,设计上遵循了基于SDN实现网络虚拟化的原则,在实现上充分利用了Linux系统上的各种网络相关技术
-
SDN 模式服务— NeutronSDN( 软件定义网络 ), 通过使用它,网络管理员和云计算操作员可以通过程序来动态定义虚拟网络设备。Openstack 网络中的 SDN 组件就是 Quantum.但因为版权问题而改名为Neutron
-
Neutron已经实现的网络机制有3种类型
基于代理(Agent-based):包括 Linux Bridge,Open vSwith
基于控制器(controller-based):包括OpenStacDaylight,VMWaver NSX 等
基于物理交换的:包括 Cisco Nexus,Arista,Mellanox等
-
Neutron架构框架:
1.2 Neutron基本功能
-
主要功能
为了整个openstack环境提供网络支持,包括二层交换(ML2插件),三层路由(L3代理),负载均衡,防火墙和VPN(隧道技术)等
-
二层交换
nova的实例是通过虚拟交换机连接到虚拟二层网络的
neutron支持多种虚拟交换机,包括
- linux bridge
- open vswitch
-
三层路由
实例上可以配置不通网段的IP,neutron的虚拟路由器实现实例跨网段通信
同时可以让内网实例通过配置NAT的方式访问外网
-
负载均衡 load balancing
支持多种负载均衡产品和档案,不同的实现以Plugin(插件)的形式集成到neutron
-
防火墙
-
securityy group (安全组)
通过iptables限制进出实例的网络包
-
虚拟防火墙FWaas
限制进出虚拟路由的网络包,也是通过iptables实现
-
1.2 SDN优点
- openstack的SDN组件架构属于可插拔类型,通过各种插件可以管控不通种类的交换机、路由器、防火墙、负载均衡并实现虚拟防火墙等多种功能,通过软件来定义的网络,可以对云计算实施进行更为精细的掌控
二、基础服务
2.1 network 网络
-
类似于实际的物理环境中的网络,OpenStack网络用于连接云主机或路由器。除此之外,还包含子网、网关以及DHCP服务等。OpenStack网络分为内部网络和外部网络,内部网络一般用于连接虚拟机,而外部网络一般用于连接宿主机外面的网络
-
Openstack网络
-
内部网络
一般用于连接虚拟机
-
外部网络
一般用于连接宿主机外的网络
-
2.2 subnet 子网
- OpenStack中的子网是一个IP地址段,用于定义实际的IP地址范围
2.3 router 路由器
- 路由器用于连接 OpenStack的内部网络和外部网络。类似实际路由器功能,支NAT功能,通过绑定浮动IP地址还可以实现地址映射
2.4 port 端口
- 端口类似于实际网络中的网络接口,用于连接终端设备或另外一个网络。不同的是, OpenStack中端口连接的一般都是虚拟设备接口,如虚拟机的虚拟网卡或者路由器的虚拟接口等。端口还描述了相关的网络配置,例如可以在端口上配置MAC地址和IP地址
2.5 plugin 插件
- 处理网络服务发来的请求,维护openstack逻辑网络状态,并调用相应代理进行处理
2.6 agent 代理
- 处理插件的请求,负责在网络提供者上真正实现各种网络功能
2.7 provider 网络提供者
- 提供网络服务的虚拟或物理网络设备,如linux bridge,open vswitch或其他支持neutron的物理交换机
三、Neutron-server 架构
3.1 分层模型
-
Neutron 架构
-
Neutron-server服务介绍
neutron-server是 neutron的主服务进程,它运行在网络控制节点,提供restfulapi作为访问neutron 的入口,neutron-server接收到用户的http请求最终遍布于计算节点和网络节点的各种agen来完成 主要代码 /neutron/server neutron也是采用分布式架构,由多个组件(子服务共同对外提供网络服务)
-
Neutron api (resetful API)
-
① neutron将基于各种虚拟网络资源的得到的API资源分成核心资源core api和扩展资源extension api两种
Core api :对应于L2层的网络、子接口和subnetpool资源池(openstack k版加入的特性)四种抽象资源等
Extension api :提供给网络管理路由器、负载均衡、防火墙、安全组等扩展资源
-
② 直接对接客户端API服务,属于最前端的API,包括核心api和扩展api两种,核心api提供管理网络,子网和端口核心资源的resetful API;扩展 api提供网络管理路由器、负载均衡、防火墙、安全组等扩展资源的resetful api
-
-
Common serveice
通用服务,负责对API请求进行检验、认证并授权
-
Neutron core
核心处理程序,调用相应的插件API来处理API的请求
-
Plugin API
定义插件的抽象功能集合,提供调用通用插件的API接口,包括核心插件api和扩展插件API两种,网络核心(server core)通过核心插件API调用相应的核心插件,通过扩展插件API调用相应的服务插件
3.2 架构分析
3.2.1 Neutron-plugin
-
Neutron-plugin(网络插件)是Neutron的一中API的后端实现,目的是增强扩展性。插件按照功能可分为两种类型。
Core Plugin:提供基础二层虚拟机网络支持,实现网络,子网和端口核心资源支持。
Service Plugin:是Core Plugin之外的其他插件,提供路由器,防火墙,安全组,负载均衡等服务支持,值得一提的是,知道Openstack的Havana版本,Neutron才开始提供一个名为L3 Router Service Pluginde 插件支持路由服务。
-
Ne