雲計算之openstack(N版)neutron網絡服務最佳實踐

2.6網絡服務

2.6.1neutron的概況

網絡服務提供網絡,子網以及路由這些對象的抽象概念。每個抽象概念都有自己的功能,可以模擬對應的物理設備:網絡包括子網,路由在不同的子網和網絡之間進行路由轉發。

對於任意一個給定的網絡都必須包含至少一個外部網絡。不想其他的網絡那樣,外部網絡不僅僅是一個定義的虛擬網絡。相反,它代表了一種openstack安裝之外的能從物理的,外部訪問的試圖。外部網絡上的IP地址可供外部網絡上的任意的物理設備訪問,外部網絡之外,任何networking設置擁有一個或多個內部網絡。這些軟件定義的網絡直接連接到虛擬機。僅僅在給定網絡上的虛擬機,或那些在通過接口連接到相近路由的子網上的虛擬機,能直接訪問連接到那個網絡上的虛擬機。

如果外部網絡想要訪問實例或者相反實例想要訪問外部網絡,那麼網絡之間的路由就是必要的了。每一個路由都配有一個網關用於連接到外部網絡,以及一個或多個連接到內部網絡的接口。就像一個物理路由一樣,子網可以訪問同一個路由上其他子網中的機器,並且機器也可以訪問的網關訪問外部網絡。

另外,可以講外部網絡的IP地址分配給內部網絡的端口,不符按什麼時候一旦有鏈接到子網,那個鏈接被稱作端口,你可以給實例的端口分配外部網絡的IP地址。通過這種方式,外部網絡上的實體可以訪問實例。

網絡服務統一支持安全組。安全組允許管理員在安全組中定義防火牆規則,一個實例了一屬於一個或多個安全組,網絡爲這個實例配置這些安全組中的規則,阻止或者開啓端口,端口範圍或者通信類型。

每一個networking使用的插件都有其自有的概念。雖然對操作vni和openstack環境至關重要的,所有的networking安裝使用了一個核心插件和一個安全組插件(或僅是空操作安全組插件)。另外,防火牆即服務(FWaas)和負載均衡即服務(LBaas)插件是可用的。

 

 

Openstack networking

wKiom1ht_0KAnXOiAADQVUkJ8CI678.png-wh_50

網絡:實際的物理環境下,我們使用交換機或者集線器把多個計算機連接起來形成了網絡。在neutron的世界裏,網絡也是將多個不同的雲主機連接起來。

子網:在實際的物理環境下,在一個網絡中。我們可以將網絡劃分成多個邏輯子網。在neutron的世界裏,子網也是隸屬於網絡下的。

端口:是實際的物理環境下,每個子網或者每個網絡,都有很多的端口,比如交換機端口來供計算機連接。在neutron的世界裏端口也隸屬子網下,雲主機的網卡會對應到一個端口上。

路由器:在實際的網絡環境下,不同網絡或者不同邏輯子網之間如果需要進行通信,需要通過路由器進行路由。在neutron的實際物理路由也是這個作用。用來連接不同的網絡或者子網。

wKioL1ht_zWxPsQKAACzLXKKDu0649.png-wh_50

 

2.6.2控制節點上neutron的配置與安裝

a數據庫的創建並授權

create databaseneutron;

grant all onneutron.* to 'neutron'@'localhost' identified by 'neutron';

grant all onneutron.* to 'neutron'@'%' identified by 'neutron';

 

b創建服務證書

獲得 admin 憑證來獲取只有管理員能執行的命令的訪問權限:

sourceadmin-openstack

創建``neutron``用戶:

openstack usercreate --domain default --password-prompt neutron

添加``admin`` 角色到``neutron`` 用戶:

openstack role add--project service --user neutron admin

 

c創建``neutron``服務實體

openstack servicecreate --name neutron \

--description"OpenStack Networking" network

d創建網絡服務API端點

openstack endpointcreate --region RegionOne \

network publichttp://192.168.56.11:9696

openstack endpointcreate --region RegionOne \

network internalhttp://192.168.56.11:9696

openstack endpointcreate --region RegionOne \

network adminhttp://192.168.56.11:9696

 

e軟件包的安裝

yum install -yopenstack-neutron openstack-neutron-ml2 \

openstack-neutron-linuxbridgeebtables

 

f編輯``/etc/neutron/neutron.conf``

[database]#配置數據庫訪問

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

[DEFAULT]#啓用ML2插件並禁用其他插件

core_plugin = ml2

service_plugins =

transport_url =rabbit://openstack:[email protected] #配置rabbitMQ消息隊列訪問權限

auth_strategy =keystone

notify_nova_on_port_status_changes= True

notify_nova_on_port_data_changes= True

