OpenStack安裝(四)-Neutron模組
一、安裝Neutron前的準備
1. 為Neutron配置資料庫
- 使用資料庫客戶端,以root使用者連線到資料庫中:
mysql -u root -p
- 建立Neutron資料庫:
CREATE DATABASE neutron;
- 為Neutron使用者授予資料庫許可權:
GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' IDENTIFIED BY 'NEUTRON_DBPASS';
GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' IDENTIFIED BY 'NEUTRON_DBPASS';
2. 建立Neutron的身份認證證照
- 載入admin使用者的客戶端指令碼:
source admin-openrc.sh
- 建立neutron使用者:
openstack user create --password-prompt neutron
- 將admin角色新增給neutron使用者:
openstack role add --project service --user neutron admin
- 建立neutron的服務實體:
openstack service create --name neutron --description "OpenStack Networking" network
- 建立網路服務的API endpoint:
openstack endpoint create --publicurl http://controller:9696 --adminurl http://controller:9696 --internalurl http://controller:9696 --region regionOne network
二、在控制節點上安裝和配置Neutron
1. 安裝Neutron
- 安裝Neutron:
apt-get install neutron-server neutron-plugin-ml2 python-neutronclient
2. 配置Neutron
需要配置:資料庫、校驗機制、訊息佇列、拓撲更改通知、外掛
編輯Neutron的配置檔案:/etc/neutron/neutron.conf
小助手:刪除#和空格的命令:cat file | grep -v '^#' | grep -v '^$' > newfile
修改[database]部分,配置資料庫的連線:
connection = mysql://neutron:NEUTRON_DBPASS@controller/neutron
記得密碼替換為自己設定密碼,這是mysql的密碼,並非nova使用者的密碼-
修改[DEFAULT]和[oslo_messaging_rabbit]兩部分, 配置RabbitMQ訊息佇列的訪問:
rpc_backend = rabbit
rabbit_host = controller rabbit_userid = openstack rabbit_password = RABBIT_PASS
-
修改[DEFAULT]和[keystone_authtoken]兩部分,配置身份認證服務的訪問:
auth_strategy = keystone
注意:修改[keystone_authtoken]部分要註釋掉本部分其他的引數
auth_uri = http://controller:5000 auth_url = http://controller:35357 auth_plugin = password project_domain_id = default user_domain_id = default project_name = service username = nova password = NOVA_PASS
-
修改[DEFAULT]部分,啟用ML2外掛、路由服務和IP地址重疊:
core_plugin = ml2 service_plugins = router allow_overlapping_ips = True
-
修改[DEFAULT]和[nova]部分,配置網路拓撲結構更改的通知:
notify_nova_on_port_status_changes = True notify_nova_on_port_data_changes = True nova_url = http://controller:8774/v2 nova_admin_auth_url = http://controller:35357/v2.0 nova_region_name = regionOne nova_admin_username = nova nova_admin_tenant_id = SERVICE_TENANT_ID nova_admin_password = NOVA_PASS
auth_url = http://controller:35357 auth_plugin = password project_domain_id = default user_domain_id = default region_name = RegionOne project_name = service username = nova password = NOVA_PASS
-
可選:在[DEFAULT]部分啟用日誌資訊詳細記錄:
verbose = True
3. 配置ML2外掛
編輯配置檔案:/etc/neutron/plugins/ml2/ml2_conf.ini
- 在[ml2]部分,配置啟用flat和generic routing encapsulation(GRE)網路型別驅動,GRE租戶網路型別和OVS機制驅動:
type_drivers = flat,vlan,gre,vxlan tenant_network_types = gre mechanism_drivers = openvswitch
- 在[ml2_type_gre]部分,配置tunnel identifier(id)範圍:
tunnel_id_ranges = 1:1000
- 在[securitygroup]部分,啟用安全組、ipset和配置OVS iptables的防火牆驅動:
enable_security_group = True enable_ipset = True firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
4. 配置計算服務的網路型別
預設情況下openstack配置計算服務使用傳統網路型別(legacy networking),所以需要重新配置計算服務使用neutron來管理網路服務
注意:在控制節點上進行配置
-
在[DEFAULT]部分,配置APIs和驅動:
network_api_class = nova.network.neutronv2.api.API security_group_api = neutron linuxnet_interface_driver = nova.network.linux_net.LinuxOVSInterfaceDriver firewall_driver = nova.virt.firewall.NoopFirewallDriver
-
在[neutron]部分,配置訪問引數:
url = http://controller:9696 auth_strategy = keystone admin_auth_url = http://controller:35357/v2.0 admin_tenant_name = service admin_username = neutron admin_password = NEUTRON_PASS
5. 完成安裝
- 產生資料庫:
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
- 重啟計算服務:
service nova-api restart
service nova-scheduler restart
service nova-conductor restart
- 重啟網路服務:
service nova-server restart
6. 校驗安裝
提示:在控制節點上進行校驗
- 載入admin客戶端指令碼:
source admin-openrc.sh
- 檢視載入的擴充套件以校驗是否可以成功地發起neutron-server程式:
neutron ext-list
三、在網路節點上安裝和配置Neutron
1. 調整網路節點的網路調優引數
- 編輯/etc/sysctl.conf檔案,編輯一些網路調優引數:
net.ipv4.ip_forward=1 net.ipv4.conf.all.rp_filter=0 net.ipv4.conf.default.rp_filter=0
- 使更改立刻生效:
sysctl -p
2. 安裝Neutron
- 在網路節點上安裝Neutron:
apt-get install neutron-plugin-ml2 neutron-plugin-openvswitch-agent neutron-l3-agent neutron-dhcp-agent neutron-metadata-agent
3. 配置網路服務的通用元件
網路服務的通用元件包括:校驗機制、訊息佇列和外掛
編輯檔案/etc/neutron/neutron.conf進行配置
在[database]部分,註釋掉所有連線資料庫的引數,因為網路節點不能直接訪問資料庫
-
在[DEFAULT]和[oslo_messaging_rabbit]兩部分, 配置RabbitMQ訊息佇列的訪問:
rpc_backend = rabbit
rabbit_host = controller rabbit_userid = openstack rabbit_password = RABBIT_PASS
-
在[DEFAULT]和[keystone_authtoken]兩部分,配置身份認證服務的訪問:
auth_strategy = keystone
注意:修改[keystone_authtoken]部分要註釋掉本部分其他的引數
auth_uri = http://controller:5000 auth_url = http://controller:35357 auth_plugin = password project_domain_id = default user_domain_id = default project_name = service username = neutron password = NEUTRON_PASS
-
在[DEFAULT]部分,配置ML2外掛、路由服務和IP地址的重疊:
core_plugin = ml2 service_plugins = router allow_overlapping_ips = True
-
可選:在[DEFAULT]部分啟用日誌資訊詳細記錄:
verbose = True
4. 配置ML2外掛
修改檔案:/etc/neutron/plugins/ml2/ml2_conf.ini
-
在[ml2]部分,配置啟用flat,VLAN,GRE和VXLAN網路型別驅動,GRE租戶網路型別和OVS機制驅動:
type_drivers = flat,vlan,gre,vxlan tenant_network_types = gre mechanism_drivers = openvswitch
-
在[ml2_type_flat]部分,配置外部的flat網路:
flat_networks = external
-
在[ml2_type_gre]部分,配置tunnel identifier(id)範圍:
tunnel_id_ranges = 1:1000
-
在[securitygroup]部分,啟用安全組、ipset和配置OVS iptables的防火牆驅動:
enable_security_group = True enable_ipset = True firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
-
在[ovs]部分,啟用隧道,配置本地隧道端點和將外部的flat網路對映到br-ex外部網路橋接:
local_ip = INSTANCE_TUNNELS_INTERFACE_IP_ADDRESS(網路節點上隧道網路的IP地址10.0.1.21) enable_tunneling = True bridge_mappings = external:br-ex
-
在[agent]部分,啟用GRE隧道:
tunnel_types = gre
5. 配置L3代理
編輯檔案:/etc/neutron/l3_agent.ini
- 在[DEFAULT]部分,配置介面驅動,配置外部網路橋接和失效路由名稱空間的清除:
interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver external_network_bridge = #這部分為空,目的是在一個代理上啟用多個外部網路 dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq use_namespaces = True dhcp_delete_namespaces = True
6. 配置DHCP代理
編輯檔案:/etc/neutron/dhcp_agent.ini
- 在[DEFAULT]部分,配置介面和DHCP驅動,啟用名稱空間和啟用刪除廢棄的名稱空間:
interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq use_namespaces = True dhcp_delete_namespaces = True
7. 配置metadata代理
主要配置實驗的連線認證資訊
編輯檔案:/etc/neutron/metadata_agent.ini
-
在[DEFAULT]部分,配置metadata的主機為控制節點:
nova_metadata_ip = controller
-
在[DEFAULT]部分,配置metadata代理共享密碼:
metadata_proxy_shared_secret = METADATA_SECRET
-
在[DEFAULT] 部分,配置訪問引數:
auth_uri = http://controller:5000 auth_url = http://controller:35357 auth_region = regionOne auth_plugin = password project_domain_id = default user_domain_id = default project_name = service username = neutron password = NEUTRON_PASS
8. 配置metadata代理(注意!!!在控制節點上完成)
編輯檔案:/etc/nova/nova.conf
- 在[neutron]部分,啟動metadata代理和配置密碼:
service_metadata_proxy = True metadata_proxy_shared_secret = METADATA_SECRET
- 在控制節點重啟api服務:
service nova-api restart
9. 配置Open vSwitch(OVS)服務
- 重啟OVS服務:
service openvswitch-switch restart
- 新增額外的橋接:
ovs-vsctl add-br br-ex
- 新增一個外部網橋的埠用於連線外部網路的物理網路卡:
ovs-vsctl add-port br-ex eth2
10. 完成安裝
- 重啟服務:
service neutron-plugin-openvswitch-agent restart service neutron-l3-agent restart service neutron-dhcp-agent restart service neutron-metadata-agent restart
11. 校驗安裝
- 載入admin客戶端指令碼(在控制節點上!):
source admin-openrc.sh
- 檢視neytron的代理,以確定是否可以正確地載入這些代理,應當有四個代理(在控制節點上!):
neutron agent-list
+--------------------------------------+--------------------+---------+-------+----------------+---------------------------+ | id | agent_type | host | alive | admin_state_up | binary | +--------------------------------------+--------------------+---------+-------+----------------+---------------------------+ | 051543d3-4be3-45b9-a9a2-5bbd3e89a47c | Open vSwitch agent | network | :-) | True | neutron-openvswitch-agent | | 16bd7da4-b76e-4fbd-9e5f-92b52a8c70a5 | DHCP agent | network | :-) | True | neutron-dhcp-agent | | 2882756c-e965-4070-a105-9b408ef1cebc | L3 agent | network | :-) | True | neutron-l3-agent | | 5c4678e6-4096-44fe-95ad-5c4c26f2cc43 | Metadata agent | network | :-) | True | neutron-metadata-agent | +--------------------------------------+--------------------+---------+-------+----------------+---------------------------+
四、在計算節點上安裝和配置Neutron
1. 調整計算節點的網路調優引數
- 編輯/etc/sysctl.conf檔案,編輯一些網路調優引數:
net.ipv4.conf.all.rp_filter=0 net.ipv4.conf.default.rp_filter=0
- 使更改立刻生效:
sysctl -p
2. 在計算節點上安裝Neutron
- 在網路節點上安裝Neutron:
apt-get install neutron-plugin-ml2 neutron-plugin-openvswitch-agent neutron-l3-agent neutron-dhcp-agent neutron-metadata-agent
3. 配置網路服務的通用元件
網路服務的通用元件包括:校驗機制、訊息佇列和外掛
編輯檔案/etc/neutron/neutron.conf進行配置
在[database]部分,註釋掉所有連線資料庫的引數,因為網路節點不能直接訪問資料庫
-
在[DEFAULT]和[oslo_messaging_rabbit]兩部分, 配置RabbitMQ訊息佇列的訪問:
rpc_backend = rabbit
rabbit_host = controller rabbit_userid = openstack rabbit_password = RABBIT_PASS
-
在[DEFAULT]和[keystone_authtoken]兩部分,配置身份認證服務的訪問:
auth_strategy = keystone
注意:修改[keystone_authtoken]部分要註釋掉本部分其他的引數
auth_uri = http://controller:5000 auth_url = http://controller:35357 auth_plugin = password project_domain_id = default user_domain_id = default project_name = service username = neutron password = NEUTRON_PASS
-
在[DEFAULT]部分,配置ML2外掛、路由服務和IP地址的重疊:
core_plugin = ml2 service_plugins = router allow_overlapping_ips = True
-
可選:在[DEFAULT]部分啟用日誌資訊詳細記錄:
verbose = True
4. 配置ML2外掛
修改檔案:/etc/neutron/plugins/ml2/ml2_conf.ini
-
在[ml2]部分,配置啟用flat,VLAN,GRE和VXLAN網路型別驅動,GRE租戶網路型別和OVS機制驅動:
type_drivers = flat,vlan,gre,vxlan tenant_network_types = gre mechanism_drivers = openvswitch
-
在[ml2_type_gre]部分,配置tunnel identifier(id)範圍:
tunnel_id_ranges = 1:1000
-
在[securitygroup]部分,啟用安全組、ipset和配置OVS iptables的防火牆驅動:
enable_security_group = True enable_ipset = True firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
-
在[ovs]部分,啟用隧道,配置本地隧道端點和將外部的flat網路對映到br-ex外部網路橋接:
local_ip = INSTANCE_TUNNELS_INTERFACE_IP_ADDRESS(計算節點上隧道網路的IP地址10.0.1.31) enable_tunneling = True bridge_mappings = external:br-ex
-
在[agent]部分,啟用GRE隧道:
tunnel_types = gre
5. 配置Open vSwitch(OVS)服務
- 重啟OVS服務:
service openvswitch-switch restart
6. 配置計算服務使用網路服務
預設情況下openstack配置計算服務使用傳統網路型別(legacy networking),所以需重新配置計算服務使用neutron來管理網路服務
編輯檔案:/etc/nova/nova.conf
-
在[DEFAULT]部分,配置APIs和驅動:
network_api_class = nova.network.neutronv2.api.API security_group_api = neutron linuxnet_interface_driver = nova.network.linux_net.LinuxOVSInterfaceDriver firewall_driver = nova.virt.firewall.NoopFirewallDriver
-
在[neutron] 部分,配置訪問引數
url = http://controller:9696 auth_strategy = keystone admin_auth_url = http://controller:35357/v2.0 admin_tenant_name = service admin_username = neutron admin_password = NEUTRON_PASS
7. 完成安裝
- 重啟計算服務:
service nova-compute restart
- 重啟Open vSwitch(OVS)代理:
service neutron-plugin-openvswitch-agent restart
8. 校驗安裝
注意:在控制節點上進行校驗
- 載入admin客戶端指令碼:
source admin-openrc.sh
- 檢視neutron的代理,以確定是否可以正確地載入這些代理,輸出中應當有四個代理在網路節點中,在計算節點上有一個代理:
neutron agent-list
五、建立第一個網路
1. 建立外部網路(在控制節點上)
建立一個外部網路,用於外網訪問例項
- 載入admin客戶端指令碼:
source admin-openrc.sh
- 建立外部網路:
neutron net-create ext-net --router:external True --provider:physical_network external --provider:network_type flat
- 在外部網路上建立一個子網:
neutron subnet-create ext-net --name ext-subnet --allocation-pool start=FLOATING_IP_START,end=FLOATING_IP_END --disable-dhcp --gateway EXTERNAL_NETWORK_GATEWAY EXTERNAL_NETWORK_CIDR
2. 建立租戶網路(在控制節點上)
- 在租戶網路上建立子網:
neutron subnet-create demo-net --name demo-subnet --gateway TENANT_NETWORK_GATEWAY TENANT_NETWORK_CIDR
3. 在租戶網路上建立路由
在租戶網路上建立路由,並將外部網路和租戶網路新增到路由上
- 建立路由:
neutron router-create demo-router
- 新增路由到demo租戶的子網:
neutron router-interface-add demo-router demo-subnet
- 新增路由到外部網路:
neutron router-gateway-set demo-router ext-net
4. 校驗安裝
用外部網路的一臺主機,測試是否能ping通租戶的路由閘道器:ping -c 4 203.0.113.101
相關文章
- 照著官網來安裝openstack pike之neutron安裝
- OpenStack安裝(三) Nova模組
- 深入理解openstack neutron
- OpenStack Neutron FWaaS 學習( by quqi99 )
- openstack pike安裝
- OpenStack 安裝 Keystone
- openstack網路(neutron)模式之GRE的基本原理模式
- openstack--rocky 安裝注意
- OpenStack Client 安裝及配置client
- 雲端計算管理平臺之OpenStack網路服務neutron
- [vmware to openstack] 安裝virtio驅動
- redhat 7.3單機安裝openstackRedhat
- openstack neutron網路外掛學習(三)【Open vSwitch實現】
- OpenStack學習系列之十二:安裝ceph並對接OpenStack
- 照著官網來安裝openstack pike之glance安裝
- 照著官網來安裝openstack pike之nova安裝
- 照著官網來安裝openstack pike之安裝dashboard
- 照著官網來安裝openstack pike之keystone安裝
- 【openstack】cloudkitty元件,入門級安裝(快速)Cloud元件
- PyMySQL模組安裝MySql
- php模組安裝PHP
- 安裝MySQLdb模組MySql
- OpenStack collectd的從零安裝服務端服務端
- OpenStack collectd的從零安裝客戶端客戶端
- Cloudfoundry(v2) with Openstack(Folsom)安裝手冊Cloud
- php 安裝zip模組PHP
- Python模組安裝Python
- windows 安裝 Pillow 模組Windows
- nginx安裝echo模組Nginx
- perl cpan 模組安裝
- python 模組安裝Python
- 學習筆記:openstack實驗環境安裝筆記
- 私有云平臺OpenStack之利用Fuel-OpenStack9.0安裝部署詳細教程(上)
- 私有云平臺OpenStack之利用Fuel-OpenStack9.0安裝部署詳細教程(中)
- pip進行模組安裝
- pycharm安裝python模組PyCharmPython
- pip安裝模組失敗
- Greenplum安裝dblink模組