一、VXLAN概述
1. 什么是 VXLAN
VXLAN(Virtual Extensible LAN)虛擬可擴展局域網,是一種 overlay 網絡技術,將原始2層以太網幀進行UDP封裝 (MAC-in-UDP),增加8字節 VXLAN頭部,8字節 UDP頭部, 20字節 IP 頭部和14字節以太網頭部,共50字節。
2. VXLAN優點
VXLAN與VLAN相比能夠提供更好的擴展性和靈活性,主要有以下特點:
應用靈活部署: 通過VXLAN封裝后的2層以太網幀可以跨3層網絡邊界,讓組網以及應用部署變得更加靈活,同時解決多租戶網絡環境中IP地址沖突問題。
更好的擴展性: 傳統 VLANID字段為12-bit,VLAN數量最大為4096;VXLAN使用24-bit VNID (VXLAN network identifier),最大支持 16,000,000 邏輯網絡。
提高網絡利用率: 傳統以太網使用 STP預防環路, STP導致網絡冗余路徑處于阻塞狀態, VXLAN報文基于 3層 IP報頭傳輸,能有效利用網絡路徑,支持 ECMP(equal-cost multipath )和鏈路聚合協議。
(1) 應用靈活部署
如圖 1-1 所示,在 VXLAN環境中應用部署不受物理位置和3層網絡邊界限制,例如某應用的地址段為 192.168.1.0/24,在傳統網絡中所有該應用服務器或者虛擬機必須在同一 3層網絡內部署,否則會產生路由或者地址沖突問題。
(2) 更好的擴展性
傳統網絡通過 VLAN將客戶網絡邏輯隔離, VLAN ID字段為 12-bit ,VLAN數量最大為 4096;VXLAN使用 24-bit VNID ( VXLAN network identifier ),最大支持16,000,000 邏輯網絡,擴展性得到極大增強。
(3) 提高網絡利用率
圖 1-3 使用 VXLAN 后使用三層接口互聯消除生成樹阻塞端口
傳統以太網幀無法穿越三層網絡,部署 VXLAN后, VTEP之間數據基于三層尋址,網絡互聯接口不再是二層接口, 可以將交換機之間互聯接口部署為三層模式,消除生成樹阻塞端口,提高網絡利用率,支持 ECMP(equal-cost multipath )和鏈路聚合協議。
二、VXLAN術語
1. VTEP
VXLAN
Tunnel Endpoint (VTEP)。VXLAN使用VTEP設備對VXLAN報文進行封裝與解封裝,包括ARP請求報文和正常的VXLAN數據報文,VTEP將原始以太網幀通過VXLAN封裝后發送至對端 VTEP設備,對端VTEP接收到 VXLAN報文后解封裝然后根據原始 MAC進行轉發,VTEP可以是物理交換機、物理服務器或者其他支持 VXLAN的硬件設備或軟件來實現。
2. VNI
Virtual Network ID ( VNI), VNI封裝在 VXLAN頭部,共 24-bit ,最大支持16,000,000 邏輯網絡。
3. VXLAN 網關
VXLAN網關用于連接 VXLAN網絡和傳統 VLAN網絡,VXLAN網關實現 VNI和VLAN ID 之間的映射, VXLAN 網關實際上也是一臺 VTEP設備。
4. 組播組
VTEP設備要加入相同的組播組,主要用于控制平面地址學習。
三、VXLAN封裝
VXLAN使用 UDP封裝完整的以太網幀 (MAC-in-UDP),共 50 字節的封裝報文頭。具體的報文格式如下:
1. Inner MAC
Inner MAC,內層 MAC是原始以太網幀的 MAC地址。
2. VXLAN Header
共 8 個字節,目前使用的是 Flags 中的一個 8bit 的標識位和 24bit 的VNI(Vxlan Network identifier) ,其余部分沒有定義,但是在使用的時候必須設置為 0x0000。
3. Outer UDP Header
共8個字節,IANA分配的標準目的端口使用 4798,但是各廠商可以根據需要進行修改,同時UDP的校驗和必須設置成全 0。
4. Outer IP Header
共20個字節,目的IP地址可以是單播地址,也可以是多播地址。 單播情況下,目的IP地址是目的VTEP的 IP地址;當用于VXLAN控制平面時會使用多播地址。
Outer IP: 外層IP地址是經過VTEP封裝后的3層IP地址,源IP是本端VTEP設備IP,用于控制平面時目的 IP 可以是多播地址,用于轉發平面時目的 IP是遠端 VTEP設備 IP。
5. Outer Ethernet Header
共計14個字節,外層以太網幀頭部。Outer MAC,外層 MAC是經過 VTEP封裝后的二層 MAC,源 MAC是本端 VTEP設備MAC,目的 MAC可以是遠端 VTEP設備MAC或者傳輸路徑中間 3 層網絡設備 MAC。
四、VXLAN數據轉發
1. 控制平面
在 VXLAN的實現中, 當通過組播實現控制平面路徑發現時, VTEP設備之間使用無狀態 tunnel ,VTEP設備之間不會維持狀態化的長連接。 VXLAN需要通過控制平面學習遠端設備地址信息, 在本地構建控制平面表項。 控制平面表項由 VNI、Inner Source MAC 、Outer Source IP 三元組組成。
2. 轉發平面
控制平面學習地址映射信息后, 轉發平面負責實際數據的轉發。 VTEP為原始數據幀增加 UDP報頭,新的報頭到達目的 VTEP后才會被去掉,中間路徑的網絡設備只會根據外層包頭內的目的地址進行數據轉發。
3. VXLAN ARP請求
如上圖所示,終端設備 A需要和終端設備 B通信, ARP請求過程如下:
終端設備 A 發送 ARP請求,請求終端設備 B 的 MAC地址;
VTEP-1收到終端設備 A發送的 ARP請求,此時 VTEP-1還沒有終端設備 B對應的地址映射表項, VTEP-1將 ARP請求進行 VXLAN封裝, VNI 設置為10,outer-src-ip 是 VTEP-1的 IP ,outer-dst-ip 是加入的組播組地址,封裝完成后轉發至 VXLAN組播組;
VTEP-2、VTEP3加入相同的組播組,所有組成員都會收到 VTEP-1發送的組播報文,解封裝后檢查 VNI 與本地 VNI 是否匹配,如匹配將 ARP請求發送至本地網絡,同時記錄 VNI、inner MAC、outer IP 的對應關系,構建控制平面地址映射表項。如 VNI 不匹配則丟棄數據包。
終端設備 B 收到 ARP請求后以單播方式發送 ARP響應;
VTEP-2收到終端設備 B 的 ARP響應后進行 VXLAN封裝,此時 VTEP-2已經構建控制平面地址映射表項,通過 VXLAN封裝后以單播方式發送。Outer-src-ip 是 VTEP-2的 IP 地址,outer-dst-ip 是 VTEP-1的 IP 地址;
VTEP-1收到封裝后的 ARP響應后,解封裝比對 VNI,如匹配將 ARP響應發送至終端設備 A,同時記錄 VNI、inner MAC、 outer IP 的對應關系,構建控制平面表項;
此時 VTEP-1、VTEP-2均已成功構建控制平面地址映射信息,后續 VXLAN數據使用單播在 VTEP-1和 VTEP-2之間傳輸。
4. VXLAN 數據傳輸
ARP請求完成后,終端設備 A 向終端設備 B 發送數據, VTEP-1收到數據中查找地址映射表項,將原始數據進行 VXLAN封裝后轉發至 VTEP-2;
VTEP-2收到 VXLAN數據包后檢查 VNI 是否與本地 VNI 匹配, 如匹配則解封裝后將原始以太網幀轉發至終端設備 B。
五、VXLAN部署
六、補充:
在進行 ARP處理時,為了將廣播通過多播進行傳輸,必須要設置VNI 到多播組的映射,這種映射屬于管理層,用于建立VTEP之間的管理通道。未知的目的 MAC(unknown MAC destination )同樣會進行組播封裝,處理方式和廣播相同。
VXLAN報文不能進行分片處理,中間的設備可能會將 VXLAN報文分片,但是VTEP會將分片后的報文丟棄,為了確保 VXLAN報文不被分片處理,需要修改沿途所以設備的 MTU。RFC文檔沒有闡述為什么 VTEP必須丟棄分片后的報文。
在封裝和解封裝時 VLAN TAG信息都會被剝離,除非另有特殊配置。
-
以太網
+關注
關注
40文章
5441瀏覽量
172028 -
VLAN
+關注
關注
1文章
279瀏覽量
35698
原文標題:開學季丨用芯遇見校園的美好
文章出處:【微信號:mtk1997,微信公眾號:聯發科技】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論