天天看點

基于OpenStack建構企業私有雲(5)Neutron

在OpenStack世界中,網絡元件最初叫nova-network,nova-network實作簡單,直接采用基于Linux核心的Linux網橋。由于少了很多層抽象,是以比較簡單穩定算。但是它的不足之處是支援的插件少(隻支援Linux網橋),支援的網絡拓撲少(隻支援flat, vlan)。

1.Neutron安裝

[root@linux-node1 ~]# yum install -y openstack-neutron openstack-neutron-ml2 \

openstack-neutron-linuxbridge ebtables

2.Neutron資料庫配置

[root@linux-node1 ~]# vim /etc/neutron/neutron.conf

[database]

connection = mysql+pymysql://neutron:[email protected]:3306/neutron

3.Keystone連接配接配置

[DEFAULT]

auth_strategy = keystone

[keystone_authtoken]

auth_uri =

http://192.168.56.11:5000

auth_url =

http://192.168.56.11:35357

memcached_servers = 192.168.56.11:11211

auth_type = password

project_domain_name = default

user_domain_name = default

project_name = service

username = neutron

password = neutron

4.RabbitMQ相關設定

transport_url = rabbit://openstack:[email protected]

5.Neutron網絡基礎配置

core_plugin = ml2

service_plugins =

6.網絡拓撲變化Nova通知配置

notify_nova_on_port_status_changes = True

notify_nova_on_port_data_changes = True

[nova]

region_name = RegionOne

username = nova

password = nova

7.在 [oslo_concurrency] 部分,配置鎖路徑:

[oslo_concurrency]

lock_path = /var/lib/neutron/tmp

8.Neutron ML2配置

[root@linux-node1 ~]# vim /etc/neutron/plugins/ml2/ml2_conf.ini
[ml2]
type_drivers = flat,vlan,gre,vxlan,geneve #支援多選,是以把所有的驅動都選擇上。
tenant_network_types = flat,vlan,gre,vxlan,geneve #支援多項,是以把所有的網絡類型都選擇上。
mechanism_drivers = linuxbridge,openvswitch,l2population #選擇插件驅動,支援多選,開源的有linuxbridge和openvswitch
#啟用端口安全擴充驅動
extension_drivers = port_security,qos

[ml2_type_flat]
#設定網絡提供
flat_networks = provider

[securitygroup]
#啟用ipset
enable_ipset = True           

9.Neutron Linuxbridge配置

[root@linux-node1 ~]# vim /etc/neutron/plugins/ml2/linuxbridge_agent.ini
[linux_bridge]
physical_interface_mappings = provider:eth0

[vxlan]
#禁止vxlan網絡
enable_vxlan = False

[securitygroup]
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
enable_security_group = True           

10.Neutron DHCP-Agent配置

[root@linux-node1 ~]# vim /etc/neutron/dhcp_agent.ini
[DEFAULT]
interface_driver = linuxbridge
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
enable_isolated_metadata = True           

11.Neutron metadata配置

[root@linux-node1 ~]# vim /etc/neutron/metadata_agent.ini
[DEFAULT]
nova_metadata_host = 192.168.56.11

metadata_proxy_shared_secret = unixhot.com           

12.Neutron相關配置在nova.conf

[root@linux-node1 ~]# vim /etc/nova/nova.conf
[neutron]
url = http://192.168.56.11:9696
auth_url = http://192.168.56.11:35357
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = neutron
password = neutron
service_metadata_proxy = True
metadata_proxy_shared_secret = unixhot.com

[root@linux-node1 ~]# ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini

同步資料庫
[root@linux-node1 ~]# 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           

13.重新開機計算API 服務

# 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

14.Neutron服務注冊
# openstack service create --name neutron --description "OpenStack Networking" network
建立endpoint
# openstack endpoint create --region RegionOne network public http://192.168.56.11:9696
# openstack endpoint create --region RegionOne network internal http://192.168.56.11:9696
# openstack endpoint create --region RegionOne network admin http://192.168.56.11:9696           

15.測試Neutron安裝

[root@linux-node1 ~]# openstack network agent list

Neutron計算節點部署

安裝軟體包

[root@linux-node2 ~]# yum install -y openstack-neutron openstack-neutron-linuxbridge ebtables


1.Keystone連接配接配置
[root@linux-node2 ~]# vim /etc/neutron/neutron.conf
[DEFAULT]
…
auth_strategy = keystone

[keystone_authtoken]
auth_uri = http://192.168.56.11:5000
auth_url = http://192.168.56.11:35357
memcached_servers = 192.168.56.11:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = neutron
password = neutron

2.RabbitMQ相關設定
[root@linux-node2 ~]# vim /etc/neutron/neutron.conf
[DEFAULT]
transport_url = rabbit://openstack:[email protected]
#請注意是在DEFAULT配置欄目下,因為該配置檔案有多個transport_url的配置

3.鎖路徑
[oslo_concurrency]
lock_path = /var/lib/neutron/tmp           

4.配置LinuxBridge配置

[root@linux-node1 ~]# scp /etc/neutron/plugins/ml2/linuxbridge_agent.ini 192.168.56.12:/etc/neutron/plugins/ml2/           

5.設定計算節點的nova.conf

[root@linux-node2 ~]# vim /etc/nova/nova.conf
[neutron]
url = http://192.168.56.11:9696
auth_url = http://192.168.56.11:35357
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = neutron
password = neutron

重新開機計算服務
[root@linux-node2 ~]# systemctl restart openstack-nova-compute.service

啟動計算節點linuxbridge-agent
[root@linux-node2 ~]# systemctl enable neutron-linuxbridge-agent.service
[root@linux-node2 ~]# systemctl start neutron-linuxbridge-agent.service

在控制節點上測試Neutron安裝
[root@linux-node1 ~]# source admin-openstack.sh
[root@linux-node1 ~]# openstack network agent list

看是否有linux-node2.example.com的Linux bridge agent           

繼續閱讀