VMware NSX vSphere 邏輯交換器 網路虛擬化

網路虛擬化如何脫鉤硬體 剖析集中運作及控制原理

2016-08-09
上一次介紹了如何簡易地產出一個邏輯交換器,並且說明了邏輯交換器底層的VXLAN封裝機制,這次將深入講解網路虛擬化怎樣在底層運作,並說明其控制的原理。
透過Multicast方式傳送

如圖3所示,Multicast這個方式很直接:底層的L2網路要支援IGMP,且如果vSphere Host的VTEP位於不同的網段有跨L3的需求,企業還需要在L3 Engine上設定PIM(Protocol Independent Multicast)機制。


▲圖3 Multicast方式。

每個vSphere Host註冊自己有哪些Logical Switch並對應到哪個群播位置。因此當一個邏輯交換器上有BUM封包,如圖3中的VM1所示,底層的vSphere Host要由對應此邏輯交換器的群播位置送出VXLAN封包,透過L2/L3的群播機制,送到各個vSphere Host。

這個機制的優點當然是最節省底層的網路傳輸(群播只要傳送一次),但核心問題是有多少企業的網路裡有實作PIM協定的呢?以往所有客戶一聽到VXLAN需要底層支援PIM,就先退避三舍,這是實際上VXLAN透過L3 Multicast方式很難普及的主要原因。而VMware NSX內不需要採用這種機制。

透過Unicast方式傳送

如圖4所示,採用Unicast方式時,針對每個邏輯交換器,每個網段的多台vSphere Hosts內會被NSX Controller選出一個Host,其上的VTEP介面會被稱為UTEP(Unicast Tunnel Endpoint),負責這個網段內,對應邏輯交換器的封包傳輸與發送。當圖4的VM1要送出BUM封包,封包於來源vSphere Host VTEP上,將會有以下的動作:


▲圖4 Unicast方式。

·分別送一個Unicast給同網段的各個VTEP。
·此網段的UTEP收到此Unicast後,複製並分別送出一個VXLAN Unicast給每一個其他不同網段的UTEP。
·每一個網段內負責此邏輯交換器的UTEP接收到此VXLAN Unicast後,往每一個同網段內的其他Host發送Unicast封包。

在Unicast方式內,底層的實體網路環境除了基本要設定MTU > 1600之外,完全沒有其他的東西需要變更,所以設定超簡單。但這個方式的Overhead較高。想像左邊網段有十?台vSphere Hosts,右邊網段也有十?台Hosts,此時左邊的一個VM發出BUM封包:

·來源Host送出共九次Unicast給同網段的VTEP/UTEP。
·來源網段的UTEP要對各個其他不同網段的UTEP各發出一個Unicast,本範例內共一次。
·目的網段的UTEP要對其他同網段的九台Hosts發出九個Unicasts,共九次。

所以,總共需要十?九次Unicast來傳送這個單一的BUM封包。如果是中小環境當然沒問題,但在大型環境中若要這樣運作,當然不是最有效率的方法。

透過Hybrid方式傳送

如圖5所示,採用Hybrid方式時,針對每個邏輯交換器,每個網段中的多台vSphere Hosts內會被NSX Controller選出一個Host,其上的VTEP介面會被稱為MTEP(Multicast Tunnel Endpoint),負責這個網段內對應邏輯交換器的封包群播。


▲圖5 Hybrid方式。

當圖5中的VM1要送出BUM封包,封包於來源vSphere Host上,將需要進行以下幾個步驟:

·送一個Multicast給同網段的所有VTEP或MTEP。
·此網段的MTEP收到此Multicast後,複製並分別送出一個VXLAN Unicast給每一個其他不同網段的MTEP。
·每一個網段內負責此邏輯交換器的MTEP接收到此VXLAN Unicast後,往同網段內的其他Host發送Multicast封包。

同樣地,承襲前面二十?個Hosts的例子,會有以下的情形:

·來源Host送出一次Multicast給同網段的MTEP/VTEP。
·來源網段的MTEP要對其他不同網段的MTEP各發出一個Unicast,共一次。
·目的網段的MTEP要對其他同網段的九台Hosts發出一個Multicasts,共一次。

這邊的重點在於,群播只發生在L2網路內,跨L3的封包傳送是藉由Unicast傳輸。因此,群播的設定僅需考慮採用IGMP的方式做L2 Multicast,設定非常簡單。

而最被一般用戶所詬病採用L3 Multicast(PIM)的需求被移除了,在網路內的傳輸也不會Overhead過大。也因此,Hybrid模式是在VMware NSX裡面,被推薦使用於大型生產環境的模式。

結語

現在要回應一個在之前文章內提出的問題:「在vSphere NSX內的VXLAN,與在傳統vDS或實體交換器裡面支援的VXLAN技術,有什麼不同?」

VXLAN(或各個對應的底層封裝技術)在網路虛擬化技術裡是非常重要的一環,因為藉由這個技術,可以辦到以下幾件事:

·上層多個邏輯交換器的設定,都可以透過同樣的VXLAN封裝於底層網路內交換。上層的邏輯交換器新增或異動不會影響到底層實體網路設備的設定。
·邏輯交換器可以跨越底層網路L3的限制,不需要建立一個vSphere Host間的「大二層」。

但之前在vDS虛擬交換器或是硬體交換器部署這類技術時,底層網路需要做兩個大的變更:

1. 底層網路需要支援L3 Multicast,也就是PIM。
2. 底層網路需要支援Jumbo Frame,供VXLAN增加的表頭可通過。

在目前VMware NSX的架構內,正式解除了前面的第一個變更需求。用戶現在使用簡單的L2 Multicast(IGMP)即可達到需求,甚至若不支援IGMP,廣播的方式也可支援。

而Jumbo Frame雖然需要進行設定,但幾乎所有的Enterprise-Level Switch都支援此功能,設定也不麻煩。因此,NSX成為一個真正能在不同企業網路上皆可輕易部署與架構的網路虛擬化平台,大幅減少了客戶若要使用時所碰到的實際困難。

<本文作者:饒康立,VMware資深技術顧問,主要負責VMware NSX產品線,持有VCIX-NV、VCAP-DTD、CCIE、CISSP等證照 ,目前致力於網路虛擬化、軟體定義網路暨分散式安全防護技術方案的介紹與推廣。>


追蹤我們Featrue us

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

我知道了!