实验目标
OpenStack Networking(neutron),允许创建、插入接口设备,这些设备由其它的OpenStack服务管理。插件式的实现可以容纳不同的网络设备和软件,为OpenStack架构与部署提供了灵活性。
它包含下列组件:
neutron-server:接收和路由API请求到合适的网络插件,达到预想的目的。
OpenStack网络插件和代理:插拔端口,创建网络和子网,以及提供IP地址,这些插件和代理依赖于供应商和技术而不同,OpenStack网络基于插件和代理为Cisco 虚拟和物理交换机、NEC OpenFlow产品,Open vSwitch,Linux bridging以及VMware NSX 产品穿线搭桥。
常见的代理L3(3层),DHCP(动态主机IP地址),以及插件代理。消息队列大多数的OpenStack Networking安装都会用到,用于在neutron-server和各种各样的代理进程间路由信息。也为某些特定的插件扮演数据库的角色,以存储网络状态。OpenStack网络主要和OpenStack计算交互,以提供网络连接到它的实例。
熟悉在控制节点和计算节点安装配置Neutron服务。
在控制节点和计算节点添加网卡
1、实现要求
在控制节点和计算节点分别添加一个网卡,模式为桥接
2、实现过程
控制节点:在虚拟机VM里添加一个网卡,如图所示:
查看当前网卡信息:
# nmcli con show
ens33是NAT模式的网卡,ens36即为新添加的网卡,记住UUID然后查看新网卡的MAC地址:
# ip addr
记住MAC地址
到/etc/sysconfig/network-scripts/目录下,复制一个ifcfg-ens33 为 ifcfg-ens36,修改为如下:
HWADDR="0:0c:29:8d:b8:d2"
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens36"
UUID="a7d8c9ea-3c01-3bf4-9055-060150750251"
DEVICE="ens36"
ONBOOT="yes"
红色框出来的部分换成自己的即可(ens36是新添加的网卡名称,每个机器可能不一样)
然后重新启动网络服务
# service network restart
使用ifconfig查看一下网卡,如果能看到ens36就成功
如果失败的话,执行以下命令,重新启动网络管理即可
# systemctl stop NetworkManager
# systemctl restart network
然后再用ifconfig查看一下,如图所示,能看到两个网卡即可
最后把网络管理启动。
# systemctl start NetworkManager
计算节点同样按照此方法添加网卡,过程略。
控制节点创建数据库、凭证和API endpoint
1、实现要求
在控制节点创建数据库、服务凭证和API endpoint
2、实现过程
登录数据库
# mysql –uroot –p
创建数据库neutron,用户neutron并授权(密码为123456)
MariaDB > CREATE DATABASE neutron;
MariaDB > GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' IDENTIFIED BY '123456';
MariaDB > GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' IDENTIFIED BY '123456';
MariaDB > GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'controller' IDENTIFIED BY '123456';
完成以后重启数据库
# systemctl restart mariadb
创建凭证和API endpoint
获得admin凭证
# . admin-openrc
创建neutron用户,会提示输入密码(我这里是123456)
# openstack user create --domain default --password-prompt neutron
添加admin 角色到neutron 用户,没有输出
# openstack role add --project service --user neutron admin
创建neutron服务实体
# openstack service create --name neutron --description "OpenStack Networking" network
创建网络服务API endpoint
# 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
控制节点安装Neutron服务并配置
1、实现要求
在控制节点安装Neutron服务并配置
2、实现过程
安装服务
# yum install openstack-neutron openstack-neutron-ml2 openstack-neutron-linuxbridge ebtables -y
进入/etc/neutron/目录,备份neutron.conf文件 neutron.conf.bak
# cd /etc/neutron/
# cp neutron.conf neutron.conf.bak
修改neutron.conf如下: vi neutron.conf
[database]
connection = mysql+pymysql://neutron:123456@controller/neutron
[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 = 123456
[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 = 123456
[oslo_concurrency]
lock_path = /var/lib/neutron/tmp
[DEFAULT]
core_plugin = ml2
service_plugins =
transport_url = rabbit://openstack:123456@controller
auth_strategy = keystone
notify_nova_on_port_status_changes = true
notify_nova_on_port_data_changes = true
进入/etc/neutron/plugins/ml2/目录,备份ml2_conf.ini文件ml2_conf.ini.bak
# cd /etc/neutron/plugins/ml2/
# cp ml2_conf.ini ml2_conf.ini.bak
修改ml2_conf.ini,如下: vi ml2_conf.ini
[ml2]
type_drivers = flat,vlan
tenant_network_types =
mechanism_drivers = linuxbridge
extension_drivers = port_security
[ml2_type_flat]
flat_networks = provider
[securitygroup]
enable_ipset = true
进入/etc/neutron/plugins/ml2/目录,备份linuxbridge_agent.ini文件
# cd /etc/neutron/plugins/ml2/
# cp linuxbridge_agent.ini linuxbridge_agent.ini.bak
修改linuxbridge_agent.ini,如下:vi linuxbridge_agent.ini(provider:ens36 这里的ens36是新添加的网卡名称)
[linux_bridge]
physical_interface_mappings = provider:ens36
[vxlan]
enable_vxlan = false
[securitygroup]
enable_security_group = true
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
进入/etc/neutron/目录,备份dhcp_agent.ini文件dhcp_agent.ini.bak
# cd /etc/neutron/
# cp dhcp_agent.ini dhcp_agent.ini.bak
修改dhcp_agent.ini,如下:vi dhcp_agent.ini
[DEFAULT]
interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
enable_isolated_metadata = True
进入/etc/neutron/目录,备份metadata_agent.ini文件metadata_agent.ini.bak
# cd /etc/neutron/
# cp metadata_agent.ini metadata_agent.ini.bak
修改metadata_agent.ini,如下:vi metadata_agent.ini
[DEFAULT]
nova_metadata_ip = controller
metadata_proxy_shared_secret = mate
进入/etc/nova/目录,备份nova.conf文件nova.conf.bak2
# cd /etc/nova/
# cp nova.conf nova.conf.bak2
修改nova.conf文件,如下:vi nova.conf
[neutron]
url = http://controller:9696
auth_url = http://controller:35357
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = neutron
password = 123456
service_metadata_proxy = True
metadata_proxy_shared_secret = mate
初始化网络服务脚本,需要一个超链接/etc/neutron/plugin.ini指向ML2插件配置文件/etc/neutron/plugins/ml2/ml2_conf.ini
# ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini
同步数据库,完成以后检查数据库neutron中是否存在表,如下图
# 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
重启nova的API 服务
# systemctl restart openstack-nova-api.service
启动网络服务并配置他们开机自启动(对所有网络选项)
# systemctl start neutron-server.service neutron-linuxbridge-agent.service neutron-dhcp-agent.service neutron-metadata-agent.service
# systemctl enable neutron-server.service neutron-linuxbridge-agent.service neutron-dhcp-agent.service neutron-metadata-agent.service
注意:以上配置的网络是公共网络,若选择配置私有网络(网络选项2),可以参考官网配置。这里建议配置公共网络(网络选项1)
对网络选项2,同样也启用并启动layer-3服务
# systemctl start neutron-l3-agent.service
# systemctl enable neutron-l3-agent.service
至此,控制节点配置完成
计算节点安装Neutron服务并配置
1、实现要求
在计算节点安装并配置Neutron服务
2、实现过程
安装服务
# yum install openstack-neutron-linuxbridge ebtables ipset -y
安装完成以后配置Networking通用组件
进入/etc/neutron/目录,备份neutron.conf文件neutron.conf.bak
# cd /etc/neutron/
# cp neutron.conf neutron.conf.bak
修改neutron.conf,如下:vi neutron.conf
[DEFAULT]
transport_url = rabbit://openstack:123456@controller
auth_strategy = keystone
[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 = 123456
[oslo_concurrency]
lock_path = /var/lib/neutron/tmp
配置Linux 桥接代理
进入/etc/neutron/plugins/ml2/目录,备份linuxbridge_agent.ini文件
# cd /etc/neutron/plugins/ml2/
# cp linuxbridge_agent.ini linuxbridge_agent.ini.bak
修改linuxbridge_agent.ini,如下: vi linuxbridge_agent.ini(这里的ens36是新添加的网卡名称)
[linux_bridge]
physical_interface_mappings = provider:ens36
[vxlan]
enable_vxlan = False
[securitygroup]
enable_security_group = True
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
修改nova服务配置文件
进入到/etc/nova/目录,备份nova.conf文件nova.conf.bak2
# cd /etc/nova/
# cp nova.conf nova.conf.bak2
修改nova.conf,如下:vi nova.conf
[neutron]
url = http://controller:9696
auth_url = http://controller:35357
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = neutron
password = 123456
重启计算服务
# systemctl restart openstack-nova-compute.service
启动Linux桥接代理并配置它开机自启动
# systemctl start neutron-linuxbridge-agent.service
# systemctl enable neutron-linuxbridge-agent.service
至此,计算节点的Neutron服务安装配置完成
在控制节点验证安装结果
1、实现要求
在控制节点验证Neutron服务安装的正确性
2、实现过程:
获得admin凭证
# . admin-openrc
列出加载的扩展,对neutron-server进程是否启动正常进行验证
# neutron ext-list
列出网络代理的列表(有计算节点的显示既成功)
# openstack network agent list
列出代理以验证启动neutron代理是否成功(有计算节点的显示既成功)
# neutron agent-list
参考资料:《OpenStack从零开始学》卢万龙著,电子工业出版社第2篇安装配置篇,第14章(P141)