OpenStack Neutron 網絡模型
OpenStack nova-network 獨立成為單獨的組件 Neutron 后,形象的網絡模型的多平面網絡、混合平面私有網絡。如圖 3,圖 4,圖 5,圖 6。
圖 3. 多平面網絡
圖 4. 混合平面私有網絡
圖 5. 通過私有網絡實現運營商路由功能
圖 6. 通過私有網絡實現每個租戶創建自己專屬的網絡區段
Neutron 網絡創建過程
Neutron 網絡目的是為 OpenStack 雲更靈活地划分物理網絡,在多租戶環境下提供給每個租戶獨立的網絡環境。另外,Neutron 提供 API 來實現這種目標。Neutron 中用戶可以創建自己的網絡對象,如果要和物理環境下的概念映射的話,這個網絡對象相當於一個巨大的交換機,可以擁有無限多個動態可創建和銷毀的虛擬端口。在 Horizon 上創建 Neutron 網絡過程如下:
- 首先管理員拿到一組可以在互聯網上尋址的 IP 地址,並且創建一個外部網絡和子網。
- 租戶創建一個網絡和子網。
- 租戶創建一個路由器並且連接租戶子網和外部網絡。
- 租戶創建虛擬機。
OpenStack 網絡類型
一個標准的 OpenStack 網絡設置有 4 個不同的物理數據中心網絡:
- 管理網絡:用於 OpenStack 各組件之間的內部通信。
- 數據網絡:用於雲部署中虛擬數據之間的通信。
- 外部網絡:公共網絡,外部或 internet 可以訪問的網絡。
- API 網絡:暴露所有的 OpenStack APIs,包括 OpenStack 網絡 API 給租戶們。
圖 7.OpenStack 網絡類型
圖 7.OpenStack 網絡類型
Neutron 服務網絡管理的三種模式
Flat 模式
Flat 模式和 FlatDHCP 模式其實區別不大,都是基於網橋網絡,只是 FLat 模式需要管理員手動配置(包括配置網橋和外部的 DHCP 設備)。
圖 8. Flat 網絡拓撲
FlatDHCP 模式
這種模式下與 Flat 模式不同的地方在於有一個 DHCP 進程,每一個運行 nova-network 進程的節點(網絡控制節點/nove-network 主機)就是一個單獨的網絡。Nova 會在 nova-network 主機建立網橋(默認名稱 br100,配置項 flat_network_bridge=br100),並給該網橋指定該網絡的網關 IP,同時 Nova 在網橋處起一個 DHCP 進程,最后,會建立 iptables 規則(SNAT/DNAT)使虛擬機能夠與外界通信,同時與一個 metadata 服務器通信以取得 cloud 內的信息。
計算節點負責創建對應節點的網橋,此時的計算節點網卡可以不需要 IP 地址,因為網橋把虛擬機與 nove-network 主機連接在一個邏輯網絡內。虛擬機啟動時會發送 dhcpdiscover 以獲取 IP 地址。虛擬機通往外界的數據都要通過 nova-network 主機,DHCP 在網橋處監聽,分配 fixed_range 指定的 IP 段。如圖 9。
圖 9. FlatDHCP 網絡拓撲
這種部署方式的缺點----單節點故障、無二層隔離(即所有的虛擬機都在一個廣播域)。
VLAN 模式
VLAN(Virtual Local Area Network)的中文名為"虛擬局域網"。VLAN 是一種將局域網設備從邏輯上划分成一個個網段,從而實現虛擬工作組的新興數據交換技術。
VLAN 模式與 Flat 模式的區別
在 Flat 模式下,管理員的工作流程應該是這樣的:
- 為所有租戶創建一個 IP 池:
nova-manage network create --fixed_range_v4=10.0.0.0/16 –label=public
- 創建租戶
- 租戶創建虛擬機,為虛擬機分配 IP 池中的可用 IP
DB 中虛擬機信息可能如下圖,從圖中我們看到 2 個虛擬機處於同一網段。
圖 10
在 VLAN 模式下流程如下:
- 創建新的租戶,並記下租戶的標識
- 為該租戶創建獨占的 fixed_ip 段:
nova-manage network create --fixed_range_v4=10.0.1.0/24 --vlan=102 --project_id="tenantID"
- 租戶創建虛擬機,從租戶的私有 IP 段內分配 IP 給虛擬機
因此,與 Flat 模式相比,VLAN 模式為網絡增加了:將網絡與租戶關聯和為網絡分配一個 VLAN 號。
Neutron 總結
OpenStack 虛擬網絡 Neutron 把部分傳統網絡管理的功能推到了租戶方,租戶通過它可以創建一個自己專屬的虛擬網絡及其子網,創建路由器等等,在虛擬網絡功能的幫助下,基礎物理網絡就可以向外提供額外的網絡服務了,比如租戶完全可以創建一個屬於自己的類似於數據中心網絡的虛擬網絡。Neutron 提供了比較完善的多租戶環境下的虛擬網絡模型以及 API。像部署物理網絡一樣,使用 Neutron 創建虛擬網絡時也需要做一些基本的規划和設計。