作者: Colin Jao 饒康立 – VMware資深技術顧問,主要負責VMware NSX產品線,目前致力於網路虛擬化暨分散式安全防護技術方案的介紹與推廣。
接下來我們要和各位開始討論VMware NSX內的分散式邏輯路由器(Distributed Logical Router, DLR)架構與功能。 NSX內其實有兩種不同的路由器機制,分別是本文內討論的分散式邏輯路由器,以及Edge Gateway。後續專欄內會對兩種機制都進行介紹,不過兩者內最重要的差異要先說明如下:
- 分散式邏輯路由器: 路由轉發的動作是直接於各vSphere Host Hypervisor內執行。
- Edge Gateway: 獨立的路由閘道虛擬機器。透過此路由器進行路由轉發的網路封包,會需要直接通過此虛擬機器傳送。
之所以需要兩種不同架構的路由器,主要是基於資料中心內有不同型態網路流,利用不同機制進行路由轉發處理。DLR負責的是資料中心內的東西向網路路徑最佳化,Edge Gateway則是負責南北向網路的路徑轉發處理。這裏需要解釋一下東西向與南北向網路流的定義:
- 東西向網路流:網路流僅發生於資料中心內的虛擬環境內,也就是VM到VM間的網路連通
- 南北向網路流:網路流發生於資料中心到其他地點,如Internet(如VM連往Internet)或是廣域網路(如外點用戶連往資料中心內VM)。或是網路流發生於資料中心內的虛擬環境與實體環境(如VM連往實體資料庫)之間
我們用下圖來說明:在資料中心內部虛擬機器的封包傳送,比如說在虛擬環境內Web / AP / DB等位於邏輯交換器上虛擬機器間的網路流,就是所謂的東西向傳送,由DLR機制直接於vSphere Host上進行。但如果是與Internet或是外部實體網路的交通,比如說Internet用戶連往Web虛擬機器,就是南北向傳送,會由Edge Gateway統整作為資料中心與外部網路間的閘道。
圖說:東西向交通與南北向交通
接下來我們對邏輯路由器進行介紹。下圖可以看出,實際上邏輯路由器分為兩個組件:於Hypervisor內的Kernel Module,以及獨立虛擬機器的Control VM
圖說:邏輯路由器的構件
邏輯路由器的DLR Kernel Module實際上是NSX Manager安裝於vSphere Hypervisor內的一個VIB模組,負責實際的封包路由轉發。但路由協定的溝通、路由表的建立等作業,則是由DLR Control VM來執行。也就是說,Control VM是此邏輯路由器的控制層(Control-Plane),負責進行路由交換與路由表建立;DLR Kernel Module則是資料層(Data-Plane),依據Control VM所發出的路由表,實際於Hypervisor內進行封包路由轉發。
我們用下圖來說明DLR Control VM / DLR (Kernel Module) / NSX Controller / NSX Manager間的關係:
圖說:邏輯路由器的架構
- 當管理者由NSX Manager或雲平台要求建立一個新的邏輯路由器,NSX Manager告知vCenter建立DLR Control VM;同時亦告知NSX Controller建立新的Routing Instance
- NSX Controller連往各台vSphere Hypervisor的Routing Kernel Module,告知哪些邏輯交換器會透過此邏輯路由器連結(建立各邏輯交換器間連結的Logical Interface)。
- Control VM藉由所設定的靜態或動態路由協定 (OSPF / BGP) 與Edge Gateway或是實體路由器進行路由協定交換,並據以建立路由表
- Control VM將路由表送往NSX Controller
- NSX Controller將建立出的轉發表 (Forwarding Table) 送給各Hypervisor內的Routing Kernel Module
- 各個Hypervisor內的Routing Kernel Module據此直接進行各邏輯交換器間,或是往Edge Gateway間的封包轉發
透過分散式邏輯路由器機制,用戶可以於建置NSX環境時,取得下列的效益:
- 直接在離各個虛擬機器最近的地方 (Hypervisor) 進行封包路由轉發,達成東西向網路流的最佳化
- 將控制層與資料層分離,封包轉送直接於vSphere Hypervisor內發生,且控制層VM失效不影響現有網路流交通
- 路由器的建立與組態直接透過NSX Manager或雲平台建立,提供集中且自動化的組態
- 不同的系統與租戶都可以依據需求建立自己的邏輯路由器,無需受限於實體網路設備
在下一篇文章,我們會與各位示範step-by-step建立分散式邏輯路由器的步驟。
Comments
0 Comments have been added so far