OpenStack newton版安装教程(4)——Neutron部分
Neutron涉及到了网络配置,是OpenStack平台中最复杂的一个组件,配置文件最多。Neutron本身支持多种plugin,每种plugin又有多种agent可以使用,而每一种agent的配置方式又有差别,所以这也是Neutron较为复杂的原因。目前最常用的plugin是Linux bridge,而最常用的agent是ML2 agent(Module Layer2,也可以叫做L2 agent,第二层网络协议),剩下还有DHCP-agent、L3-agent(不同网络下要互相通信就需要这个agent)、LBAAS-agent(负载均衡)等。
我们从最常用的ML2开始进行,这种网络插件中默认使用的是Linux bridge机制(该机制支持local、flat、vlan、vxlan四种网络类型)来进行网络分配,使用最广泛的是vlan和vxlan两种网络类型(vlan的作用相当于让一组LAN划分出了多组LAN,实现了隔离,而vxlan相比vlan支持更多的网段,适合大规模部署,而且可以通过Layer3网络传输封装后的Layer2数据):
一、Neutron控制节点的安装与配置
1、为Neutron创建数据库以及授权
CREATE DATABASE neutron; GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' IDENTIFIED BY 'NEUTRON_DBPASS'; GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' IDENTIFIED BY 'NEUTRON_DBPASS';
2、老规矩,获取环境变量
. admin-openrc
3、在OpenStack中创建Neutron用户以及设置角色权限
openstack user create --domain default --password-prompt neutron openstack role add --project service --user neutron admin
4、创建Neutron服务和endpoint信息,完成keystone中的注册,这里也可以看到Neutron的端口是9696
openstack service create --name neutron --description "OpenStack Networking" network openstack endpoint create --region RegionOne network public http://controller:9696 openstack endpoint create --region RegionOne network internal http://controller:9696 openstack endpoint create --region RegionOne network admin http://controller:9696
5、官方文档中进行到这步时分为了提供者网络和自服务网络两种配置方式,本文选择提供者网络配置(提供者网络中一台虚拟机就是一个单独的网络,没有内部网络可用,而自服务网络支持让多个虚拟机构成一个内部网络),然后安装Neutron相关软件包
yum install openstack-neutron openstack-neutron-ml2 openstack-neutron-linuxbridge ebtables
6、修改主配置文件/etc/neutron/neutron.conf,确保内容如下:
[database] connection = mysql+pymysql://neutron:NEUTRON_DBPASS@controller/neutron [DEFAULT] transport_url = rabbit://openstack:RABBIT_PASS@controller_ip core_plugin = ml2 #启用ML2插件并禁用其他插件 service_plugins = #留空 rpc_backend = rabbit auth_strategy = keystone notify_nova_on_port_status_changes = True #配置网络服务来通知计算节点的网络拓扑变化: notify_nova_on_port_data_changes = True [oslo_messaging_rabbit] rabbit_host = controller_ip rabbit_userid = openstack rabbit_password = RABBIT_PASS [keystone_authtoken] auth_uri = http://controller:5000 auth_url = http://controller:35357 memcached_servers = controller:11211 auth_type = password project_domain_name = default user_domain_name = default project_name = service username = neutron password = NEUTRON_PASS [nova] auth_url = http://controller:35357 auth_type = password project_domain_name = default user_domain_name = default region_name = RegionOne project_name = service username = nova password = NOVA_PASS [oslo_concurrency] lock_path = /var/lib/neutron/tmp
7、配置网络驱动类型,修改ml2配置文件/etc/neutron/plugins/ml2/ml2_conf.ini,确保内容如下:
[ml2] type_drivers = flat,vlan #启用flat和vlan网络驱动类型,还有vxlan,local等网络驱动类型在这里没有使用 tenant_network_types = #设置租户网络,这里留空,禁用私有网络 mechanism_drivers = linuxbridge #启用linux bridge机制 extension_drivers = port_security #启用扩展端口安全驱动 [ml2_type_flat] flat_networks = provider #配置neutron网络,这里是什么名字创建的网络就是什么名字 [securitygroup] enable_ipset = True
8、配置Linux bridge,修改配置文件/etc/neutron/plugins/ml2/linuxbridge_agent.ini,确保内容如下:
[linux_bridge] physical_interface_mappings = provider:INTERFACE_NAME #将上面配置的虚拟网络provider和哪张网卡绑定 [vxlan] enable_vxlan = False #禁止vxlan覆盖网络 [securitygroup] enable_security_group = True firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
9、配置DHCP代理,修改配置文件/etc/neutron/dhcp_agent.ini,确保内容如下:
[DEFAULT] interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver #网卡接口驱动类型,实现外部网络与云主机的互通 dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq #指定DCHP驱动类型为dnsmasq enable_isolated_metadata =True
10、配置元数据代理,修改配置文件/etc/neutron/metadat_agent.ini,确保内容如下:
[DEFAULT] nova_metadata_host = CONTROLLER_IP metatada_proxy_shared_secret = METADATA_SECRET #在这行自定义一个密码
11、配置nova使用neutron提供的网络服务,修改/etc/nova/nova.conf(也就是说nova配置了neutron的内容,neutron也配置了nova的内容),确保内容如下:
[neutron] url = http://controller_ip:9696 auth_url = http://controller_ip:35357 auth_type = password project_domain_name = default user_domain_name = default region_name = RegionOne project_name = service username = neutron password = NEUTRON_PASS service_metadata_proxy = True metadata_proxy_shared_secret = METADATA_SECRET #metadat_agent.ini也配置了这个自定义密码,需要一致
12、服务启动时要找的配置文件是,所以需要做一个软连接
ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini
13、初始化数据库
su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head" neutron
14、重启nova api服务,因为11步修改过配置文件还记得吗
systemctl restart openstack-nova-api.service
15、启动neutron服务并设置开机自启
systemctl enable neutron-server.service neutron-linuxbridge-agent.service neutron-dhcp-agent.service neutron-metadata-agent.service systemctl start neutron-server.service neutron-linuxbridge-agent.service neutron-dhcp-agent.service neutron-metadata-agent.service
16、验证neutron服务,执行命令后看到DHCP agent、Linux bridge、Metadata三个agent的alive状态是:-)笑脸符号代表服务正常,如果异常的话到/var/log/neutron目录查看日志
neutron agent list
二、Neutron计算节点的安装与配置
1、把Neutron的计算节点和Nova的计算节点安装在一个机器上
yum install openstack-neutron-linuxbridge ebtables ipset -y
2、修改neutron主配置文件/etc/neutron/neutron.conf,确保内容如下:
[database] #connection = mysql+pymysql://neutron:NEUTRON_DBPASS@controller/neutron #注释掉,计算节点不直接访问数据库 [DEFAULT] rpc_backend = rabbit #配置 “RabbitMQ” 消息队列的连接 auth_strategy = keystone #配置认证服务访问 [oslo_messaging_rabbit] rabbit_host = CONTROLLER_IP #配置 “RabbitMQ” 消息队列的连接 rabbit_userid = openstack rabbit_password = RABBIT_PASS [keystone_authtoken] #配置认证服务访问 auth_uri = http://CONTROLLER_IP:5000 auth_url = http://CONTROLLER_IP:35357 memcached_servers = CONTROLLER_IP:11211 auth_type = password project_domain_name = default user_domain_name = default project_name = service username = neutron password = NEUTRON_PASS [oslo_concurrency] lock_path = /var/lib/neutron/tmp
3、配置提供者网络选项(因为控制节点上也使用的是提供者网络),也就是配置Linux bridge代理,编辑/etc/neutron/plugins/ml2/linuxbridge_agent.ini,确保内容如下:
#直接复制控制节点的配置文件即可,内容是完全一样的
4、为计算节点上的nova配置好neutron网络服务,修改/etc/nova/nova.conf(也就是说nova配置了neutron的内容,neutron也配置了nova的内容),确保内容如下:
[neutron] url = http://CONTROLLER_IP:9696 auth_url = http://CONTROLLER_IP:35357 auth_type = password project_domain_name = default user_domain_name = default region_name = RegionOne project_name = service username = neutron password = NEUTRON_PASS
5、重启nova服务
systemctl restart openstack-nova-compute.service
6、启动Linux bridge代理服务并设置开机自启
systemctl enable neutron-linuxbridge-agent.service systemctl start neutron-linuxbridge-agent.service
至此,Neutron控制节点和计算节点的安装都完成了,下一步就是创建虚拟机了
评论