標籤:table 防火 憑證 命令 lin nova-api sql RoCE set
網路服務概覽
OpenStack Networking(neutron),允許建立、插入介面裝置,這些裝置由其他的OpenStack服務管理。外掛程式式的實現可以容納不同的網路裝置和軟體,為OpenStack架構與部署提供了靈活性。
它包含下列組件:
neutron-server:
接收和路由API請求到合適的OpenStack網路外掛程式,以達到預想的目的。
OpenStack網路外掛程式和代理:
插拔連接埠,建立網路和子網,以及提供IP地址,這些外掛程式和代理依賴於供應商和技術而不同,OpenStack網路基於外掛程式和代理為Cisco 虛擬和物理交換器、NEC OpenFlow產品,Open vSwitch,Linux bridging以及VMware NSX 產品穿線搭橋。
常見的代理L3(3層),DHCP(動態主機IP地址),以及外掛程式代理。
訊息佇列:
大多數的OpenStack Networking安裝都會用到,用於在neutron-server和各種各樣的代理進程間路由資訊。也為某些特定的外掛程式扮演資料庫的角色,以儲存網路狀態
OpenStack網路主要和OpenStack計算互動,以提供網路連接到它的執行個體。
- 網路neutron概念:
OpenStack網路(neutron)管理OpenStack環境中所有虛擬網路基礎設施(VNI),物理網路基礎設施(PNI)的接入層。OpenStack網路允許租戶建立包括像 firewall, :term:load balancer
和 :term:virtual private network (×××)
等這樣的進階虛擬網路拓撲。
網路服務提供網路,子網以及路由這些對象的抽象概念。每個抽象概念都有自己的功能,可以類比對應的物理裝置:網路包括子網,路由在不同的子網和網路間進行路由轉寄。
對於任意一個給定的網路都必須包含至少一個外部網路。不像其他的網路那樣,外部網路不僅僅是一個定義的虛擬網路。相反,它代表了一種OpenStack安裝之外的能從物理的,外部的網路訪問的視圖。外部網路上的IP地址可供外部網路上的任意的物理裝置所訪問
外部網路之外,任何 Networking 設定擁有一個或多個內部網路。這些軟體定義網路直接連接到虛擬機器。僅僅在給定網路上的虛擬機器,或那些在通過介面串連到相近路由的子網上的虛擬機器,能直接存取串連到那個網路上的虛擬機器。
如果外部網路想要訪問執行個體或者相反執行個體想要訪問外部網路,那麼網路之間的路由就是必要的了。每一個路由都配有一個網關用於串連到外部網路,以及一個或多個串連到內部網路的介面。就像一個物理路由一樣,子網可以訪問同一個路由上其他子網中的機器,並且機器也可以訪問路由的網關訪問外部網路。
另外,你可以將外部網路的IP地址分配給內部網路的連接埠。不管什麼時候一旦有串連串連到子網,那個串連被稱作連接埠。你可以給執行個體的連接埠分配外部網路的IP地址。通過這種方式,外部網路上的實體可以訪問執行個體.
網路服務同樣支援安全性群組。安全性群組允許管理員在安全性群組中定義防火牆規則。一個執行個體可以屬於一個或多個安全性群組,網路為這個執行個體配置這些安全性群組中的規則,阻止或者開啟連接埠,連接埠範圍或者通訊類型。
操作步驟
- 在controller節點
建立nuetron資料庫和授權
# mysql -u root -p> CREATE DATABASE neutron;> GRANT ALL PRIVILEGES ON neutron.* TO ‘neutron‘@‘localhost‘ IDENTIFIED BY ‘123456‘;> GRANT ALL PRIVILEGES ON neutron.* TO ‘neutron‘@‘%‘ IDENTIFIED BY ‘123456‘;
獲得 admin 憑證來擷取只有管理員能執行的命令的存取權限:
# source ~/admin-openrc
建立使用者
# openstack user create --domain default --password-prompt neutronUser Password: //密碼123456Repeat User Password: //密碼123456
添加admin
角色到neutron
使用者:
# openstack role add --project service --user neutron admin
建立neutron服務
# openstack service create --name neutron --description "OpenStack Networking" network
建立網路服務端點
# openstack endpoint create --region RegionOne network public http://controller:9696# openstack endpoint create --region RegionOne network internal http://controller:9696# openstack endpoint create --region RegionOne network admin http://controller:9696
- 在controller節點上安裝並配置網路組件
安裝組件
# yum install -y openstack-neutron openstack-neutron-ml2 openstack-neutron-linuxbridge ebtables
修改設定檔
# vim /etc/neutron/neutron.conf[database]//729connection = mysql+pymysql://neutron:[email protected]/neutron[DEFAULT]//27auth_strategy = keystone//30core_plugin = ml2//33 不寫代表禁用其他外掛程式service_plugins =//570transport_url = rabbit://openstack:RABBIT_[email protected]//98notify_nova_on_port_status_changes = true//102notify_nova_on_port_data_changes = true[keystone_authtoken]//847auth_uri = http://controller:5000auth_url = http://controller:35357//898memcached_servers = controller:11211//1005auth_type = passwordproject_domain_name = defaultuser_domain_name = defaultproject_name = serviceusername = neutronpassword = 123456[nova]//1085auth_url = http://controller:35357//1089auth_type = password//1127project_domain_name = default//1156user_domain_name = default//1069region_name = RegionOne//1135project_name = service//1163username = nova//1121password = 123456[oslo_concurrency]//1179lock_path = /var/lib/neutron/tmp
- 配置網路二層外掛程式
配置 Modular Layer 2 (ML2) 外掛程式
# vim /etc/neutron/plugins/ml2/ml2_conf.ini[ml2]//136type_drivers = flat,vlan//141 設定空是禁用本網tenant_network_types =//145mechanism_drivers = linuxbridge//150extension_drivers = port_security[ml2_type_flat]//186flat_networks = provider[securitygroup]//263enable_ipset = true
配置Linux橋接器
# vim /etc/neutron/plugins/ml2/linuxbridge_agent.ini[linux_bridge]//157physical_interface_mappings = provider:ens33[vxlan]//208enable_vxlan = false[securitygroup]//193enable_security_group = true//188firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
配置DHCP
# vim /etc/neutron/dhcp_agent.ini//16interface_driver = linuxbridge//28dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq//37enable_isolated_metadata = true
配置metadata
# vim /etc/neutron/metadata_agent.ini[DEFAULT]//22nova_metadata_host = controller//34metadata_proxy_shared_secret = 123456
配置計算服務使用網路服務
# vim /etc/nova/nova.conf[neutron]//7534url = http://controller:9696//7610auth_url = http://controller:35357//7604auth_type = password//7631project_domain_name = default//7657user_domain_name = default//7678region_name = RegionOne//7625project_name = service//7651username = neutron//7660password = 123456//7573service_metadata_proxy = true//7584metadata_proxy_shared_secret = 123456
建立服務軟串連
# ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini
同步資料庫
# 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
重啟compute API服務和 啟動neutron服務並加入開機自啟動
# systemctl restart openstack-nova-api.servicesystemctl enable neutron-server.service systemctl enable neutron-linuxbridge-agent.service systemctl enable neutron-dhcp-agent.service systemctl enable neutron-metadata-agent.servicesystemctl start neutron-server.service systemctl start neutron-linuxbridge-agent.service systemctl start neutron-dhcp-agent.service systemctl start neutron-metadata-agent.service
配置compute節點網路服務
# yum install -y openstack-neutron-linuxbridge ebtables ipset
配置公用組件
# vim /etc/neutron/neutron.conf[DEFAULT]//27auth_strategy = keystone//570transport_url = rabbit://openstack:[email protected][keystone_authtoken]//847auth_uri = http://controller:5000auth_url = http://controller:35357//898memcached_servers = controller:11211//1005auth_type = passwordproject_domain_name = defaultuser_domain_name = defaultproject_name = serviceusername = neutronpassword = 123456[oslo_concurrency]//1180lock_path = /var/lib/neutron/tmp
配置Linux橋接器
# vim /etc/neutron/plugins/ml2/linuxbridge_agent.ini[linux_bridge]//157physical_interface_mappings = provider:ens33[vxlan]//208enable_vxlan = false[securitygroup]//193enable_security_group = true//188firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
配置計算節點網路服務
# vim /etc/nova/nova.conf[neutron]//7534url = http://controller:9696//7610auth_url = http://controller:35357//7605auth_type = password//7631project_domain_name = default//7657user_domain_name = default//7678region_name = RegionOne//7625project_name = service//7651username = neutron//7660password = 123456
重啟計算服務
# systemctl restart openstack-nova-compute.service
啟動Linuxbridge代理並配置它開機自啟動
# systemctl enable neutron-linuxbridge-agent.service# systemctl start neutron-linuxbridge-agent.service
- 驗證
列出載入的擴充來驗證neutron-server
進程是否正常啟動:
# source ~/admin-openrc# neutron ext-list
OpenStack搭建企業私人雲端 四:Networking服務(持續更新...)