1.前情回顾
- 目前环境使用的是
Provider
网络 - 现在需要将其修改为
Self-service
网络,类似于公有云的vpc
网络
2.流程
1.控制节点配置修改
- 1.修改
/etc/neutron/neutron.conf
的[DEFAULT]
区域
# 原来的配置
# core_plugin = ml2
# service_plugins =
# ====================
# 修改后的配置
core_plugin = ml2
service_plugins = router
allow_overlapping_ips = True
- 2.修改
/etc/neutron/plugins/ml2/ml2_conf.ini
文件的[ml2]
区域
# 原来的配置
# type_drivers = flat,vlan
# tenant_network_types =
# mechanism_drivers = linuxbridge
# ====================
# 修改后的配置
type_drivers = flat,vlan,vxlan
tenant_network_types = vxlan
mechanism_drivers = linuxbridge,l2population
- 3.修改
/etc/neutron/plugins/ml2/ml2_conf.ini
文件的[ml2_type_vxlan]
区域,新增
vni_ranges = 1:100000
- 4.x修改
/etc/neutron/plugins/ml2/linuxbridge_agent.ini
文件的[vxlan]
区域
# 原来的配置
# enable_vxlan = False
# ====================
# 修改后的配置
enable_vxlan = True
# 隧道通讯专用地址(直接使用我们最初的管理网络IP)
local_ip = 192.168.100.10
l2_population = True
- 5.修改
/etc/neutron/l3_agent.ini
的[DEFAULT]
部分,增加以下内容
interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver
external_network_bridge =
2.控制节点重新启动以下服务
systemctl restart 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
- 判断是否启动成功,
L3 agent
状态:-)
表示成功
[root@controller ~]# neutron agent-list
+--------------------------------------+--------------------+------------+-------------------+-------+----------------+---------------------------+
| id | agent_type | host | availability_zone | alive | admin_state_up | binary |
+--------------------------------------+--------------------+------------+-------------------+-------+----------------+---------------------------+
| 01c79ff7-a257-4572-8d36-e53a41c54b4c | Metadata agent | controller | | :-) | True | neutron-metadata-agent |
| 7288d214-2d6e-40d1-a52b-4810ac843454 | Linux bridge agent | controller | | :-) | True | neutron-linuxbridge-agent |
| a53f41d4-b579-4d8f-9f70-681f5936d996 | Linux bridge agent | block | | :-) | True | neutron-linuxbridge-agent |
| c94f5235-7ef6-4043-bed1-ad4c041525f4 | DHCP agent | controller | nova | :-) | True | neutron-dhcp-agent |
| cf4833e3-2af4-4297-88e3-f58fb0b60f15 | L3 agent | controller | nova | :-) | True | neutron-l3-agent |
| f40e89c2-9bef-4c6c-a063-03f9f32c9c20 | Linux bridge agent | compute | | :-) | True | neutron-linuxbridge-agent |
+--------------------------------------+--------------------+------------+-------------------+-------+----------------+---------------------------+
3.所有计算节点配置修改
- 1.修改
/etc/neutron/plugins/ml2/linuxbridge_agent.ini
文件的[vxlan]
部分
# 原来的配置
# enable_vxlan = False
# ====================
# 修改后的配置
enable_vxlan = True
# 隧道通讯专用地址(直接使用我们最初的管理网络IP)
local_ip = 192.168.100.20
l2_population = True
- 2.由于存储节点也兼职来的计算节点,所以也需要做相应的修改
# 原来的配置
# enable_vxlan = False
# ====================
# 修改后的配置
enable_vxlan = True
# 隧道通讯专用地址(直接使用我们最初的管理网络IP)
local_ip = 192.168.100.30
l2_population = True
- 3.重启计算节点
neutron-linuxbridge-agent.service
服务
systemctl restart neutron-linuxbridge-agent.service
3.创建并启动实例
1.创建一个外部网络
- 1.之前已经创建了
test-network
网络,但是他还不是外部网络,我们需要对他进行编辑,使其成为外部网络
2.创建一个私有网络
- 1.没有配置私有网络的情况下,只能在
管理员
选项卡下面创建网络,配置私有网络后,也可以在项目下创建网络了
友情提示
:经过测试发现,DNS如果设置的不是公网DNS,有可能导致虚机内部不能访问外网,例如:百度
3.创建一个路由器,将vpc网络和外部网络连接起来
- 1.修改控制节点
dashboard
的/etc/openstack-dashboard/local_settings
配置文件,找到OPENSTACK_NEUTRON_NETWORK
选项,修改enable_router
为True
- 2.重启
httpd
服务systemctl restart httpd
- 3.此时在项目下的网络部分,会出现一个路由器选项
- 4.创建一个路由器
- 5.编辑路由器,将vpc网络连接到路由器上
4.创建一个虚机,网络选择VPC网络
4.浮动IP
- 目前实例可以访问外部网络,但是网不网络无法访问到该实例
- 假使该实例上部署了一套
web服务
,怎么让外部网络可以访问到它 - 通过浮动IP可以使其被外部网络访问到
1.给实例绑定浮动IP
2.通过浮动IP,SSH到该实例
3.解除浮动IP绑定
4.删除浮动IP
- 1.进入管理员下的网络,找到
test-network
这个浮动IP网络源
- 2.进入
test-network
网络详情,找到要删除的IP - 3.点击编辑端口,修改状态为
Down
,不然无法删除
- 4.选中后,点击删除端口