VXLAN技術背景
在當前數(shù)據(jù)中心網(wǎng)絡的前提下,傳統(tǒng)網(wǎng)絡存在下面的問題:
數(shù)據(jù)中心部署可以參考尚文網(wǎng)絡楠哥的文章
二層網(wǎng)絡邊界限制
隨著虛擬化技術的應用,每個實體服務器上可能會運行大量虛擬機,因此二層網(wǎng)絡中虛擬機MAC地址數(shù)量面臨數(shù)量級的增長。為了正常轉發(fā)數(shù)據(jù)報文,接入交換機需要學習每一個二層網(wǎng)絡中虛擬機的MAC地址。受限于硬件水平,接入交換機的MAC地址表容量一般較小,難以滿足需求。
網(wǎng)絡隔離能力有限
在傳統(tǒng)數(shù)據(jù)中心網(wǎng)絡中,虛擬機通過VLAN進行流量隔離,不同租戶虛擬機被劃分到不同的VLAN中。VLAN技術通過VLAN ID對不同的VLAN進行區(qū)分,實際可分配的VLAN ID數(shù)量為4094,這個數(shù)量在某些大規(guī)模數(shù)據(jù)中心內(nèi)是不足的。另外,傳統(tǒng)VLAN無法滿足網(wǎng)絡動態(tài)調(diào)整的需求,網(wǎng)絡的擴容和調(diào)整都非常困難。
虛擬機遷移限制
由于服務器硬件資源問題(如CPU過高、磁盤不夠和內(nèi)存不足等)或機房的搬遷轉移,虛擬機需遷移到其他服務器上。為保證虛擬機遷移過程中業(yè)務不中斷,要求虛擬機MAC地址和IP地址在遷移前后不發(fā)生改變,因此虛擬機只能在當前所在二層網(wǎng)絡中進行遷移。
解決方法:
利用在傳統(tǒng)網(wǎng)絡層次(underlay)的基礎上,虛擬出一個overlay層次,使得能跨越3層進行2層互通。即使用VXLAN技術實現(xiàn),同時,VXLAN解決了VLAN數(shù)量不足和多租戶的問題;
VXLAN基本概念
Vxlan(Virtual eXtensible LAN)虛擬可擴展局域網(wǎng),是一種overlay的網(wǎng)絡技術,建立在物理IP網(wǎng)絡之上的虛擬以太網(wǎng),使用MAC in UDP的方法進行封裝。也就是,在原有報文的基礎上,在外層再封裝一層報文頭VTEP(VXLAN Tunnel Endpoints,VXLAN隧道端點):
VTEP是VXLAN隧道端點,位于NVE中,用于VXLAN報文的封裝和解封裝。
VXLAN報文(其外層IP頭部)中源IP地址為源端VTEP的IP地址,目的IP地址為目的端VTEP的IP地址。VNI(VXLAN Network Identifier,VXLAN網(wǎng)絡標識):
類似VLAN ID,用于區(qū)分VXLAN段。不同VXLAN段的虛擬機不能直接二層相互通信。
一個租戶可以有一個或多個VNI,VNI長度為24 bit,支持多達16 M的租戶。
VXLAN 定義了一個 VTEP( VXLAN Tunnel End Point,虛擬擴展本地網(wǎng)絡隧道終結結點)的實體, VTEP 將虛擬機產(chǎn)生的數(shù)據(jù)封裝到 UDP 包頭內(nèi)再發(fā)送出去,虛擬機本身的 MAC 地址和 VLAN 信息在經(jīng)過封裝后已經(jīng)不再作為數(shù)據(jù)轉發(fā)的依據(jù)。VTEP 可以是軟件、硬件服務器或網(wǎng)絡設備,其實現(xiàn)形式非常靈活。如果將 VTEP 的功能直接集成到虛擬機 Hypervisor(虛擬化軟件平臺)內(nèi),則所有的虛擬機流量在進入交換機之前已經(jīng)被打上了新的 VXLAN 標簽和 UDP 包頭,相當于建立了任意兩點的隧道。由于虛擬機本身的 VLAN 信息對外已不可見, VXLAN 添加了一個新的標簽 VNI( VXLAN Network Identifier,虛擬擴展本地網(wǎng)絡標識符)。 VNI 取代 VLAN 用來表示不同的 VXLAN 網(wǎng)段( VXLAN Segment)。同 VLAN 的轉發(fā)行為相同,只有具有相同 VNI,處于同一 VXLAN 網(wǎng)段內(nèi)的虛擬機才能夠相互通信。新的 UDP 包頭和 VNI 標簽意味著新的幀結構。 VTEP 在收到虛擬機發(fā)送的數(shù)據(jù)幀時會封裝四個部分以形成新的幀頭(內(nèi)層的數(shù)據(jù)幀攜帶的原始的目/源 MAC、內(nèi)層 VLAN tag 和以太網(wǎng)類型保持不變)。這四個部分由內(nèi)而外分別是“VXLAN 頭部”、“外層 UDP 頭部”、“外層 IPv4 首部”、“外層以太幀首部”。
VXLAN通信模型
VXLAN 橋接原理(同VNI)
VXLAN 實現(xiàn)通過以太網(wǎng)報文封裝在 UDP 中在 IP 網(wǎng)絡傳輸, 在接收方,對 VXLAN 報文進行解封裝成以太網(wǎng)報文再進行轉發(fā)。VMA查詢信息后發(fā)出普通以太網(wǎng)報文,源MAC/IP均為本身,目的MAC/IP都為VMB(二層通訊);
報文達到TOR1后,此時轉發(fā)時就進行了Vxlan封裝,主要有3個關鍵內(nèi)容:
1)源MAC置為本端VTEP本身MAC,目的MAC置為即underlay下一跳設備的MAC;
2)源IP置為本端VTEP本身IP,目的IP置為對端VTEP的IP;
3)因為VMA所在的VLAN對應的是VNI-10,所以在外層報文需要添加上VNI 10;
3、經(jīng)過VTEP之間的三層underlay網(wǎng)絡轉發(fā)后,最終E將收到該封裝成VXLAN的報文,在傳遞過程中唯一有變化的就是外層報文頭的源目的MAC地址;(同普通二三層通信原理一樣)
4、TOR2將外層VXLAN報文頭全部解封裝,最終將內(nèi)層報文通過二層轉發(fā)給VMB;(VMB收到的即是普通的以太網(wǎng)報文,接收)
VXLAN 報文隧道頭端復制方式泛洪
VXLAN 采用隧道頭端復制方式對廣播、 組播及未知名單播進行報文泛洪。 (ARP為例)VM A 發(fā)送 ARP 請求, 交換機 TOR1 收到報文 ARP 請求的廣播報文,由于報文是廣播報文, 所以需要通過隧道頭端復制的方式進行泛洪, 封裝成 2 份單播報文分別通過隧道發(fā)送到 TOR2、 TOR4(TOR1 廣播會向所有的隧道泛洪, TOR1 和 TOR2、 TOR4 都建立了隧道)。
D單播VXLAN 報文進行轉發(fā)
TOR2 收到 VXLAN 報文, 將該報文解封裝成以太網(wǎng)報文并進行 VXLAN 地址學習 ( VXLAN:10 MAC: A IP: TOR1,解封裝后的報文廣播泛洪至 VM B, VM B 收到 ARP 請求并應答。
TOR 2 收到 VM B 發(fā)送的 ARP 應答報文,查找地址表,得到出口目的為 IP 地址TOR1 。交換機將報文封裝成發(fā)往交換機 TOR1 的單播 VXLAN 報文(外層源 IP 為 TOR2)。
IP 核心網(wǎng)對 VXLAN 報文進行轉發(fā)
TOR 1 收到 VM B 的 ARP 應答 VXLAN 封裝報文,將報文解封裝成以太網(wǎng)報文,進行地址學習(VXLAN: 10 MAC:B IP: TOR2 )和轉發(fā), VM A 收到 ARP 應答。文章來源:http://www.zghlxwxcb.cn/news/detail-404309.html
有問題大家可以留言討論,關注系統(tǒng)相關知識以及云計算相關內(nèi)容的可以參考尚文網(wǎng)絡楠哥文章,認準尚文網(wǎng)絡成為一名優(yōu)秀的IT人。
----尚文網(wǎng)絡奎哥文章來源地址http://www.zghlxwxcb.cn/news/detail-404309.html
到了這里,關于網(wǎng)工進階之路----VXLAN網(wǎng)絡概念的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!