posted

0 Comments

作者: Colin Jao 饒康立 – VMware資深技術顧問,主要負責VMware NSX產品線,目前致力於網路虛擬化、分散式安全防護技術與SD-WAN方案的介紹與推廣。

在前面我們討論Tier-0 / Tier-1邏輯路由器的功用與區別,但同時一直強調,T0 / T1路由器都是『邏輯』的。邏輯上,我們就好像透過一個T0路由器與實體網路連接,有數個T1路由器接到這個T0路由器上,各個T0 / T1路由器上可以執行包含路由以及其他不同的上層網路服務,比如說我們在前篇網誌上貼出的圖:

 

 

但會讓人很困惑的是,那邏輯路由器到底實際上在哪裡運作?之間的網路流是如何?接下來我們要開始談邏輯路由器更細部的概念:Service Router (SR) 與Distributed Router (DR)。兩件事情先提醒大家:
  • 不要用NSX for vSphere的概念來類比。Service Router並不是等於Edge Gateway,Distributed Router與LDR的運作方式也不盡相同
  • 以一個管理者來說,在整個網路配置的過程中間,根本不會配到SR與DR,我們只需要設定T0 / T1路由器而已。SR / DR的概念有助於我們更了解NSX-T的運作模式,以及出狀況時Troubleshooting的方向,但如果初學NSX-T,我認為大家不需要糾結於太過細節的部分,當已經安裝、使用NSX-T後,再把這邊的觀念逐漸釐清即可

如果大家之前有配置過T0 / T1路由器,可能會發現到,在NSX-T的路由器UI介面內,無論是T0或是T1,裡面都會特別顯示出所對應的Service Routers與Distributed Routers,比如下面兩張圖所示:

 

 

 

我們先談Distributed Router。Distributed Router的作用是進行虛機間的東西向路由,簡而言之,當管理員進行路由配置,NSX Controller運算出各個邏輯網段間的路由表後,會把路由轉發表分送到NSX環境內的每一個Transport Node。此時,每一個Transport Node就都知道不同的邏輯網段間要如何繞送,而路由轉發的動作,就可以直接在虛機或容器所屬的Hypervisor (Transport Node) 上直接發生,不需要把封包先送到一個遠端的實體路由器(或虛擬化的VNF Router),再送到目的地。藉由這個方式,在同樣Hypervisor上的不同網段虛機間繞送可以直接在這個Hypervisor的CPU裡發生,無需到實體網路;而位於不同Hypervisor上的虛機,路由繞送也能在本地發生後,直接以Geneve封裝後走最短實體路徑到達目的地。

下面這張圖內,我們把兩個邏輯網段10.1.1.0/24與10.2.2.0/24透過一個邏輯的Tier-0 Router進行路由轉送。當我們進行這樣的配置,NSX Controller會把對應的路由表推送到每一個Transport Node,包含了vSphere / KVM / Edge等等。

 

 

對應到上面的邏輯圖,Tier-0路由器顯示為連接了兩個網段

 

 

同時,在ESXi1這台vSphere內,我們可以由NSX-T的command line內顯示轉發表,兩個邏輯網段10.1.1.0/24與10.2.2.0/24都顯示為直連網段。也就是說,每一個實體的Transport Node上,都有對應到這台Tier-0路由器的Distributed Router
藉由Distributed Router的功能,當兩個在同一台Hypervisor上,但是隸屬於不同網段的虛機,比如說下圖內的10.1.1.1010.2.2.10兩個虛機都位在ESXi-1上。此時,兩個虛機間的封包繞送就直接在ESXi-1上的Distributed Router直接發生,整個封包繞送的作業透過ESXi-1的CPU處理,完全不用走到實體網路,效率一百分!
大家應該可以發現,無論如何繞送,在實體網路上都是走最短路徑,不需要送到一個遠端的實體或虛擬路由器來處理,不僅優化了網路路徑與延遲、同時也減少了實體網路封包處理量。這是採用網路虛擬化的一大效益。
但故事還沒結束,在NSX-T內的路由器不僅做不同網段間的路由轉送,同時還可以提供不同種類的上層網路服務,而為了支持這些上層服務,我們還需要另一個角色就是Service Router,在下篇網誌我們繼續進行討論。