Openstack 网络服务Neutron [五]
标签(空格分隔): openstack
时间:2016年11月28日
博客地址:
www.abcdocker.com
公众号:
abcdocker
Neutron介绍
neutron是openstack重要组件之一,在以前是时候没有neutron
项目
早期的时候是没有neutron,早期所使用的网络的nova-network,经过版本改变才有个neutron
Openstack Networking
网络:
在实际的物理环境下,我们使用交换机或者集线器把多个计算机连接起来形成了网络。在Neutron的世界里,网络也是将多个不同的云主机连接起来。
子网:
在实际的物理环境下,在一个网络中。我们可以将网络划分成多为逻辑子网。在Neutron的世界里,子网也是隶属于网络下的。
端口:
是实际的物理环境下,每个子网或者网络,都有很多的端口,比如交换机端口来供计算机连接。在Neutron的世界端口也是隶属于子网下,云主机的网卡会对应到一个端口上。
路由器:
在实际的网络环境下,不同网络或者不同逻辑子网之间如果需要进行通信,需要通过路由器进行路由。在Neutron的实际里路由也是这个作用。用来连接不同的网络或者子网。
Neutron 架构介绍
Neutron也分为控制节点
和计算节点
openstack默认的网络是单一扁平网络(虚拟机跟宿主机在同一个网段)在官方文档上称为提供者网络
安装
数据库我们在一开始就已经创建完成
keystone用户我们也已经创建完成
配置网络选项
您可以部署网络服务使用选项1和选项2两种架构中的一种来部署网络服务。
选项1采用尽可能简单的架构进行部署,只支持实例连接到公有网络(外部网络)。没有私有网络(个人网络),路由器以及浮动IP地址。只有admin
或者其他特权用户才可以管理公有网络
选项2在选项1的基础上多了layer-3服务,支持实例连接到私有网络。demo
或者其他没有特权的用户可以管理自己的私有网络,包含连接公网和私网的路由器。另外,浮动IP地址可以让实例使用私有网络连接到外部网络,例如互联网
典型的私有网络一般使用覆盖网络。覆盖网络,例如VXLAN包含了额外的数据头,这些数据头增加了开销,减少了有效内容和用户数据的可用空间。在不了解虚拟网络架构的情况下,实例尝试用以太网 最大传输单元 (MTU) 1500字节发送数据包。网络服务会自动给实例提供正确的MTU的值通过DHCP的方式。但是,一些云镜像并没有使用DHCP或者忽视了DHCP MTU选项,要求使用元数据或者脚本来进行配置
我们先进行配置公共网络
在控制节点
安装组件
[root@linux-node1 ~]#yum install openstack-neutron openstack-neutron-ml2 \
openstack-neutron-linuxbridge ebtables
提示:neutron
和其他组件的小区别是配置完数据库之后不可以马上进行同步,它还依赖其他配置文件
编辑/etc/neutron/neutron.conf
文件并完成如下操作
在[database]配置数据库访问
[root@linux-node1 ~]# vim /etc/neutron/neutron.conf
684 connection = mysql+pymysql://neutron:neutron@192.168.56.11/neutron
提示:不需要同步数据库,684为684行
在 [DEFAULT]
和 [keystone_authtoken]
部分,配置认证服务访问
[DEFAULT]
auth_strategy = keystone
[keystone_authtoken]
auth_uri = http://192.168.56.11:5000
auth_url = http://192.168.56.11:35357
memcached_servers = 192.168.56.11:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = neutron
password = neutron
rabbitmq
(消息队列)配置
rpc_backend = rabbit
rabbit_host = 192.168.56.11
rabbit_userid = openstack
rabbit_password = openstack
neutron
核心配置有2
个
启动ML2
插件并禁用其他插件
[DEFAULT]
…
core_plugin = m12
service_plugins =
提示:service_plugins等号后面什么都不写就是禁用其他插件
配置网络服务来通知计算节点的网络拓扑变化:(配置nova
相关)
[DEFAULT]
…
notify_nova_on_port_status_changes = true
notify_nova_on_port_data_changes = true
提示:简单的来说就是端口发生变化通知nova
[nova]
nova标签的配置其实就是keystone的配置
auth_url = http://192.168.56.11:35357
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = nova
password = nova
配置锁路径
[oslo_concurrency]
lock_path = /var/lib/neutron/tmp
neutron配置小结:
[root@linux-node1 ~]# grep '^[a-z]' /etc/neutron/neutron.conf
auth_strategy = keystone #使用keystone进行验证
core_plugin = ml2 #使用ml2插件
service_plugins =