7.controller部署neutron服务

Neutron 为整个 openstack 提供虚拟化的网络支持,主要功能包括二层交换、三层路由、防火墙、VPN ,以及负载均衡等。

neutron数据库配置

controller节点

在安装和配置 neutron 服务之前,必须创建服务对应的数据库用于存储相关数据 ,然后授权neutron 用户本地访问和远程访问两种访问权限。
mysql -u root -p123456
#创建库
CREATE DATABASE neutron;
#授权用户本地登录并设置密码(密码设置:123)
GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' IDENTIFIED BY '123';
#授权用户远程登录并设置密码(密码设置:123)
GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' IDENTIFIED BY '123';

7.controller部署neutron服务_第1张图片

创建认账账号

切换到 admin 用户,创建 neutron 用户(密码: 123
source admin-openrc
openstack user create --domain default --password-prompt neutron

7.controller部署neutron服务_第2张图片

neutron用户添加到service项目中拥有管理员权限

openstack role add --project service --user neutron admin
创建一个 service 服务(供其他服务访问)名称为 neutron ,类型为network
openstack service create --name neutron --description "OpenStack Networking" network

7.controller部署neutron服务_第3张图片创建neutron服务API端点

admin :管理员访问的 API 端点
internal :内部服务访问的 API 端点
public : 可以被所有项目访问的 API 端点
#创建public端点
openstack endpoint create --region RegionOne network public http://controller:9696

7.controller部署neutron服务_第4张图片

#创建internal端点
openstack endpoint create --region RegionOne network internal http://controller:9696

7.controller部署neutron服务_第5张图片

#创建admin端点
openstack endpoint create --region RegionOne network admin http://controller:9696

7.controller部署neutron服务_第6张图片

创建提供商网络(桥接)

根据官方文档提供的网络模式一共是两种,分别是 provider (提供商网络)与self-service (内部网络)
provider 提供商网络 : 他是通过我们最初在本机添的那块物理网卡来与虚拟机实例进行通讯,如果那块网卡的网络模式是NAT 模式了,那么我们使用provider 网络创建出来的虚拟机实例会与该网卡进行桥接,那虚拟机实例就可以连通的外网了;
self-service 自服务网络: 他说白了就是内部网络,就像 ipv4 地址中的私有网段一样,他可以创建网络但是仅限于内部的实例来进行通信是没法连接外网的;
如果你想要通过 self-service 网络来连接外网的话,那么你是需要将provider网络配置好,并且创建出一个 provider 类型的网络,然后设置为路由绑定到你创建的self-service 网络上面,这样 self-service 网络才可以访问外网。

 7.controller部署neutron服务_第7张图片

 controller节点

安装相关的软件包
yum -y install openstack-neutron openstack-neutron-ml2 openstack-neutron-linuxbridge ebtables
修改 neutron 配置文件: /etc/neutron/neutron.conf
#查看文件属性
ll /etc/neutron/neutron.conf
-rw-r----- 1 root neutron ... /etc/neutron/neutron.conf
#备份配置文件
cp /etc/neutron/neutron.conf{,.bak}
#重新生成配置文件
egrep -v '^#|^$' /etc/neutron/neutron.conf.bak >
/etc/neutron/neutron.conf
#查看文件属性
ll /etc/neutron/neutron.conf
-rw-r----- 1 root neutron ... /etc/neutron/neutron.conf
vi /etc/neutron/neutron.conf
[DEFAULT]
#启用二层网络插件
core_plugin = ml2
#service_plugins 默认为空,如果值是 router 表示支持路由模式(三层网络)即 vxlan
service_plugins =
#指定连接的rabbitmq的用户密码:123
transport_url = rabbit://openstack:123@controller
#指定使用keystone认证
auth_strategy = keystone
#当网络接口发生变化时,通知给nova
notify_nova_on_port_status_changes = true
#当端口数据发生变化,通知给nova
notify_nova_on_port_data_changes = true
[database]
#访问neutron数据库使用的用户及密码:123

connection =
mysql+pymysql://neutron:123@controller/neutron
#配置keystone认证信息,注意将用户neutron密码改为:123
[keystone_authtoken]
www_authenticate_uri = http://controller:5000
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = neutron
password = 123
#neutron需要给nova通知计算节点网络拓扑变化,指定nova的用户信息,注意将nova用户密码改为:123
#默认配置文件没有提供该模块,在文件最后添加即可
[nova]
auth_url = http://controller:5000
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = nova
password = 123
[oslo_concurrency]
#配置锁路径
lock_path = /var/lib/neutron/tmp

7.controller部署neutron服务_第8张图片 

修改 ML2 (二层网络)插件配置文件:/etc/neutron/plugins/ml2/ml2_conf.ini
#查看文件属性
ll /etc/neutron/plugins/ml2/ml2_conf.ini
#备份配置文件
cp /etc/neutron/plugins/ml2/ml2_conf.ini{,.bak}
#重新生成配置文件
egrep -v '^#|^$' /etc/neutron/plugins/ml2/ml2_conf.ini.bak > /etc/neutron/plugins/ml2/ml2_conf.ini
#查看文件属性
ll /etc/neutron/plugins/ml2/ml2_conf.ini
-rw-r----- 1 root neutron ... /etc/neutron/plugins/ml2/ml2_conf.ini

#修改文件内容
 

vim /etc/neutron/plugins/ml2/ml2_conf.ini

[ml2]
#配置类型驱动:让二层网络支持桥接,支持基于vlan做子网划分
type_drivers = flat,vlan
#租户网络类型(vxlan),默认官方文档没有定义vxlan网络类型
tenant_network_types =
#
启用Linuxbridge网桥过滤
mechanism_drivers = linuxbridge
#
启用端口安全扩展驱动程序,基于iptables实现访问控制;但配置了扩展安全组会导致一些端口限制,造成一些服务无法启动
extension_drivers = port_security
[ml2_type_flat]
#将provider(提供商网络)设置为flat(桥接)类型
flat_networks = provider
[securitygroup]
#启用 ipset 增加安全组的安全性
enable_ipset = true

 7.controller部署neutron服务_第9张图片

修改 linuxbridge (网桥)插件配置文件:/etc/neutron/plugins/ml2/linuxbridge_agent.ini
#查看文件属性
ll /etc/neutron/plugins/ml2/linuxbridge_agent.ini
-rw-r----- 1 root neutron ... /etc/neutron/plugins/ml2/linuxbridge_agent.ini
#备份配置文件
cp /etc/neutron/plugins/ml2/linuxbridge_agent.ini{,.bak}
#重新生成配置文件
egrep -v '^#|^$'
/etc/neutron/plugins/ml2/linuxbridge_agent.ini.bak >
/etc/neutron/plugins/ml2/linuxbridge_agent.ini
#查看文件属性
ll /etc/neutron/plugins/ml2/linuxbridge_agent.ini
-rw-r----- 1 root neutron  .../etc/neutron/plugins/ml2/linuxbridge_agent.ini
修改文件内容
vi /etc/neutron/plugins/ml2/linuxbridge_agent.ini
[linux_bridge]
# 指定上个文件中的桥接网络provider与本机ens34物理网卡做关联 后期给虚拟机分配external(外部)网络地址,然后虚拟机就可以通过ens34上外网
桥接的物理网卡名有可能是bind0、br0等
physical_interface_mappings = provider:ens34
[vxlan]
#不启用vxlan
enable_vxlan = false
[securitygroup]
# 启用安全组并配置 Linux 桥接 iptables 防火墙驱动
enable_security_group = true

firewall_driver =
neutron.agent.linux.iptables_firewall.IptablesFirewallDriver

7.controller部署neutron服务_第10张图片

 确保系统内核支持网桥过滤器

#加载modprobe br_netfilter网桥过滤器模块
modprobe br_netfilter && lsmod | grep br_netfilter
br_netfilter 22256 0
bridge 151336 1 br_netfilter
#修改内核配置文件/etc/sysctl.conf,开启ipv4与ipv6的网络过滤功能
vim /etc/sysctl.conf
...(写到最后)
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
#重新加载配置文件
sysctl -p

 修改dhcp_agent(为虚拟网络提供 DHCP 服务)插件配置文件:/etc/neutron/dhcp_agent.ini

#查看文件属性
ll /etc/neutron/dhcp_agent.ini
-rw-r----- 1 root neutron  ... /etc/neutron/dhcp_agent.ini
#备份配置文件
cp /etc/neutron/dhcp_agent.ini{,.bak}
#重新生成配置文件
egrep -v '^#|^$' /etc/neutron/dhcp_agent.ini.bak >/etc/neutron/dhcp_agent.ini
#查看文件属性
ll /etc/neutron/dhcp_agent.ini
-rw-r----- 1 root neutron ... /etc/neutron/dhcp_agent.ini
#修改文件内容
vi /etc/neutron/dhcp_agent.ini

[DEFAULT]
#指定默认接口驱动为linux网桥
interface_driver = linuxbridge
#指定DHCP驱动
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
#开启iso元数据
enable_isolated_metadata = true

7.controller部署neutron服务_第11张图片 

 

配置元数据代理:用于配置桥接与自服务网络的通用配置参考地址:https://docs.openstack.org/neutron/train/install/controller-install-rdo.html

修改配置文件:/etc/neutron/metadata_agent.ini

#查看文件属性
ll /etc/neutron/metadata_agent.ini
-rw-r----- 1 root neutron ... /etc/neutron/metadata_agent.ini
#备份配置文件
cp /etc/neutron/metadata_agent.ini{,.bak}
#重新生成配置文件
egrep -v '^#|^$' /etc/neutron/metadata_agent.ini.bak >/etc/neutron/metadata_agent.ini
#查看文件属性
ll /etc/neutron/metadata_agent.ini
#修改文件内容
vi /etc/neutron/metadata_agent.ini

[DEFAULT]
#元数据代理主机
nova_metadata_host = controller
#元数据代理的共享密钥
metadata_proxy_shared_secret = METADATA_SECRET

 修改nova配置文件,用于neutron交互,配置文件:/etc/nova/nova.conf

vi /etc/nova/nova.conf
[neutron]
auth_url = http://controller:5000
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = neutron
#指定neutron用户密码:123
password = 123
service_metadata_proxy = true
metadata_proxy_shared_secret = METADATA_SECRET

 7.controller部署neutron服务_第12张图片

创建ML2插件文件链接

ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini

 上述配置同步到数据库

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

7.controller部署neutron服务_第13张图片 

 重启nova-api服务

systemctl restart openstack-nova-api.service
开启 neutron 服务、设置开机自启动
systemctl enable neutron-server.service \
neutron-linuxbridge-agent.service neutron-dhcpagent.service \
neutron-metadata-agent.service
systemctl start neutron-server.service \
neutron-linuxbridge-agent.service neutron-dhcpagent.service \
neutron-metadata-agent.service
systemctl is-active neutron-server.service \
neutron-linuxbridge-agent.service neutron-dhcpagent.service \
neutron-metadata-agent.service

7.controller部署neutron服务_第14张图片

 

你可能感兴趣的:(Openstack,运维,docker,容器)