本章内容基于之前提供者网络构建的基础上进行改动,之前文章参考如下:

Openstack 网络服务 Neutron介绍和控制节点部署 (九) 

Openstack 网络服务 Neutron计算节点部署(十) 

neutron网络架构 neutron创建网络_linux

 

Neutron 私有网络构建

1、控制节点,编辑/etc/neutron/neutron.conf文件并完成如下操作:

  • 在[DEFAULT]部分,启用Modular Layer 2 (ML2)插件,路由服务和重叠的IP地址
core_plugin = ml2
service_plugins = router
allow_overlapping_ips = True

提示:allow_overlapping_ips 允许每个项目都可以构建相同的IP

2、控制节点,编辑/etc/neutron/plugins/ml2/ml2_conf.ini文件并完成以下操作:

  • 在[ml2]部分,启用VXLAN私有网络
tenant_network_types = vxlan
  • 在[ml2]部分,启用Linuxbridge和layer-2机制
mechanism_drivers = linuxbridge,openvswitch,l2population
  • 在[ml2_type_flat]部分,配置公共虚拟网络为flat网络
flat_networks = public
  • 在[ml2_type_vxlan]部分,为私有网络配置VXLAN网络识别的网络范围
vni_ranges = 1:1000

3、计算节点,编辑/etc/neutron/plugins/ml2/linuxbridge_agent.ini文件并且完成以下操作:

  • 在[vxlan]部分,启用VXLAN覆盖网络,配置覆盖网络的物理网络接口的IP地址,启用layer-2 population
enable_vxlan = True
local_ip = 192.168.137.11
l2_population = True

提示:每台计算节点的local_ip地址

  • 在[linux_bridge]部分,将公共虚拟网络和公共物理网络接口对应起来
physical_interface_mappings = public:eth0

4、控制节点,配置layer-3代理

Layer-3代理为私有虚拟网络提供路由和NAT服务。

编辑/etc/neutron/l3_agent.ini文件并完成以下操作:

  • 在[DEFAULT]部分,配置Linuxbridge接口驱动和外部网络网桥
[DEFAULT]
interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver
external_network_bridge =

5、服务重启

systemctl restart neutron-server.service
systemctl restart neutron-linuxbridge-agent.service

6、启用layer-3服务并设置其随系统自启动

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

7、检查

source /root/admin-openstack.sh
neutron agent-list

neutron网络架构 neutron创建网络_虚拟网络_02

8、创建自服务网络

source /root/demo-openstack.sh
neutron net-create selfservice

neutron网络架构 neutron创建网络_IP_03

9、在网络上创建一个子网

neutron subnet-create --name selfservice \
--dns-nameserver 8.8.4.4 --gateway 172.16.1.1 \
selfservice 172.16.1.0/24

neutron网络架构 neutron创建网络_虚拟网络_04

10、添加router:external到public网络

私有网络通过虚拟路由来连接到公有网络,以双向NAT最为典型。每个路由包含至少一个连接到私有网络的接口以及一个连接到公有网络的网关的接口。

source /root/admin-openstack.sh
neutron net-update public --router:external

11、创建路由

source /root/demo-openstack.sh
neutron router-create router

neutron网络架构 neutron创建网络_neutron网络架构_05

12、给路由器添加一个私网子网的接口

neutron router-interface-add router selfservice

neutron网络架构 neutron创建网络_虚拟网络_06

13、给路由器设置公有网络的网关

neutron router-gateway-set router public-net

14、验证

source /root/admin-openstack.sh
ip netns
neutron router-port-list router

15、Horizon配置/etc/openstack-dashboard/local_settings

OPENSTACK_NEUTRON_NETWORK = {
    'enable_router': True,
    'enable_quotas': True,
    'enable_ipv6': True,
    'enable_distributed_router': True,
    'enable_ha_router': True,
    'enable_lb': True,
    'enable_firewall': True,
    'enable_vpn': False,
    'enable_fip_topology_check': True,

16、服务重启

systemctl restart httpd.service