大二層網絡----Vxlan技術


1. 二層轉發的概念

  二層轉發即交換機依據mac地址進行轉發,交換機維護一張mac表,接受到報文后識別報文的目的mac地址,然后將數據包轉發到mac表對應的端口上。VxLAN技術首先會抽象一個overlay平面,這個overlay平面就等同於一個二層交換機,其次會定義若干VTEP節點,VTEP節點就相當於二層交換機的端口,同時維護一個vtep節點的mac表,數據報文到達vtep節點后,解析目的vtep的mac地址,然后將數據包轉發到mac 表對應的vtep節點上,與二層交換極其類似,因此VxLAN這種在物理平面上抽象出的邏輯平面又被稱為大二層平面。這種技術主要用在數據中心里面。

2. 現今數據中心面臨的挑戰

a、 虛擬機規模受網絡設備表項規格的限制

    在傳統二層網絡環境下,數據報文是通過查詢MAC地址表進行二層轉發。服務器虛擬化后,VM的數量比原有的物理機發生了數量級的增長,伴隨而來的便是VM網卡MAC地址數量的空前增加。而接入側二層設備的MAC地址表規格較小,無法滿足快速增長的VM數量。

b、網絡隔離能力有限

    VLAN作為當前主流的網絡隔離技術,在標准定義中只有12比特,因此可用的VLAN數量僅4096個。對於公有雲或其它大型虛擬化雲計算服務這種動輒上萬甚至更多租戶的場景而言,VLAN的隔離能力無法滿足。

c、虛擬機遷移范圍受限

    由於服務器資源等問題(如CPU過高,內存不夠等),虛擬機遷移已經成為了一個常態性業務。虛擬機遷移是指將虛擬機從一個物理機遷移到另一個物理機。為了保證虛擬機遷移過程中業務不中斷,則需要保證虛擬機的IP地址、MAC地址等參數保持不變,這就要求虛擬機遷移必須發生在一個二層網絡中。而傳統的二層網絡,將虛擬機遷移限制在了一個較小的局部范圍內。

為了應對傳統數據中心網絡對服務器虛擬化技術的限制,VXLAN技術應運而生,其能夠很好的解決上述問題。

3. Vxlan格式及封裝格式

    Vxlan通過將邏輯網絡中通信的數據幀封裝在物理網絡中進行傳輸,封裝和解封裝的過程由VTEP節點完成。Vxlan將邏輯網絡中的數據幀添加Vxlan首部后,封裝在物理網絡中的UDP報文中傳送,Vxlan首部的格式如下:

    Vxlan傳輸過程中,將用戶數據報文添加Vxlan首部后,依次添加UDP首部,IP首部,以太網幀首部后,在物理網絡中傳輸,數據幀的封裝格式可以用下圖來描述:

    需要注意的是,外部UDP首部的目的端口號為4789,該數值為默認Vxlan解析程序的端口,外層IP首部中的源IP和目的IP地址均為通信雙方的VTEP地址,協議的其余部分和傳統網絡相同。

這里有一個問題,為什么Vxlan封裝采取的是MAC in UDP的形式而不是MAC in IP或者MAC in TCP呢?

為什么Vxlan封裝采取的是MAC in UDP?

4. Vxlan的技術優勢

a、針對虛擬機規模受設備表項規格限制

    Vxlan將原始的數據報文封裝成UDP報文,並使用VTEP節點的IP地址和MAC地址作為外層頭,這樣報文對網絡中的其他設備只表現為封裝后的參數,可以極大的降低大二層網絡對MAC地址規格的需求。

b、針對網絡隔離能力限制

    Vxlan網絡標識VNI(VXLAN Network Identifier),由24比特組成,支持多達16M的Vxlan段,有效得解決了雲計算中海量租戶隔離的問題。

c、針對虛擬機遷移范圍受限

    Vxlan技術在三層網絡之上,構建出了一個虛擬的大二層網絡Overlay平面,只要虛擬機路由可達,就可以將其規划到同一個大二層網絡中。VM發出的原始報文進行封裝后通過Vxlan隧道進行傳輸,隧道兩端的VM不需感知傳輸網絡的物理架構。這樣,對於具有同一網段IP地址的VM而言,即使其物理位置不在同一個二層網絡中,但從邏輯上看,相當於處於同一個二層域。這就解決了虛擬機遷移范圍受限問題。

5. Vxlan通信過程

a、Host1向Host2發送數據包,封裝源宿MAC,源宿IP后將數據包轉發給VTEP1; 

b、VTEP1接收到數據包,從自己維護的映射表中找到 MAC-Host2 對應的 VTEP-2,然后執行 Vxlan封裝,加上 Vxlan頭,UDP 頭,以及外層 IP 和 MAC 頭。此時的外層 IP 頭,目標地址為 VTEP-2 的 IP,源地址為 VTEP-1 的 IP。同時由於下一跳是 R1,所以外層 MAC 頭中目標地址為 R1 的 MAC。 

c、R1接收到數據包后,發現外層MAC地址指向自己,從自己維護的路由表中查到IP-VTEP2的路由,發現下一跳是R2,於是將外層D-MAC修改為R2的MAC地址,然后將數據包轉發給R2; 

d、R2收到數據包后,查到IP-VTEP2的MAC地址,修改D-MAC為VTEP-2的MAC地址,然后將數據包轉發給VTEP2; 

e、VTEP2收到數據包后,發現D-IP指向自己,然后進行解封裝,依次去掉外層 MAC 頭,外層 IP 頭,UDP 頭 和 Vxlan頭,依據內層D-MAC將數據包轉發給Host2。 

從上面的傳輸過程可以看出,抽象出來的VTEP節點通過Vxlan隧道組成一個大二層的平面,實現雲數據中心的各項復雜需求。

 

轉載自:http://www.subtime.cn/article/vxlan/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM