简介:
neutron是openstack核心项目之一,提供云计算环境下的虚拟网络功能
OpenStack网络(neutron)管理OpenStack环境中所有虚拟网络基础设施(VNI),物理网络基础设施(PNI)的接入层。
网络结构:
Neutron网络结构图,管理员创建和管理Neutron外部网络,是租户虚拟机与互联网信息交互的桥梁。更具体的,外部网络会分出一个子网,它是一组在互联网上可寻址的IP地址。一般情况下,外部网络只有一个(neutron是支持多个外部网络的),且由管理员创建。租户虚拟机创建和管理租户网络,每个网络可以根据需要划分成多个子网。诸多子网通过路由器与Neutron外部网络(图中具体是子网A)连接。路由器的gateway网关端连接外部网络的子网,interfaces接口端有多个,连接租户网络的子网。路由器及interface接口端连接的网络都是由租户根据需要自助创建,管理者只创建和管理Neutron外部网络部分。
总结来看,创建一个Neutron网络的过程如下:
1 、首先管理员拿到一组可以在互联网上寻址的IP地址,并且创建一个外部网络和子网
2、 租户创建一个网络和子网
3、 租户创建一个路由器并且连接租户子网和外部网络
4、 租户创建虚拟机
网络类型:
整体网络分为:内部网络(管理网络,数据网络),外部网络(外部网络,API 网络)
1:管理网络---用于 OpenStack 各组件之间的内部通信。
2:数据网络---用于云部署中虚拟数据之间的通信。
3:外部网络---公共网络,外部或 internet 可以访问的网络。
4:API 网络---暴露所有的 OpenStack APIs,包括 OpenStack 网络 API 给租户们。
网络模式:
1:Flat模式---网桥模式,所有的都需要手工配置,属于平面网络,所以实例属于同一网络
2:Flat DHCP模式---网桥模式,在网关处单独取了一个DHCP的进程,可以辅助用户进行网络配置
3:VLAN模式---为每个不同的租户设置了不同的虚拟子网,在这个虚拟子网中,用户可以有自己的ip
详解:
1:Flat模式
1)指定一个子网,规定虚拟机能使用的ip范围,也就是一个ip池(分配ip不会超过这个范围,也就是配置里面的fixed_range,比如10.0.0.1/27,那么可用ip就有32 个);
2)创建实例时,从有效ip地址池接取一个IP,为虚拟机实例分配,然后在虚拟机启动时候注入虚拟机镜像(文件系统);
3)必须手动配置好网桥(br100),所有的系统实例都是和同一个网桥连接;网桥与连到网桥的实例组成一个虚拟网络,nova-network所在的节点作为默认网关。
比如flat_interface=eth1;eth1的ip为10.0.0.1,其它网络ip在10.0.0.1/27内。flat interface-->br100-->flat network
4)此后,网络控制器(nova-network节点)对虚拟机实例进行NAT转换,实现与外部的通信。
注意:目前好像配置注入只能够对Linux类型的操作系统实例正常工作,网络配置保存在/etc/network/interfaces文件。
2:Flat DHCP模式
与Flat模式一样,从ip池取出ip分配给虚拟机实例,所有的实例都在计算节点中和一个网桥相关。不过,在这个模式里,控制节点做了更多一些的配置,尝试和以太网设备(默认为eth0)建立网桥,
通过dhcp自动为实例分配flat网络的固定ip,可以回收释放ip。
1)网络控制器(运行nova-network服务的节点)运行dusmasq作为DHCP服务器监听这个网桥;
2)实例做一次dhcp discover操作,发送请求;
3)网络控制器把从一个指定的子网中获得的IP地址响应给虚拟机实例;
4)实例通过网络控制器与外部实现互相访问。
3:VLAN网络模式
OpenStack的默认网络管理模式,没有设置--network_manager=nova.network.manager.FlatDHCPManager或者FlatManager的时候默认为vlan。为了实现多台机器的安装,
VLAN网络模式需要一个支持VLAN标签(IEEE 802.1Q)的交换机(switch)。
在这个模式里,为每个项目创建了VLAN和网桥。所有属于某个项目的实例都会连接到同一个VLAN,必要的时候会创建Linux网桥和VLAN。
每个项目获得一些只能从VLAN内部访问的私有IP地址,即私网网段。每个项目拥有它自己的VLAN,Linux网桥还有子网。被网络管理员所指定的子网都会在需要的时候动态地分配给一个项目。
1)网络控制器上的DHCP服务器为所有的VLAN所启动,从被分配到项目的子网中获取IP地址并传输到虚拟机实例。
2)为了实现用户获得项目的实例,访问私网网段,需要创建一个特殊的VPN实例(代码名为cloudpipe,用了创建整数、key和访问实例)。
3)计算节点为用户生成了证明书和key,使得用户可以访问VPN,同时计算节点自动启动VPN。
4)访问。
3:Flat与vLAN的比较
在两种Flat模式里,网络控制器扮演默认网关的角色,实例都被分配了公共的IP地址(扁平式结构,都在一个桥接网络里)。
vLAN模式功能丰富,很适合提供给企业内部部署使用。但是,需要支持vLAN的switches来连接,而且相对比较复杂,在小范围实验中常采用FlatDHCP模式。