網絡,是OpenStack的部署中最容易出問題的,也是其結構中難以理清的部分。經常收到關于OneStack部署網絡方面問題和OpenStack網絡結構問題的郵件。下面根據自己的理解,談一談OpenStack的虛擬網絡、網絡拓撲和網絡流。個人理解有限,僅拋磚引玉,有問題請指正,謝謝。
一、相關概念和要點(可跳過)
1、OpenStack中nova-network的作用
OpenStack平臺中有兩種類型的物理節點,控制節點和計算節點。控制節點包括網絡控制、調度管理、api服務、存儲卷管理、數據庫管理、身份管理和鏡像管理等,計算節點主要提供nova-compute服務。控制節點的服務可以分開在多個節點,我們把提供nova-network服務的節點稱為網絡控制器。
OpenStack的網絡由nova-network(網絡控制器)管理,它會創建虛擬網絡,使主機之間以及與外部網絡互相訪問。
OpenStack的API服務器通過消息隊列分發nova-network提供的命令,這些命令之后會被nova-network處理,主要的操作有:分配ip地址、配置虛擬網絡和通信。
區分以下兩個概念:控制節點和網絡控制器
在最簡單的情況下,所有服務都部署在一個主機,這就是all-in-one;
稍微復雜點,除了nova-compute外所有服務都部署在一個主機,這個主機進行各種控制管理,因此也就是控制節點(本文把2個或以上節點的部署都稱為“多節點”);
但是,很多情況下(比如為了高可用性),需要把各種管理服務分別部署在不同主機(比如分別提供數據庫集群服務、消息隊列、鏡像管理、網絡控制等)。這個時候網絡控制器(運行nova-network)只是控制節點群中的一部分。
2、OpenStack中network的2種ip、3種管理模式
Nova有固定IP和浮動IP的概念。固定IP被分發到創建的實例不再改變,浮動IP是一些可以和實例動態綁定和釋放的IP地址。
Nova支持3種類型的網絡,對應3種“網絡管理”類型:Flat管理模式、FlatDHCP管理模式、VLAN管理模式。默認使用VLAN摸式。
這3種類型的網絡管理模式,可以在一個ОpenStack部署里面共存,可以在不同節點不一樣,可以進行多種配置實現高可用性。
簡要介紹這3種管理模式,后面再詳細分析。
Flat(扁平): 所有實例橋接到同一個虛擬網絡,需要手動設置網橋。 FlatDHCP: 與Flat(扁平)管理模式類似,這種網絡所有實例橋接到同一個虛擬網絡,扁平拓撲。不同的是,正如名字的區別,實例的ip提供dhcp獲取(nova-network節點提供dhcp服務),而且可以自動幫助建立網橋。 VLAN: 為每個項目提供受保護的網段(虛擬LAN)。二、3種網絡模式的工作機制
Flat模式
1)指定一個子網,規定虛擬機能使用的ip范圍,也就是一個ip池(
分配ip不會超過這個范圍,也就是配置里面的fixed_range,比如10.0.0.1/27,那么可用ip就有32個; 這個網絡是可以改變的,比如配置好節點nova.conf和interfaces后,nova-manage network delete 10.0.0.1/27 1 32;nova-manage network create192.168.1.0/24 1 2552)創建實例時,從有效ip地址池接取一個IP,為虛擬機實例分配,然后在虛擬機啟動時候注入虛擬機鏡像(文件系統);
3)必須手動配置好網橋(br100),所有的系統實例都是和同一個網橋連接;網橋與連到網橋的實例組成一個虛擬網絡,nova-network所在的節點作為默認網關。比如flat_interface=eth1;eth1的ip為10.0.0.1,其它網絡ip在10.0.0.1/27內。flat interface-->br100-->flat network
4)此后,網絡控制器(nova-network節點)對虛擬機實例進行NAT轉換,實現與外部的通信。
注意:目前好像配置注入只能夠對Linux類型的操作系統實例正常工作,網絡配置保存在/etc/network/interfaces文件。
新聞熱點
疑難解答