本章內容基於之前提供者網絡構建的基礎上進行改動,之前文章參考如下:
Openstack 網絡服務 Neutron介紹和控制節點部署 (九)
Openstack 網絡服務 Neutron計算節點部署(十)

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

8、創建自服務網絡
source /root/demo-openstack.sh neutron net-create selfservice

9、在網絡上創建一個子網
neutron subnet-create --name selfservice \ --dns-nameserver 8.8.4.4 --gateway 172.16.1.1 \ selfservice 172.16.1.0/24

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

12、給路由器添加一個私網子網的接口
neutron router-interface-add router selfservice

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
