讀古今文學網 > OpenStack系統架構設計實戰 > 4.3 Neutron的架構 >

4.3 Neutron的架構

網絡服務模塊Neutron(見圖4-3)提供開放接口(API),允許用戶定義雲中的網絡連接和地址。網絡服務使運營商能夠利用不同的網絡技術來增強它們的雲網絡。網絡服務也提供了一套API來配置和管理各種網絡服務,如L3轉發、NAT轉換、負載平衡、邊緣防火牆、IPsec VPN等。

圖4-3 Neutron分層架構

OpenStack網絡允許用戶創建和管理網絡對象,如網絡(Net)、子網(Subnet)和端口(Port),這些對象可以被其他OpenStack服務所利用。插件架構模式增強了OpenStack架構和部署的柔韌性,可以適應不同的網絡設備和軟件。

Neutron包括以下幾個組件。

1.Neutron服務器

這一部分包含守護進程neutron-server和各種插件neutron-*-plugin,它們既可以安裝在控制節點上也可以安裝在網絡節點上。Neutron-server提供API接口,並把對API的調用請求傳給已經配置好的插件以進行後續處理。Neutron API支持二層組網和IP地址管理(IPAM),也支持三層路由器的創建、實現二層網絡與外部網關的互聯互通。Neutron包含越來越多的插件,從而提升Neutron與各種商業或者開源網絡技術的互操作性,包括路由器、交換機、虛擬交換機以及軟件定義網絡控制器(SDN控制器)。

2.OpenStack網絡插件和代理

插件需要訪問數據庫來維護各種配置數據和對應關係,例如路由器、網絡、子網、端口、浮動IP、安全組等,如端口插拔、創建網絡或者子網,以及提供IP地址。不同的提供商以及所採用的技術決定了插件及其代理的差異性,比如思科的虛擬交換機和物理交換機,NEC公司的Openflow交換機產品,Open vSwitch、Linux橋接,以及VMware NSX產品等。

公共的代理還包括L3(路由器),DHCP(動態配置服務)等。

特別注意,多種插件不能同時使用,一次僅能用一個插件。

3.消息隊列

消息隊列主要用於接收或者路由RPC消息,RPC消息在代理和API操作之間傳遞。ML2插件中也使用消息隊列,用於傳遞Neutron服務器和各個HyperVisor上的Neutron代理之間的RPC消息。

4.數據庫

幾乎所有組件都需要用數據庫來維護一個持續的網絡模型,因此,數據庫的語法是由已配置的核心插件和服務插件來定義的。