OpenStack U版双机部署-neutron服务

neutron服务

  • 前言
    • 一、基础网络配置
    • 二、controller节点
      • 1、数据库:
      • 2、创建身份认证
      • 3、self-service网络配置
        • 安装软件
        • 修改配置文件
          • neutron.conf
          • ml2_conf.ini
          • linuxbridge_agent.ini
          • l3_agent.ini
          • dhcp_agent.ini
      • 4、配置元数据代理
      • 5、配置计算服务以使用网络服务
      • 6、同步数据库启动服务
      • 7、启动服务
    • 二、compute节点
      • 1、self-service网络配置
        • 安装软件
        • 修改配置文件
          • neutron.conf
          • linuxbridge_agent.ini
      • 2、配置计算服务以使用网络服务
      • 3、启动服务
    • 三、验证

前言

nova服务之后就是neutron网络服务了,他是为OpenStack环境中创建的实例提供网络,就是二层网络和三层网络,根据官方文档中的内容是提供了两种网络:provider和self-service网络,

——》provider网络是依赖于自己的外部网络的,你想让创建出来的实例联网那么你的外部网络就需要可以连通外网,这个比较依赖于你的网络环境;

——》self-service网络是私有网络,就是可以自己将私有网络进行规划,你可以随便进行设置网络访问进行配置,但是他是不支持连接外网的,就是使用内部的自己创建的私有网络的,

如果想连接外网根据官方文档的操作还是得先创建出来provider网络,然后创建出来self-service网络,接着创建路由,将分配的地址绑定到self-service网络创建自己的实例上,这个实例才可以进行上网了。

我这里就是按照官方文档中self-service网络来部署,

但是为了可以让里面的实例可以访问外网,那么可以将neutron网络服务使用的那个网卡,网卡模式设置外NAT模式,然后外部自己的网络可以连接外网,

一、基础网络配置

根据官方文档中的设置是单独拿出来一个网卡,网络模式设置为none,然后静态地址也不配置,等着neutron网络服务来进行配置,但是我试验过,首先没法连通外网,使用这个网卡创建出来的网络分配给实例是没法连通外网的,接着没法自动分配地址,这个可以自己尝试下,我是没有创建成功。

所以我直接将网卡设置为NAT模式,Vmware的NAT模式启动DHCP功能,接着网卡的网络模式设置为DHCP让他自动获取地址,最后外部环境要保证可以联网,就是说操作系统能够正常联网,

我的规划是eth0网卡就是设置的NAT模式可以连接外网,而且neutron服务使用的也是这块网卡,

OpenStack U版双机部署-neutron服务_第1张图片

Vmware虚机外部网络这么配置的,

OpenStack U版双机部署-neutron服务_第2张图片

接着查看下Vmware的网络编辑器中NAT网络的配置,这里注意地址池的范围,我们后期创建网络的时候分配地址的时候会从NAT网络的地址池范围外拿一部分地址来给provider网络来使用,这个是可以看到的,

OpenStack U版双机部署-neutron服务_第3张图片

注意,上面的网络配置是controller节点上面的,在compute节点上也是需要这样配置的,如果你有很多的compute计算节点,那么配置多少个,

下面是compute节点的配置,和controller差不多,

OpenStack U版双机部署-neutron服务_第4张图片

OpenStack U版双机部署-neutron服务_第5张图片

接着验证下,看看两台机器能够互相ping通且能够连通外网,

注意,下面ping的时候使用的是主机名,所以本地的DNS解析文件中要设置好,这里在基础配置的时候设置过,我在查看下,两台机器这个文件内容相同。

PS:我这里主机名有有固定的规划的,为了做个试验修改主机名就比较麻烦了,所以我只是在主机解析文件中进行了修改,你可以直接修改主机名,也可以像我这样进行修改,都可以效果一样,没得影响。

OpenStack U版双机部署-neutron服务_第6张图片

在controller控制节点上可以ping通外网并且可以通过主机名ping通compute节点,

OpenStack U版双机部署-neutron服务_第7张图片

在compute节点可以ping通外网并且可以ping通controller节点,

OpenStack U版双机部署-neutron服务_第8张图片

二、controller节点

1、数据库:

# mysql -uroot -pXylong_000
MariaDB [(none)]> CREATE DATABASE neutron;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' IDENTIFIED BY '123';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' IDENTIFIED BY '123';
MariaDB [(none)]> exit

OpenStack U版双机部署-neutron服务_第9张图片

2、创建身份认证

接着创建用户然后赋予admin角色

# source admin-openrc 
# openstack user create --domain default --password-prompt neutron
# openstack role add --project service --user neutron admin

OpenStack U版双机部署-neutron服务_第10张图片

接着创建service服务,

# openstack service create --name neutron   --description "OpenStack Networking" network

OpenStack U版双机部署-neutron服务_第11张图片

接着创建出三类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

OpenStack U版双机部署-neutron服务_第12张图片

