负责管理整个OpenStack当中的网络资源,为发放出来的虚拟机实例提供网络,可以作为SDN控制器,可以让本地的网络无缝迁移到SDN的场景中。
Neutron是一种虚拟网络服务,为Opensack计算提供网络连通和寻址服务。管理虚拟网络组建,为Openstack提供网络服务,遵循SDN,专注为Openstack提供网络即服务Naas,确保为其他Openstack服务提供网络连接即服务。Neutron核心是对二层物理网络的抽象化管理,服务服务器虚拟化后,物理网卡和物理服务器成为虚拟,最后虚拟机交换机通过服务服务器网卡访问外部的物理网络。
Neutron网络基本概念:
Netwrork:虚拟隔离的二层广播域,可以看成一个vSwitch,支持多种类型,如local,flat,vlan,GRE。
Subnet:子网,虚拟机的IP从子网中分配,每个子网需要定义IP地址的范围和掩码,必须与Network关联,DNS,网关,静态路由都是可选选项。
Port:端口,vSwitch的虚拟交换端口,上面定义了MAC地址和IP地址,虚机通过端口到network上面,端口可以分配IP地址和MAC地址给端口。
Router:路由,连接虚机同一网络或不同网络甚至外网之间的子网。
Fixed IP:固定IP,分配到每个端口上的IP,类似于NIC IP
Floating IP:浮动IP,是一种特殊IP,可以绑定虚机,底层会做NAT转发,用于外界访问此虚机,也可以通过此虚机访问外界。
Physical Network:物理网络,在物理网络环境中连接Openstack不同节点的网络,每个物理网络可以支持Neutron中的一个或多个网络,Openstack必须通过物理网络才能和真实网络通信。
Provider Network:自定义网络,由Openstack管理员创建,可直接对应数据中心物理网络的一个网段,通常使用Vlan或者Flat。
Self-service Network:自助服务网络,由租户创建完全虚拟的内部网络,如要和外部物理网络通信,需要通过Router。
External Network:外部网络,特殊的自定义网络,连接的物理网络与数据中心和internet相通,网络中的port可以访问外网。
Security Group:安全组是port上的一组策略,规定了虚拟机入口和出口流量的规则,可以说是虚机之间的防火墙,安全组默认拒绝所有流量,只有添加了放行规则的流量才允许通过。
Neutron架构:
Neutron架构是基于插件服务的,主要包含三大插件。
Neutron Server:
对外提供Openstack的网络API,调用Plugin插件处理请求,自由对接不同网络后端能力。
Plugin:
Core Plugin:提供基础的网络功能,使用不同的Drivers调用不同的底层网络实现技术。
Service Plugin:用于实现高阶网络服务,例如路由、负载均衡、防火墙和VPN服务
处理Neutron Server的请求,维护Openstack网络状态,调用Agent代理处理请求。支持不同厂商插件。
Agent:
处理Plugin插件的请求,调用底层虚拟或物理网络设备实现各种网络功能,向虚拟机提供二层三层的网络连接。负责在network provider上真正实现各种网络功能。
Queue:
Neutron Server、Plugin和Agent之间通过消息队列通信和调用。
- Database:
存放Openstack 的网络状态信息,包括Network、Subnet、Port、Router等。
Openstack中使用的网络虚拟化技术:
- 1、网卡虚拟化。
TAP设备,模拟二层网络,接收发送二层数据包,二层虚拟化
TUN设备,模拟三层网络,接收发送三层数据包,三层虚拟化
Veth-pair,虚拟以太网通道,成对出现的虚拟网络设备,数据从一端出,从一端进。用来连接不同的虚拟网络组件,用于虚机内部网络连通外部网络。
- 2、交换机虚拟化。
Linux bridge,工作在二层的网络设备,linux网桥,类似于物理交换机,是虚机连接到主机通信的设备,可以主机内部之间相互通信。
Open vSwitch,开放式虚拟交换机,和Linux网桥相同,只不过适用于大规模多主机场景之间互相通信。
- 3、Network Namespace
可以创建多个隔离的网络空间,类似于Vlan,有独自的网络配置信息,不同的隔离空间可以配置相同的网络信息,互不打扰。隔离广播,虚拟网卡子接口。
- 4、vxlan(虚拟扩展局域网)
二层网络在三层范围内扩展,数据中心大二层虚拟迁移,虚拟机迁移范围不受限制,三层中的二层网络,网络隔离标签从4096变成了1677万。Vxlan将管理员规划的同一区域内的虚机发出原始报文封装成新的UDP报文,使用物理网的IP和Mac地址作为外层头。
SDN:
软件定义网络,是网络虚拟化的一种实现方式,摆脱硬件对网络架构的限制,控制平面和数据平面分离。只需要在使用时定义好简单的网络规则,这样便可以像升级、安装软件一样对网络进行修改,以便更多的APP能够快速部署到网络上。SDN的本质是网络软件化,SDN将比原来网络架构更好、更快、更简单的实现各种功能特性。
简化网络,协议写进SDN,提升工作人员效率,易于统一快速部署;解决管理问题,存在于控制层,优化网络基础设施架构。是一套软件运行在PC上,运行在软件上面就是软SDN,硬件就是硬SDN,使用SDN
Controller来管理。
NFV:
网络功能虚拟化,将网络设备的功能与网络硬件解耦,不需要网络硬件,电信硬件设备从专用产品转为商业化产品,解决设备问题,存在于数据层,优化网络的功能,比如负载均衡、广域网优化控制器。业务快速上线,频繁迭代,紧跟市场变化。
部署:
控制节点:neutron-server、neutron-plugin、DB
计算节点:L2-agent(ovs-agent)
网络节点:L3-agent(为虚拟机访问外部网络提供3层转发服务)、DHCP-agent
网络平面:
Internal_base:内部通信平面,二层网络,没有网关,没有Tag,主要用于内部组件通信,PXE安装所用节点
External_OM:内部运维组件使用,如OM、VRM、FSM等
External_api:外部api管理平面,北向服务同一入口,主要面向租户、管理员、通过反向代理对外提供API访问接口(北向接口:提供给其他厂家或运营商进行接入和管理的接口,即向上提供的接口。)(南向接口:管理其他厂家网管或设备的接口,即向下提供的接口。)
External_base:用于对接FC,neutron-server与CNA上的ovs-agent,非必要,可由OM平面替代
Tunnel_bearing:VXLAN承载平面
存储平面:
Storage_data0、1:存储网络平面,连接计算节点与存储
云服务平面:
Dmz_service:云服务前端平面,以Console等方式,对外提供服务
Public_service:公共服务平面,云服务后端
运维平面:
BMC_base:接入服务器BMC界面,对服务器远程管理
OM_service:运维平面,私有云中所有节点设备(服务器、网络)通过该平面对接运维平台(eSight、iMaster-NCE)等
22 23 26 27需要三层
虚拟机网络创建:
nova-compute向neutron-server发送建立port请求
neutron-server向keystone鉴权
鉴权成功,建立端口信息(Pid、Mac等),存入DB,并将Pid、Mac等信息返回nova-compute
nova-compute生成虚拟机并启动,建立与OVS的连接
ovs-agent将ovs端口变化信息(新启动的port)上报给plugin
plugin根据Pid从DB中找到相应的网络信息,根据信息下发配置