分散式邏輯路由器 VMware VXLAN 虛擬路由 NSX 網路

NSX邏輯路由器轉送機制 有效優化資料中心內路徑

2016-11-16
VMware NSX內的邏輯路由器藉由在Kernel內運作,能夠達成東西向傳輸路徑的最佳化,這是現行的硬體網路架構設定所無法企及的,藉由學理的探討及實例的推論,大家應該就能夠明白箇中的奧妙。

同樣藉由邏輯交換器機制,封包透過VXLAN封裝後送回VM-B所在的Host,也就是原來的vSphere伺服器。


VXLAN解封裝後,還原成原始Ethernet Frame送給VM-B。

明明是在同一個伺服器上的VM,卻要跑到Edge Service Gateway所在的右邊伺服器上,可看出這樣的環境內,路徑並非是最佳化的。

藉由分散式邏輯路由器,NSX將路由的轉發作業由實體路由器或是獨立的虛擬機器Gateway,變成在vSphere Hypervisor Kernel內直接執行的網路功能。也就是說,路由轉發的作業是在離虛擬機器最為接近的vSphere Host上就可進行。

採用分散式邏輯路由器 網路路徑能夠最優化

再回到最早的例子,如圖3所示,當採用NSX內的LDR時,就以上方兩個VM都位於同一個vSphere Host上的例子來說,當有採用NSX分散式邏輯路由器時,VM所送出的封包直接於Host上接收到後,就進行路由轉發至目的網段;而且vSphere Host知道目的虛機就位於自己身上,因此直接把封包送給目的虛擬機器。


▲圖3 採用分散式邏輯路由器時架構內,網路路徑能以最優化的方式進行。

以在圖3下方兩個VM位於不同刀鋒伺服器的例子來說,左邊VM所送出的封包傳送到vSphere Host上之後,由邏輯路由器直接進行路由轉發至對應10.1.2.0網段的邏輯交換器。vSphere Host藉由之前系列文章中所介紹的邏輯交換機制,發現目的虛機在另一個Host上,就藉由底層的VXLAN機制,將封包送到目的Host,並解封裝後送給目的VM。

因為在同一個機箱內的不同刀鋒伺服器,上面VTEP的IP設定是在同一個L2網段內,因此VXLAN的封包轉送僅於L2內進行轉送,不需要往外走到實體核心交換器。也因此,網路實際路徑同樣是在最短的路徑內進行(於機箱內的交換器就進行傳輸)。

以實例推演來了解轉送機制

不知道上面的舉例對大家來說是否夠清晰?以網路人來說,用實際的Packet Walk機制或許能讓大家對NSX邏輯路由器的運作方式概念更為明確。

接下來,利用兩個範例說明在使用邏輯路由器時,虛擬機器間路徑的Packet Walk是如何運作,其狀況分別如下:

·若兩個不同網段的VM位在同一台伺服器上
·若兩個不同網段的VM位在不同的伺服器上


▲圖4 實例一:兩個VM位於同一伺服器,不同網段。

如圖4所示,在第一個範例內,VM1與VM2分別位於不同的邏輯交換器VXLAN 5001及5002上。VM1的MAC位置為MAC1,IP為192.168.20.10,而VM2的MAC位置是MAC2,IP為192.168.10.10。

邏輯路由器跑在vSphere Host A上,接取VXLAN 5001邏輯交換器的介面為LIF1,IP為192.168.20.1(VM1的Default Gateway),MAC是vMAC。

接取VXLAN 5002邏輯交換器的介面是LIF2,IP為192.168.10.1(VM2的Default Gateway),MAC是vMAC。VM1往VM2進行封包傳送時的動作如下所述:

首先,VM1往VM2送出IP封包,因為VM2與VM1位於不同網段,因此這個封包會如表1所示。

表1 VM1往VM2送出的IP封包設定

這個封包到達vSphere Host A後,在Hypervisor內LDR Kernel Module的路由表就如表2內所示。

表2 Hypervisor內LDR Kernel Module的路由表設定

因此,LDR Kernel Module接收到此封包,依據Destination IP,與路由表比對後,知道要將封包轉發至LIF2所接取的VXLAN 5002邏輯交換器上。

此時,vSphere Host A藉由詢問NSX Controller內VXLAN 5002的ARP Table(NSX內的邏輯交換器機制),查出192.168.10.10的對應MAC(MAC2),而且Host知道對應這個MAC的機器就在自己身上。

因此,由Host透過LIF2直接將封包送往VM2,此時的IP封包就會是表3中所設定的。

表3 IP封包設定內容


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!