3、self-service网络配置

安装软件

# yum install openstack-neutron openstack-neutron-ml2   openstack-neutron-linuxbridge ebtables

OpenStack U版双机部署-neutron服务_第13张图片

修改配置文件

neutron.conf
# vim /etc/neutron/neutron.conf 

配置数据库访问

[database]
connection = mysql+pymysql://neutron:123@controller/neutron

OpenStack U版双机部署-neutron服务_第14张图片

[DEFAULT]
core_plugin = ml2	# 启用模块层2 (ML2)插件
service_plugins = router	#路由器服务
allow_overlapping_ips = true	#重叠IP地址
transport_url = rabbit://openstack:123@controller	#配置RabbitMQ消息队列访问
auth_strategy = keystone	#配置keystone访问
notify_nova_on_port_status_changes = true	#配置网络以通知计算的网络拓扑变化
notify_nova_on_port_data_changes = true		#配置网络以通知计算的网络拓扑变化

OpenStack U版双机部署-neutron服务_第15张图片

配置keystone服务访问

[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

OpenStack U版双机部署-neutron服务_第16张图片

配置网络以通知计算的网络拓扑变化

[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

OpenStack U版双机部署-neutron服务_第17张图片

配置锁路径

[oslo_concurrency]
lock_path = /var/lib/neutron/tmp

OpenStack U版双机部署-neutron服务_第18张图片

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

这里注意,在U版的配置文件中,这些都是需要自己来进行手写的,

[ml2]
type_drivers = flat,vlan,vxlan		#启用flat、VLAN和VXLAN网络
tenant_network_types = vxlan		#启用VXLAN self-service网络
mechanism_drivers = linuxbridge,l2population	#启用Linux桥接和二层填充机制:
extension_drivers = port_security	#启用端口安全扩展驱动程序

[ml2_type_flat]
flat_networks = provider	#将provider虚拟网络配置为flat网络

[ml2_type_vxlan]
vni_ranges = 1:1000			#为self-service网络配置VXLAN网络标识符范围

[securitygroup]
enable_ipset = true			#使ipset提高安全组规则的效率

OpenStack U版双机部署-neutron服务_第19张图片

linuxbridge_agent.ini
# vim /etc/neutron/plugins/ml2/linuxbridge_agent.ini 
[linux_bridge]
physical_interface_mappings = provider:eth0		#将provider虚拟网络映射到provider物理网络接口

[vxlan]
enable_vxlan = true			#启用VXLAN覆盖网络
local_ip = 192.168.144.20	#配置处理覆盖网络的物理网络接口的IP地址
l2_population = true		#并启用层-2填充

[securitygroup]
enable_security_group = true	#启用安全组
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver	#配置Linux桥iptables防火墙驱动程序

OpenStack U版双机部署-neutron服务_第20张图片

接着还要确保Linux操作系统内核支持网桥过滤器,通过验证所有以下sysctl值设置为1:

 # vim /etc/sysctl.conf 
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
# sysctl -p

报错:

sysctl: cannot stat /proc/sys/net/bridge/bridge-nf-call-iptables: No such file or directory
sysctl: cannot stat /proc/sys/net/bridge/bridge-nf-call-ip6tables: No such file or directory

OpenStack U版双机部署-neutron服务_第21张图片

根据官方文档中想让Linux操作系统支持网桥过滤是需要加载br_netfilter模块的,

先查看下模块是否加载——》没得

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OftsoBN6-1605080725913)(C:\Users\asus\AppData\Roaming\Typora\typora-user-images\1604288449727.png)]

加载下be_netfilter模块,

# modprobe br_netfilter 
# lsmod | grep br_netfilter

OpenStack U版双机部署-neutron服务_第22张图片

这时候再执行就没有问题了,

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-khemFYPQ-1605080725914)(C:\Users\asus\AppData\Roaming\Typora\typora-user-images\1604288619829.png)]

l3_agent.ini
# vim /etc/neutron/l3_agent.ini 

配置Linux桥接接口驱动程序

[DEFAULT]
interface_driver = linuxbridge

OpenStack U版双机部署-neutron服务_第23张图片

dhcp_agent.ini
# vim /etc/neutron/dhcp_agent.ini 

配置Linux桥接接口驱动程序,Dnsmasq DHCP驱动程序,并启用隔离的元数据,这样在provider网络上的实例可以通过网络访问元数据:

[DEFAULT]
interface_driver = linuxbridge	
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
enable_isolated_metadata = true

OpenStack U版双机部署-neutron服务_第24张图片

4、配置元数据代理

# vim /etc/neutron/metadata_agent.ini 

这里使用的controller就是我们本地解析中设置的主机名,

[DEFAULT]
nova_metadata_host = controller
metadata_proxy_shared_secret = 123

OpenStack U版双机部署-neutron服务_第25张图片

5、配置计算服务以使用网络服务

# vim /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
password = NEUTRON_PASS
service_metadata_proxy = true
metadata_proxy_shared_secret = 123

