VxLAN網絡組播優化

疊加網絡拓展了二層網絡,增強了虛擬機的移動性。VxLAN是在三層網絡之上疊加二層網絡的一種協議,它通過IP組播對共享網絡基礎設施上的租戶邏輯網絡進行隔離。在IETF的rfc文檔中要求邏輯網絡內的廣播在物理網絡中以組播的形式發出,VNI與組播組的映射由控制層設定,並通過控制通道下發到對應VTEP,VTEP設備根據連接的虛擬機所屬VNI加入相應組播組中。然而IP組播需要消耗網絡中的大量的資源,包括IP組播表和CPU資源。
在VxLAN構建的邏輯網絡中,虛擬機向同一個邏輯網絡的多個目標發送數據包主要有以下三種情況(BUM):
1. 廣播
2. 未知單播
3. 組播

NSX的VxLAN架構如圖所示,圖中有兩個子網,每個子網稱爲VTEP Segment。其中4臺虛擬機屬於同一個二層邏輯網絡。

圖1. 邏輯網絡架構
NSX提出了三種BUM處理方法:
1. 多播
2. 單播
3. 混合
多播模式即IETF提出的實現方法。下面主要分析單播和混合模式。

單播
單播模式完全解耦了邏輯網絡和物理網絡,虛擬化節點以IP子網劃分到不同的VTEP段(vtep segment)中,每個VTEP段中由一個虛擬化節點充當單播隧道終端(Unicast Tunnel End Point,UTEP),UTEP負責接收源VTEP段的單播流量並在本VTEP段中進行邏輯網絡內的廣播。

圖2.單播模式
如圖所示,BUM流量轉發路徑:
1. 圖中有四臺虛擬機連接到邏輯交換機(VNI 5001),VM1發送BUM到其他所有虛擬機。
2. 虛擬化節點(ESXi-1)查找由控制器下發本地VTEP表,確定本VTEP段轉發目標以及遠程UTEP轉發目標,都以單播形式進行轉發。發送給UTEP的單播數據包的VxLAN頭部(“REPLICATE_LOCALLY”位);
3. UTEP收到後根據同樣根據本地VTEP表將數據包複製後發送到目標虛擬化節點。
單播模式不需要對物理網絡進行任何配置,不要求物理網絡支持組播,此模式比較適用於小規模部署,在大規模環境和虛擬機BUM流量較多場景下,虛擬化節點對數據包複製的開銷會大量增加,佔用大量虛擬化節點的資源。

混合模式
混合模式類似於單播模式,組間的流量通過單播實現,但VTEP段內廣播依然通過物理網絡二層組播的方式實現(不需要配置組播路由)。在每個VTEP段中依然需要配置一個多播隧道終端(Mulicast Tunnel End Point,MTEP),負責接收源VTEP段的單播流量並在本VTEP段中進行組播。

圖3. 混合模式
1. VM1產生BUM流量需要發送給VNI爲5001的邏輯網絡內的所有虛擬機,組播組239.1.1.1分配給了5001邏輯網絡,而數據包只會發送到本地二層物理網絡的組播通道中。
2. 虛擬化節點ESXi-1以239.1.1.1地址封裝VM1的BUM流量,發送到此組播通道中,由於二層網絡配置了組播,因此,此VETP段中加入239.1.1.1組的所有虛擬化節點(ESXi-2)都會接受到VM1發送的數據包。
3. 和單播模式相同,VTEP1查詢本地VTEP表,決定需要通過單播發送的目標VTEP段中的MTEP節點,發送的數據包也會在VxLAN頭部相關字段置位。
4. 相應MTEP收到此單播數據包後,通過查詢相應字段確定數據包是否需要發送到組播通道中,如果置位這發送。此VTEP段中加入了組播組的節點都會收到次數據包。
混合模式中只要求物理網絡配置二層組播,同時數據包的複製工作交給了交換機,適合大規模部署。然而,依然沒有解決組播帶來的問題。
VTEP組播優化

在《A Management Method of IP Multicast in Overlay Networks using OpenFlow》一文中提出了通過OpenFlow協議解決VxLAN組播問題。針對組播通知流量(加入/離開)消耗帶寬以及網絡設備處理通知流量帶來的性能損耗問題,文章提出了利用OpenFlow協議將組播成員信息下發到網絡設備中,同時配置VTEP加入相應組播組,完成組播配置。實現架構如圖所示。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章