VMware NSX內的邏輯路由器藉由在Kernel內運作,能夠達成東西向傳輸路徑的最佳化,這是現行的硬體網路架構設定所無法企及的,藉由學理的探討及實例的推論,大家應該就能夠明白箇中的奧妙。
以上的流程十?分直覺,但可能會讓網路工程師疑惑的地方是,為什麼不同的VXLAN邏輯交換器上的網段,在LDR Kernel Module上的Default GW MAC Address都是vMAC?
這是與實體網路很不同的地方。實體網路裡,每一個路由器上的Ethernet介面應該都有不同的MAC Address,但在虛擬Ethernet環境裡,在每個虛擬機器連結到LDR時,虛機的MAC與LDR(Hypervisor內)之間的Ethernet網段沒有其他的機器,不會有兩個以上的Gateway,因此LDR上的介面MAC Address都設成一樣,也沒有什麼問題,而這個MAC Address稱做vMAC。
其中,還要注意的是:
·LDR接取不同邏輯交換器的介面MAC Address都是同樣的vMAC。
·事實上,分布在不同Host上的LDR Kernel Module,提供給同一個邏輯交換器的Gateway MAC Address也都是同樣的vMAC。
所以,當VM在不同Host的邏輯交換器上飄來飄去時(如vMotion、DRS、HA等等),不會因為身在不同的Host,由不同Host上的LDR Kernel Module處理Routing,結果Gateway的MAC Address就要一直改變。
第二個例子是兩個不同網段的VM位在不同的伺服器上,如圖5所示。
|
▲圖5 實例二:兩個VM位於不同伺服器,不同網段。 |
除了VM2是位於右邊的vSphere Host B上,狀況與第一個例子完全相同。此時,VM1往VM2送出IP封包,因為VM2與VM1位於不同網段,因此這個封包會如表4所示一般。
表4 VM1往VM2送出的IP封包
這個封包到達vSphere Host A,在Hypervisor內,LDR Kernel Module的路由表則如表5所示。
表5 在Hypervisor內LDR Kernel Module的路由表
因此,LDR Kernel Module接收到此封包,依據Destination IP,與路由表比對後,知道要將封包轉發至LIF2所接取的VXLAN 5002邏輯交換器上。
此時,藉由之前邏輯交換器內介紹的Packet Walk機制,包括於Host上以及NSX Controller內儲存的VTEP Table、MAC Table、ARP Table等,vSphere Host B會知道對應目的位置192.168.10.10之虛擬機器的資訊,包括:
·此虛機的MAC Address(MAC2)
·在vSphere Host B上
·透過VXLAN 5002交換器接取
因此,由Host A透過LIF2將封包藉由VXLAN 5002送往Host B。此時的VXLAN封包,如表6所示。
表6 VXLAN封包內容
而VM2接收到的Ethernet封包,如表7所示。
表7 VM2接收到的Ethernet封包
結束前,詢問大家一個問題。上面的Packet Walk是VM1送往VM2,而VM2回應VM1的封包,是由Host A或是Host B的LDR Kernel Module處理呢?
答案是由Host B上的LDR模組進行處理。邏輯路由器的路由轉發動作,永遠由虛擬機器直接接取的Host上的Routing Kernel Module進行。但去與回的Traffic由不同Host上的LDR Kernel Module並不會造成問題,因為透過集中的LDR Control VM以及NSX Controller控制,不同Host上LDR Kernel Module的轉發表與組態是一致的,不會因為由不同Host處理,就有不同步的問題。
希望藉由上述的說明,能讓各位理解採用NSX邏輯路由器時的轉送機制,以及為何可達成資料中心內的路徑優化。在NSX架構內的核心交換器,僅需要負責進行機櫃與機櫃間的封包傳送,或是虛擬環境與外部實體環境間的封包傳送,但很大部分的虛擬機器之間的網路流,可以直接在vSphere Host內,或是在機箱/機架的交換器內就處理掉。因此,用戶終於可以擺脫巨艦大砲的宿命,用最精簡、有效率的方式建置大型的資料中心網路。
結語
在上期與本期的文章內,針對NSX邏輯分散式路由器的運作模式做了概要說明。但到目前為止,邏輯路由器與NSX的Edge Service Gateway間到底如何設定路由協定,例如OSPF、BGP等都尚未談論。下一篇文章會更進一步就NSX內路由協定的設定方式跟大家說明。
<本文作者:饒康立,VMware資深技術顧問,主要負責VMware NSX產品線,持有VCIX-NV、VCAP-DTD、CCIE、CISSP等證照 ,目前致力於網路虛擬化、軟體定義網路暨分散式安全防護技術方案的介紹與推廣。>