OpenStack U版双机部署-neutron服务_第26张图片

6、同步数据库启动服务

网络服务初始化脚本期望一个符号链接/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

同步数据库

# 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

OpenStack U版双机部署-neutron服务_第27张图片

OpenStack U版双机部署-neutron服务_第28张图片

# mysql -uneutron -p123
MariaDB [(none)]> show databases;
MariaDB [(none)]> use neutron
MariaDB [neutron]> show tables;

OpenStack U版双机部署-neutron服务_第29张图片

7、启动服务

# systemctl restart openstack-nova-api.service

# 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

# systemctl enable neutron-l3-agent.service
# systemctl start neutron-l3-agent.service

# systemctl restart neutron-server.service   neutron-linuxbridge-agent.service neutron-dhcp-agent.service   neutron-metadata-agent.service neutron-l3-agent.service

OpenStack U版双机部署-neutron服务_第30张图片

二、compute节点

1、self-service网络配置

安装软件

#  yum install openstack-neutron-linuxbridge ebtables ipset

OpenStack U版双机部署-neutron服务_第31张图片

修改配置文件

neutron.conf
# vim /etc/neutron/neutron.conf 
[DEFAULT]
transport_url = rabbit://openstack:123@controller
auth_strategy = keystone

OpenStack U版双机部署-neutron服务_第32张图片

[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

OpenStack U版双机部署-neutron服务_第33张图片

[oslo_concurrency]
lock_path = /var/lib/neutron/tmp

OpenStack U版双机部署-neutron服务_第34张图片

linuxbridge_agent.ini
# vim /etc/neutron/plugins/ml2/linuxbridge_agent.ini 
[linux_bridge]
physical_interface_mappings = provider:eth0		#将provider虚拟网络映射到provider物理网络接口:

[vxlan]
enable_vxlan = true			#启用VXLAN覆盖网络
local_ip = 192.168.144.21	#配置处理覆盖网络的物理网络接口的IP地址
l2_population = true		#启用2层填充

[securitygroup]
enable_security_group = true	#启用安全组
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver	#配置Linux桥iptables防火墙驱动程序

OpenStack U版双机部署-neutron服务_第35张图片

确保您的Linux操作系统内核支持网桥过滤器,通过验证所有以下sysctl值设置为1:

# vim /etc/sysctl.conf 
# vim /etc/sysctl.conf 
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
# sysctl -p

OpenStack U版双机部署-neutron服务_第36张图片

果然还是没有添加br_netfilter模块,加载下重新查看

# modprobe br_netfilter 
# lsmod | grep br_netfilter
# sysctl -p

OpenStack U版双机部署-neutron服务_第37张图片

2、配置计算服务以使用网络服务

# vim /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
password = 123

OpenStack U版双机部署-neutron服务_第38张图片

3、启动服务

# systemctl restart openstack-nova-compute.service
# systemctl enable neutron-linuxbridge-agent.service
# systemctl start neutron-linuxbridge-agent.service

# systemctl restart neutron-linuxbridge-agent.service

OpenStack U版双机部署-neutron服务_第39张图片

三、验证

输出应该指出控制器节点上有四个代理,每个计算节点上有一个代理。

# openstack network agent list 

OpenStack U版双机部署-neutron服务_第40张图片

创建provider网络试一试

# source admin-openrc 
# openstack network create --share --external --provider-physical-network provider --provider-network-type flat provider

OpenStack U版双机部署-neutron服务_第41张图片

接着创建子网,

# openstack subnet create --network provider --allocation-pool start=192.168.223.10,end=192.168.223.30 --dns-nameserver 192.168.223.2 --gateway 192.168.223.2 --subnet-range 192.168.223.0/24 provider

注意,这里的网段必须是你的外网网段,我的是NAT模式,所以这里使用的就是NAT网络同一个网段的地址,并且是不在DHCP地址池中的地址,这里的网关你可以route -n查看,DNS地址你可以查看/etc/resolv.conf文件,

OpenStack U版双机部署-neutron服务_第42张图片

现在一个provider类型的网络就创建好了,

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pck43Vpp-1605080725930)(C:\Users\asus\AppData\Roaming\Typora\typora-user-images\1604294804452.png)]OpenStack U版双机部署-neutron服务_第43张图片

在上面创建好子网之后我们可以在controller节点上查看下网络状态,我们eth0网卡上面的IP状态已经没得了,而是到了一个网桥上面了,查看下面网桥就可以看到之前eth0网卡上的IP地址了,

还有就是我们创建了一个provider类型的网络,那么这里就可以看到一个网桥,这就是创建网络在controller节点上多出来的,

OpenStack U版双机部署-neutron服务_第44张图片

接着还可以查看下网桥信息,可以更简洁的看到,

OpenStack U版双机部署-neutron服务_第45张图片

你可能感兴趣的:(OpenStack,U版,centos,linux,运维)