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