Neutron 是 OpenStack 中提供虛擬化網絡的核心組件,像DHCP、路由器和負載均衡都是 Neutron 實現的。Neutron 一方面在控制節點通過 Neutron-Server 提供 API 接口給用戶去創建和操作虛擬化的網絡;一方面在計算節點和網絡節點通過各種 Neutron Agent去實現這些網絡。
本期智匯華雲,特別邀請到華雲數據網絡技術經理黃茂峰為大家帶來「OpenStack路由器之拓撲解析」。
路由器分類
OpenStack 中的路由器可以從不同的角度進行分類,從路由器是否是分布式的可以分為:DVR(Distributed Virtual Router, 分布式路由器)和 Legacy Router(傳統路由器),從路由器是否是高可用的又可以分為:HA Router(高可用路由器)和 Non-HA Router(非高可用路由器)。
通過相互組合,OpenStack 可以根據用戶需要實現各種各樣的虛擬化路由器,接下來,我們將以拓撲圖解的方式介紹這些虛擬化路由器的相似與差異。
路由器分布拓撲
在圖中,Router 1~4 分別代表了幾類經常使用的路由器,下面分別來介紹這幾種路由器在 OpenStack 集群中的分布差異以及如何對它們進行分類。
Router 1 只分布在網絡節點,所以它是 Legacy Router;並且 Router 1 是分布在多臺網絡節點上的,所以它也是 HA Router。可以總結為 Router 1 是一個 HA Legacy Router。
Router 2 和 Router 1 類似,都是 Legacy Router,但是 Router 2隻分布在一臺網絡節點上,所以稱它為一個 Non-HA Legacy Router。
Router 3在計算節點和多臺網絡節點上都有分布,分別符合分布式路由器和高可用路由器的特徵,所以 Router 3 是一個 HA DVR。
Router 4 和 Router 3 類似,都是 DVR,但是 Router 4隻在一臺網絡節點上有分布,所以可以說它是一個 Non-HA DVR。
路由器流量拓撲
前面介紹了幾種路由器在OpenStack 集群中的分布拓撲,下面我們將深入了解在OpenStack 集群中的網絡流量如何通過這些路由器。
Legacy Router
如圖所示,網絡 Network 1 和網絡 Network 2 連接在 Legacy Router 下, VM 1 和 VM 2 分別是在這兩個網絡下創建的虛機。
可以看到,VM 1 和VM 2 需要經過網絡節點上的 Legacy Router 進行互通,該互通的網絡流量也稱為東西向網絡流量;同時,VM 1 和 VM 2 如果想和外網進行通信,也需要經過網絡節點上的 Legacy Router 和外網交換機與外部網絡進行交互,這種交互的網絡流量也稱為南北向網絡流量。
當 Legacy Router 是 Non-HA 時,即路由器只分布在一臺網絡節點上,流量拓撲如上圖所示。那麼當 Legacy Router 是 HA 時的流量拓撲有什麼差異呢?
當 Legacy Router 是 HA 時,路由器會分布在多臺網絡節點上,但某一時刻,只有一臺網絡節點上的路由器會承載虛機的網絡流量,我們稱該路由器為 Master Router,其它網絡節點的相同路由器為 Standby Router,虛機流量拓撲見下圖(此時,Master Router 在網絡節點B上):
DVR
DVR 路由器即分布式路由器,它的一個主要特徵是虛機間的東西向網絡流量不需要經過網絡節點,當東西向網絡流量需要路由時,會被虛機所在計算節點上的路由器及時處理,從而有效減少東西向網絡流量路徑,提高了網絡交互效率,DVR 的東西向網絡拓撲圖如下:
那麼 DVR 路由器又是如何處理南北向網絡的呢?請看下圖:
圖中顯示了兩種虛機經過DVR與外網進行網絡連接的方式,一種是經過網絡節點(VM 1),一種是從計算節點出來通過交換機直連外網(VM 2)。那麼 VM 1 和 VM 2 的南北向網絡路徑為什麼不一樣呢?
在 DVR 中,當虛機關聯了浮動IP位址之後,虛機所在計算節點上的路由器會創建該虛機直連外網的通道,即經過該計算節點上的外網網卡與外網連通,如圖中的 VM 2。但是如果虛機沒有關聯浮動 IP 地址,那麼該虛機還是需要通過網絡節點上路由器的默認網關連接外網,如圖中的 VM 1。
我們在前面說到,DVR 也有 HA 和 Non-HA 之分,其實,HA DVR 和 Non-HA DVR 在處理東西向網絡流量和帶有浮動IP位址的南北向網絡流量時並沒有差異,只是在處理沒有關聯浮動 IP 地址的虛機南北向網絡時會進行多個網絡節點的路徑選擇而已,這與 Legacy Router 是一樣的,HA DVR處理南北向網絡的流量拓撲可參考下圖。
結束語
本次我們以拓撲的方式對 OpenStack 中幾種常用的路由器進行了對比和解析。對照路由器的分布拓撲圖,我們知道了 OpenStack 路由器是如何在網絡節點和計算節點上分布的,再之,我們又通過網絡流量拓撲圖,掌握了各種路由器處理東西向流量和南北向流量的方法以及它們的差異點。
通過文中的圖示和解析,我們在宏觀和微觀上對 OpenStack 路由器都有了基本的了解。
編輯:徐徐