VXlan 技術實現原理

2021-10-21 03:34:12 字數 2918 閱讀 6299

vxlan 概況

vxlan(virtual extential lan)意為虛擬可拓展區域網。隨著大資料、雲計算技術的興起以及虛擬化技術的普及,vlan技術的弊端逐漸顯現出來,具體表現為如下3個方面:

(1) 虛擬化技術的發展促使大資料、雲計算技術公司採用單個物理裝置虛擬多台虛擬機器的方式來進行組網,隨著應用模組的增加,對於支援vlan數目的要求也在提公升,802.1q標準中的最多支援4094個vlan的能力已經無法滿足當下需求。

(2) 公有雲提供商的業務要求將實體網路租借給多個不同的使用者,這些使用者對於網路的要求有所不同,而不同使用者租借的網路有很大的可能會出現ip位址、mac位址的重疊,傳統的vlan僅僅解決了同一鏈路層網路廣播域隔離的問題,而並沒有涉及到網路位址重疊的問題,因此需要一種新的技術來保證在多個租戶網路中存在位址重疊的情況下依舊能有效通訊的技術。

(3) 虛擬化技術的出現增加了交換機的負擔,對於大型的資料中心而言,單台交換機必須支援數十台以上主機的通訊連線才足以滿足應用需求,而虛擬化技術使得單台主機可以虛擬化出多台虛擬機器同時執行,而每台虛擬機器都會有其唯一的mac位址。這樣,為了保證集群中所有虛機可以正常通訊,交換機必須儲存每台虛機的mac位址,這樣就導致了交換機中的mac表異常龐大,從而影響交換機的**效能。

基於以上需求,vxlan技術被提出。

vxlan技術是網路overlay技術的一種實現,對於overlay技術,筆者的理解是:在基於物理網路拓撲的基礎上通過一定的技術來構建虛擬的、不同於物理網路拓撲的邏輯網路,而物理網路的拓撲結構對於overlay終端而言是透明的,終端不會感知到物理網路的存在,而僅僅能感知到邏輯網路結構。對於終端的視角,網路的情況和直接通過物理裝置實現邏輯拓撲的效果是相同的。vxlan技術可以基於三層網路結構來構建二層虛擬網路,通過vlan技術可以將處於不同網段網路裝置整合在同乙個邏輯鏈路層網路中,對於終端使用者而言,這些網路裝置似乎「真實地」部署在了同乙個鏈路層網路中。

vxlan格式及封裝格式

vxlan通過將邏輯網路中通訊的資料幀封裝在物理網路中進行傳輸,封裝和解封裝的過程由vtep節點完成。vxlan將邏輯網路中的資料幀新增vxlan首部後,封裝在物理網路中的udp報文中傳送,vxlan首部的格式如下:

vxlan首部由8個位元組組成,第1個位元組為標誌位,其中標誌位i設為1表示是乙個合法的vxlan首部,其餘標誌則保留,在傳輸過程中必須置為0;第2-4位元組為保留部分,第5-7位元組為vxlan識別符號,用來表示唯一的乙個邏輯網路;第8個位元組同樣為保留字段,暫未使用。

vxlan傳輸過程中,將邏輯鏈路網路的資料幀新增vxlan首部後,依次新增udp首部,ip首部,乙太網幀首部後,在物理網路中傳輸,資料幀的封裝格式可以用下圖來描述:

需要注意的是,外部udp首部的目的埠號為4789,該數值為預設vxlan解析程式的埠,外層ip首部中的源ip和目的ip位址均填寫通訊雙方的vtep位址,協議的其餘部分和傳統網路相同。

vxlan 通訊

下面簡要說明vxlan網路中的通訊過程。對於處於同乙個vxlan的兩台虛擬終端,其通訊過程可以概括為如下的步驟:

① 傳送方向接收方傳送資料幀,幀中包含了傳送方和接收方的虛擬mac位址。

② 傳送方連線的vtep節點收到了資料幀,通過查詢傳送方所在的vxlan以及接收方所連線的vtep節點,將該報文新增vxlan首部、外部udp首部、外部ip首部後,傳送給目的vtep節點。

③ 報文經過物理網路傳輸到達目的vtep節點。

④ 目的vtep節點接收到報文後,拆除報文的外部ip首部和外部udp首部,檢查報文的vni以及內部資料幀的目的mac位址,確認接收方與本vtep節點相連後,拆除vxlan首部,將內部資料幀交付給接收方。

⑤ 接收方收到資料幀,傳輸完成。

通過以上的步驟可以看出:vxlan的實現細節以及通訊過程對於處於vxlan中的傳送方和接收方是不可見的,基於傳送方和接收方的視角,其通訊過程和二者真實處於同一鏈路層網路中的情況完全相同。

以上通訊方式可以用下圖來描述:

另外一篇文章對vxlan通訊講解

vxlan 在 vtep 間建立隧道,通過 layer 3 網路傳輸封裝後的 layer 2 資料。

下面的例子演示了資料如何在 vxlan 上傳輸:

圖中 host-a 和 host-b 位於 vni 10 的 vxlan,通過 vtep-1 和 vtep-2 之間建立的 vxlan 隧道通訊。

資料傳輸過程如下:

host-a 向 host-b 傳送資料時,host-b 的 mac 和 ip 作為資料報的目標 mac 和 ip,host-a 的 mac 作為資料報的源 mac 和 ip,然後通過 vtep-1 將資料傳送出去。

vtep-1 從自己維護的對映表中找到 mac-b 對應的 vtep-2,然後執行 vxlan 封裝,加上 vxlan 頭,udp 頭,以及外層 ip 和 mac 頭。此時的外層 ip 頭,目標位址為 vtep-2 的 ip,源位址為 vtep-1 的 ip。同時由於下一跳是 router-1,所以外層 mac 頭中目標位址為 router-1 的 mac。

資料報從 vtep-1 傳送出去後,外部網路的路由器會依據外層 ip 頭進行包路由,最後到達與 vtep-2 連線的路由器 router-2。

router-2 將資料報傳送給 vtep-2。vtep-2 負責解封資料報,依次去掉外層 mac 頭,外層 ip 頭,udp 頭 和 vxlan 頭。

vtep-2 依據目標 mac 位址將資料報傳送給 host-b。

上面的流程我們看到 vtep 是 vxlan 的最核心元件,負責資料的封裝和解封。

隧道也是建立在 vtep 之間的,vtep 負責資料的傳送。

VXLAN技術學習筆記

1 概述 1 vxlan是建立在物理ip overlay 網路之上的虛擬乙太網 使用udp封裝完整的內層以太幀,封裝報文頭共五十個位元組 2 vxlan使用24位vxlan網路識別符號 vlan為12位 最大支援16,000,000個邏輯網路 3 vxlan可跨越物理三層網路 使用udp封裝能在三層...

VXLAN技術學習筆記

1 概述 1 vxlan是建立在物理ip overlay 網路之上的虛擬乙太網 使用udp封裝完整的內層以太幀,封裝報文頭共五十個位元組 2 vxlan使用24位vxlan網路識別符號 vlan為12位 最大支援16,000,000個邏輯網路 3 vxlan可跨越物理三層網路 使用udp封裝能在三層...

VXLAN技術產生背景

1 vlan數量不足 在資料中心網路中,虛擬機器是通過vlan來劃分流量的,不同的虛擬機器被劃分到不同的vlan中。實際上可分配的vlan數量為4094,這個數字在某些大規模資料中心內有可能是不夠的。另外傳統的vlan無法滿足網路動態調整的需求,網路的擴容和調整都非常困難。2 二層網路邊界限制 二層...