[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

[nova]  #配置網絡服務來通知計算節點的網絡拓撲變化

auth_url =http://192.168.56.11:35357

auth_type =password

project_domain_id =default

user_domain_id =default

region_name =RegionOne

project_name =service

username = nova

password = nova

[oslo_concurrency]配置鎖路徑

lock_path =/var/lib/neutron/tmp

 

 

配置 Modular Layer 2 (ML2) 插件

g編輯``/etc/neutron/plugins/ml2/ml2_conf.ini``

 

[ml2]

type_drivers=flat,vlan,gre,vxlan,geneve #啓用flatVLAN網絡

tenant_network_types= flat,vlan,gre,vxlan,geneve #禁用私有網絡

mechanism_drivers=linuxbridge  #啓用Linuxbridge機制

extension_drivers =port_security  #啓用端口安裝擴展驅動

[ml2_type_flat]

flat_networks =public #配置公共虛擬網絡爲public網絡

[securitygroup]

enable_ipset = True#啓用IPset增肌安全組的方便性

 

 

配置Linuxbridge代理

h編輯``/etc/neutron/plugins/ml2/linuxbridge_agent.ini``

[linux_bridge]#將公共虛擬網絡和公共物理網絡接口對應起來

physical_interface_mappings= public:eth0

[vxlan]#禁止vxlan覆蓋網絡

enable_vxlan =False

[securitygroup]#啓用安全組並配置Linux橋接iptables防火牆驅動

enable_security_group= True

firewall_driver =neutron.agent.linux.iptables_firewall.IptablesFirewallDriver

 

 

配置DHCP代理

i編輯``/etc/neutron/dhcp_agent.ini``

[DEFAULT]#配置Linuxbridge驅動接口,DHCP驅動並啓用隔離元數據,這樣在公共網絡上的實例就可以通過網絡訪問元數據

interface_driver =neutron.agent.linux.interface.BridgeInterfaceDriver

dhcp_driver =neutron.agent.linux.dhcp.Dnsmasq

enable_isolated_metadata= True

 

配置metadata元數據

元數據代理提供配置信息,如憑據實例。

j編輯``/etc/neutron/metadata_agent.ini``

[DEFAULT]#配置元數據主機以及共享密碼

nova_metadata_ip =192.168.56.11

metadata_proxy_shared_secret= chunchun

 

配置計算服務來使用網絡服務

k編輯``/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= chunchun

 

網絡服務初始化腳本需要一個超鏈接 /etc/neutron/plugin.ini``指向ML2插件配置文件/etc/neutron/plugins/ml2/ml2_conf.ini``。如果超鏈接不存在,使用下面的命令創建它:

 

ln -s/etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini

 

l同步數據庫

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

驗證數據庫同步成功

mysql -h192.168.56.11 -uneutron -pneutron \

-e "useneutron;show tables;"|wc -l

163

 

m重新啓動控制節點Nova API服務

systemctl restartopenstack-nova-api.service

 

n啓動網絡服務並將其配置爲系統啓動時啓動

systemctl enableneutron-server.service \

neutron-linuxbridge-agent.serviceneutron-dhcp-agent.service \

neutron-metadata-agent.service

systemctl startneutron-server.service \

neutron-linuxbridge-agent.serviceneutron-dhcp-agent.service \

neutron-metadata-agent.service

 

2.6.3計算節點上neutron的配置與安裝

a軟件包的安裝

yum install -yopenstack-neutron-linuxbridge ebtables ipset

 

b編輯``/etc/neutron/neutron.conf``文件

 

[DEFAULT]

transport_url =rabbit://openstack:[email protected] #配置``RabbitMQ``消息隊列訪問權限

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

[oslo_concurrency]配置鎖路徑

lock_path =/var/lib/neutron/tmp

 

配置Linux橋接代理

 

c編輯``/etc/neutron/plugins/ml2/linuxbridge_agent.ini``文件

[linux_bridge]#將公共虛擬網絡和公共物理網絡接口對應起來

physical_interface_mappings= public:eth0

[vxlan]#禁止Vxlan覆蓋網絡

enable_vxlan =false

[securitygroup]  #啓用安全組並配置Linux橋接iptables防火牆驅動

enable_security_group= True

firewall_driver =neutron.agent.linux.iptables_firewall.IptablesFirewallDriver

 

配置計算節點使用網絡

 

d編輯``/etc/nova/nova.conf``文件

在[neutron]部分,配置訪問

[neutron]

url =http://192.168.56.11:9696

auth_url =http://192.168.56.11:35357

auth_type =password

project_domain_id =default

user_domain_id =default

region_name =RegionOne

project_name =service

username = neutron

password = neutron

 

 

e重啓計算節點nova-compute服務

systemctl restartopenstack-nova-compute

 

f啓動Linux橋接代理,包括它的依賴和配置並在系統啓動時啓動

systemctl enableneutron-linuxbridge-agent.service

systemctl startneutron-linuxbridge-agent.service

 

 

驗證:

獲得 admin 憑證來獲取只有管理員能執行的命令的訪問權限:

sourceadmin-openstack

 

列出加載的擴展來驗證``neutron-server``進程是否正常啓動:

neutron agent-list

+-----------------------------+--------------------+-------------------------+-------------------+-------+----------------+---------------------------+

| id | agent_type |host | availability_zone | alive | admin_state_up | binary |

+-----------------------------+--------------------+-------------------------+-------------------+-------+----------------+---------------------------+

|3dfb07a5-d9e2-45ec-b77a- | Metadata agent | linux-node1.example.com | | :-) |True | neutron-metadata-agent |

| 471842f603e8 | || | | | |

| 9e7c94cf-fadd- |Linux bridge agent | linux-node1.example.com | | :-) | True |neutron-linuxbridge-agent |

|4b42-a316-ea1a5bce22de | | | | | | |

|a2ae2f2c-f453-449d-a46a- | DHCP agent | linux-node1.example.com | nova | :-) |True | neutron-dhcp-agent |

| c49edea6f9c5 | || | | | |

|ef8b5e4e-682e-4f57-af5e- | Linux bridge agent | linux-node2.example.com | | :-)| True | neutron-linuxbridge-agent |

| e50e9fa56615 | || | | | |

+-----------------------------+--------------------+-------------------------+-------------------+-------+----------------+---------------------------+


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章