OpenStack U版双机部署-neutron服务

前言

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服务使用的也是这块网卡,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

二、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

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

2、创建身份认证

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

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

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

接着创建service服务,

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

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

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

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

3、self-service网络配置

安装软件
# yum install openstack-neutron openstack-neutron-ml2   openstack-neutron-linuxbridge ebtables

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

修改配置文件
neutron.conf
# vim /etc/neutron/neutron.conf 

配置数据库访问

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

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

[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		#配置网络以通知计算的网络拓扑变化

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

配置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

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

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

[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

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

配置锁路径

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

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

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提高安全组规则的效率

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

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防火墙驱动程序

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

接着还要确保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

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

根据官方文档中想让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

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

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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

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

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

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

4、配置元数据代理

# vim /etc/neutron/metadata_agent.ini 

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

[DEFAULT]
nova_metadata_host = controller
metadata_proxy_shared_secret = 123

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

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

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

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

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

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

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

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

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

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

二、compute节点

1、self-service网络配置

安装软件
#  yum install openstack-neutron-linuxbridge ebtables ipset

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

修改配置文件
neutron.conf
# vim /etc/neutron/neutron.conf 
[DEFAULT]
transport_url = rabbit://openstack:123@controller
auth_strategy = keystone

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

[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

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

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

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

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防火墙驱动程序

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

确保您的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

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

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

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

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

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

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

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

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

三、验证

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

# openstack network agent list 

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

创建provider网络试一试

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

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

接着创建子网,

# 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文件,

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

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pck43Vpp-1605080725930)(C:\Users\asus\AppData\Roaming\Typora\typora-user-images\1604294804452.png)]在这里插入图片描述

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

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

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

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

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值