溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

VXLAN的原理和作用是什么

發(fā)布時(shí)間:2022-01-12 14:41:18 來(lái)源:億速云 閱讀:215 作者:柒染 欄目:云計(jì)算

本篇文章為大家展示了VXLAN的原理和作用是什么,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。

什么是VXLAN

VXLAN(Virtual eXtensible Local Area Network,虛擬擴(kuò)展局域網(wǎng)),是由IETF定義的NVO3(Network Virtualization over Layer 3)標(biāo)準(zhǔn)技術(shù)之一,是對(duì)傳統(tǒng)VLAN協(xié)議的一種擴(kuò)展。VXLAN的特點(diǎn)是將L2的以太幀封裝到UDP報(bào)文(即L2 over L4)中,并在L3網(wǎng)絡(luò)中傳輸。

如圖1-1所示,VXLAN本質(zhì)上是一種隧道技術(shù),在源網(wǎng)絡(luò)設(shè)備與目的網(wǎng)絡(luò)設(shè)備之間的IP網(wǎng)絡(luò)上,建立一條邏輯隧道,將用戶側(cè)報(bào)文經(jīng)過(guò)特定的封裝后通過(guò)這條隧道轉(zhuǎn)發(fā)。從用戶的角度來(lái)看,接入網(wǎng)絡(luò)的服務(wù)器就像是連接到了一個(gè)虛擬的二層交換機(jī)的不同端口上(可把藍(lán)色虛框表示的數(shù)據(jù)中心VXLAN網(wǎng)絡(luò)看成一個(gè)二層虛擬交換機(jī)),可以方便地通信。

圖1-1 VXLAN是一種隧道技術(shù)

VXLAN的原理和作用是什么

VXLAN已經(jīng)成為當(dāng)前構(gòu)建數(shù)據(jù)中心的主流技術(shù),是因?yàn)樗芎芎玫貪M足數(shù)據(jù)中心里虛擬機(jī)動(dòng)態(tài)遷移和多租戶等需求。

為什么需要VXLAN

為什么需要VXLAN呢?這和數(shù)據(jù)中心服務(wù)器側(cè)的虛擬化趨勢(shì)緊密相關(guān),一方面服務(wù)器虛擬化后出現(xiàn)了虛擬機(jī)動(dòng)態(tài)遷移,要求提供一個(gè)無(wú)障礙接入的網(wǎng)絡(luò);另一方面,數(shù)據(jù)中心規(guī)模越發(fā)龐大,租戶數(shù)量激增,需要網(wǎng)絡(luò)提供隔離海量租戶的能力。采用VXLAN可以滿足上述兩個(gè)關(guān)鍵需求。

虛擬機(jī)動(dòng)態(tài)遷移,要求提供一個(gè)無(wú)障礙接入的網(wǎng)絡(luò)

什么是服務(wù)器虛擬化技術(shù)?

傳統(tǒng)的數(shù)據(jù)中心物理服務(wù)器利用率太低,平均只有10%~15%,浪費(fèi)了大量的電力能源和機(jī)房資源,所以出現(xiàn)了服務(wù)器虛擬化技術(shù)。如圖1-2所示,服務(wù)器虛擬化技術(shù)是把一臺(tái)物理服務(wù)器虛擬化成多臺(tái)邏輯服務(wù)器,這種邏輯服務(wù)器被稱為虛擬機(jī)(VM)。每個(gè)VM都可以獨(dú)立運(yùn)行,有自己的操作系統(tǒng)、APP,當(dāng)然也有自己獨(dú)立的MAC地址和IP地址,它們通過(guò)服務(wù)器內(nèi)部的虛擬交換機(jī)(vSwitch)與外部實(shí)體網(wǎng)絡(luò)連接。

圖1-2 服務(wù)器虛擬化示意

VXLAN的原理和作用是什么

通過(guò)服務(wù)器虛擬化,可以有效地提高服務(wù)器的利用率,降低能源消耗,降低數(shù)據(jù)中心的運(yùn)營(yíng)成本,所以虛擬化技術(shù)目前得到了廣泛的應(yīng)用。

什么是虛擬機(jī)動(dòng)態(tài)遷移?

所謂虛擬機(jī)動(dòng)態(tài)遷移,就是在保證虛擬機(jī)上服務(wù)正常運(yùn)行的同時(shí),將一個(gè)虛擬機(jī)系統(tǒng)從一個(gè)物理服務(wù)器移動(dòng)到另一個(gè)物理服務(wù)器的過(guò)程。該過(guò)程對(duì)于最終用戶來(lái)說(shuō)是無(wú)感知的,從而使得管理員能夠在不影響用戶正常使用的情況下,靈活調(diào)配服務(wù)器資源,或者對(duì)物理服務(wù)器進(jìn)行維修和升級(jí)。

在服務(wù)器虛擬化后,虛擬機(jī)動(dòng)態(tài)遷移變得常態(tài)化,為了保證遷移時(shí)業(yè)務(wù)不中斷,就要求在虛擬機(jī)遷移時(shí),不僅虛擬機(jī)的IP地址不變,而且虛擬機(jī)的運(yùn)行狀態(tài)也必須保持原狀(例如TCP會(huì)話狀態(tài)),所以虛擬機(jī)的動(dòng)態(tài)遷移只能在同一個(gè)二層域中進(jìn)行,而不能跨二層域遷移。

如圖1-3所示,傳統(tǒng)的二三層網(wǎng)絡(luò)架構(gòu)限制了虛擬機(jī)的動(dòng)態(tài)遷移范圍,遷移只能在一個(gè)較小的局部范圍內(nèi)進(jìn)行,應(yīng)用受到了極大的限制。

圖1-3 傳統(tǒng)的二三層網(wǎng)絡(luò)架構(gòu)限制了虛擬機(jī)的動(dòng)態(tài)遷移范圍

VXLAN的原理和作用是什么

為了打破這種限制,實(shí)現(xiàn)虛擬機(jī)的大范圍甚至跨地域的動(dòng)態(tài)遷移,就要求把VM遷移可能涉及的所有服務(wù)器都納入同一個(gè)二層網(wǎng)絡(luò)域,這樣才能實(shí)現(xiàn)VM的大范圍無(wú)障礙遷移。

VXLAN如何滿足虛擬機(jī)動(dòng)態(tài)遷移時(shí)對(duì)網(wǎng)絡(luò)的要求?

眾所周知,同一臺(tái)二層交換機(jī)可以實(shí)現(xiàn)下掛服務(wù)器之間的二層通信,而且服務(wù)器從該二層交換機(jī)的一個(gè)端口遷移到另一個(gè)端口時(shí),IP地址是可以保持不變的。這樣就可以滿足虛擬機(jī)動(dòng)態(tài)遷移的需求了。VXLAN的設(shè)計(jì)理念和目標(biāo)正是由此而來(lái)的。

從上一個(gè)小節(jié)我們可以知道,VXLAN本質(zhì)上是一種隧道技術(shù),當(dāng)源和目的之間有通信需求時(shí),便在數(shù)據(jù)中心IP網(wǎng)絡(luò)之上創(chuàng)建一條虛擬的隧道,透明轉(zhuǎn)發(fā)用戶數(shù)據(jù)。而數(shù)據(jù)中心內(nèi)相互通信的需求眾多,這種隧道的建立方式幾乎是全互聯(lián)形態(tài)才能滿足通信需求。

VXLAN可以提供一套方法論,在數(shù)據(jù)中心IP網(wǎng)絡(luò)基礎(chǔ)上,構(gòu)建一張全互聯(lián)的二層隧道虛擬網(wǎng)絡(luò),保證任意兩點(diǎn)之間都能通過(guò)VXLAN隧道來(lái)通信,并忽略底層網(wǎng)絡(luò)的結(jié)構(gòu)和細(xì)節(jié)。從服務(wù)器的角度看,VXLAN為它們將整個(gè)數(shù)據(jù)中心基礎(chǔ)網(wǎng)絡(luò)虛擬成了一臺(tái)巨大的“二層交換機(jī)”,所有服務(wù)器都連接在這臺(tái)虛擬二層交換機(jī)上。而基礎(chǔ)網(wǎng)絡(luò)之內(nèi)如何轉(zhuǎn)發(fā)都是這臺(tái)“巨大交換機(jī)”內(nèi)部的事情,服務(wù)器完全無(wú)需關(guān)心。

圖1-4 VXLAN將整個(gè)數(shù)據(jù)中心基礎(chǔ)網(wǎng)絡(luò)虛擬成了一臺(tái)巨大的“二層交換機(jī)”

VXLAN的原理和作用是什么

數(shù)據(jù)中心租戶數(shù)量激增,要求提供一個(gè)可隔離海量租戶的網(wǎng)絡(luò)

眾所周知,在傳統(tǒng)的VLAN網(wǎng)絡(luò)中,標(biāo)準(zhǔn)定義所支持的可用VLAN數(shù)量只有4000個(gè)左右。服務(wù)器虛擬化后,一臺(tái)物理服務(wù)器中承載了多臺(tái)虛擬機(jī),每個(gè)虛擬機(jī)都有獨(dú)立的IP地址和MAC地址,相當(dāng)于接入數(shù)據(jù)中心的服務(wù)器成倍擴(kuò)大了。另外,公有云或其它大型虛擬化云數(shù)據(jù)中心動(dòng)輒需容納上萬(wàn)甚至更多租戶,VLAN的能力顯然已經(jīng)力不從心。

VXLAN如何來(lái)解決上述問(wèn)題呢?VXLAN在VXLAN幀頭中引入了類似VLAN ID的網(wǎng)絡(luò)標(biāo)識(shí),稱為VXLAN網(wǎng)絡(luò)標(biāo)識(shí)VNI(VXLAN Network ID),由24比特組成,理論上可支持多達(dá)16M的VXLAN段,從而滿足了大規(guī)模不同網(wǎng)絡(luò)之間的標(biāo)識(shí)、隔離需求。下文我們會(huì)介紹VNI的詳細(xì)作用。

VXLAN與VLAN之間有何不同

VLAN作為傳統(tǒng)的網(wǎng)絡(luò)隔離技術(shù),在標(biāo)準(zhǔn)定義中VLAN的數(shù)量只有4000個(gè)左右,無(wú)法滿足大型數(shù)據(jù)中心的租戶間隔離需求。另外,VLAN的二層范圍一般較小且固定,無(wú)法支持虛擬機(jī)大范圍的動(dòng)態(tài)遷移。

VXLAN完美地彌補(bǔ)了VLAN的上述不足,一方面通過(guò)VXLAN中的24比特VNI字段(如圖1-5所示),提供多達(dá)16M租戶的標(biāo)識(shí)能力,遠(yuǎn)大于VLAN的4000;另一方面,VXLAN本質(zhì)上在兩臺(tái)交換機(jī)之間構(gòu)建了一條穿越數(shù)據(jù)中心基礎(chǔ)IP網(wǎng)絡(luò)的虛擬隧道,將數(shù)據(jù)中心網(wǎng)絡(luò)虛擬成一個(gè)巨型“二層交換機(jī)”,滿足虛擬機(jī)大范圍動(dòng)態(tài)遷移的需求。

雖然從名字上看,VXLAN是VLAN的一種擴(kuò)展協(xié)議,但VXLAN構(gòu)建虛擬隧道的本領(lǐng)已經(jīng)與VLAN迥然不同了。

下面就讓我們來(lái)看下,VXLAN報(bào)文到底長(zhǎng)啥樣。

圖1-5 VXLAN報(bào)文格式(以外層IP頭為IPv4格式為例)

VXLAN的原理和作用是什么

如上圖所示,VTEP對(duì)VM發(fā)送的原始以太幀(Original L2 Frame)進(jìn)行了以下“包裝”:

  • VXLAN Header

增加VXLAN頭(8字節(jié)),其中包含24比特的VNI字段,用來(lái)定義VXLAN網(wǎng)絡(luò)中不同的租戶。此外,還包含VXLAN Flags(8比特,取值為00001000)和兩個(gè)保留字段(分別為24比特和8比特)。

  • UDP Header

VXLAN頭和原始以太幀一起作為UDP的數(shù)據(jù)。UDP頭中,目的端口號(hào)(VXLAN Port)固定為4789,源端口號(hào)(UDP Src. Port)是原始以太幀通過(guò)哈希算法計(jì)算后的值。

  • Outer IP Header

封裝外層IP頭。其中,源IP地址(Outer Src. IP)為源VM所屬VTEP的IP地址,目的IP地址(Outer Dst. IP)為目的VM所屬VTEP的IP地址。

  • Outer MAC Header

封裝外層以太頭。其中,源MAC地址(Src. MAC Addr.)為源VM所屬VTEP的MAC地址,目的MAC地址(Dst. MAC Addr.)為到達(dá)目的VTEP的路徑中下一跳設(shè)備的MAC地址。

VXLAN隧道是如何建立的

本節(jié)將為您介紹VXLAN隧道的建立過(guò)程,并在這個(gè)過(guò)程中更好地理解VXLAN的工作原理。

什么是VXLAN中的VTEP和VNI

下面讓我們來(lái)進(jìn)一步了解VXLAN的網(wǎng)絡(luò)模型以及一些常見(jiàn)的概念。如圖1-6所示,兩臺(tái)服務(wù)器之間通過(guò)VXLAN網(wǎng)絡(luò)進(jìn)行通信。

圖1-6 VXLAN網(wǎng)絡(luò)模型示意

VXLAN的原理和作用是什么

從上圖中可以發(fā)現(xiàn),VXLAN在兩臺(tái)TOR交換機(jī)之間建立了一條隧道,將服務(wù)器發(fā)出的原始數(shù)據(jù)幀加以“包裝”,好讓原始報(bào)文可以在承載網(wǎng)絡(luò)(比如IP網(wǎng)絡(luò))上傳輸。當(dāng)?shù)竭_(dá)目的服務(wù)器所連接的TOR交換機(jī)后,離開(kāi)VXLAN隧道,并將原始數(shù)據(jù)幀恢復(fù)出來(lái),繼續(xù)轉(zhuǎn)發(fā)給目的服務(wù)器。

另外,VXLAN網(wǎng)絡(luò)中出現(xiàn)了一些傳統(tǒng)數(shù)據(jù)中心網(wǎng)絡(luò)中沒(méi)有的新元素,如VTEP、VNI等,它們的作用是什么呢?下面將向您介紹這幾個(gè)新元素。

什么是VXLAN VTEP

如圖1-6所示,VTEP(VXLAN Tunnel Endpoints,VXLAN隧道端點(diǎn))是VXLAN網(wǎng)絡(luò)的邊緣設(shè)備,是VXLAN隧道的起點(diǎn)和終點(diǎn),VXLAN對(duì)用戶原始數(shù)據(jù)幀的封裝和解封裝均在VTEP上進(jìn)行。

VTEP是VXLAN網(wǎng)絡(luò)中絕對(duì)的主角,VTEP既可以是一**立的網(wǎng)絡(luò)設(shè)備(比如華為的CloudEngine系列交換機(jī)),也可以是在服務(wù)器中的虛擬交換機(jī)。源服務(wù)器發(fā)出的原始數(shù)據(jù)幀,在VTEP上被封裝成VXLAN格式的報(bào)文,并在IP網(wǎng)絡(luò)中傳遞到另外一個(gè)VTEP上,并經(jīng)過(guò)解封轉(zhuǎn)還原出原始的數(shù)據(jù)幀,最后轉(zhuǎn)發(fā)給目的服務(wù)器。

VTEP在VXLAN隧道的建立和轉(zhuǎn)發(fā)過(guò)程中的詳細(xì)工作,可以參見(jiàn)下文的VXLAN隧道是如何建立的

什么是VXLAN VNI

前文提到,以太網(wǎng)數(shù)據(jù)幀中VLAN只占了12比特的空間,這使得VLAN的隔離能力在數(shù)據(jù)中心網(wǎng)絡(luò)中力不從心。而VNI的出現(xiàn),就是專門解決這個(gè)問(wèn)題的。

如圖1-6所示,VNI(VXLAN Network Identifier,VXLAN 網(wǎng)絡(luò)標(biāo)識(shí)符),VNI是一種類似于VLAN ID的用戶標(biāo)識(shí),一個(gè)VNI代表了一個(gè)租戶,屬于不同VNI的虛擬機(jī)之間不能直接進(jìn)行二層通信。如圖1-5所示,VXLAN報(bào)文封裝時(shí),給VNI分配了24比特的長(zhǎng)度空間,使其可以支持海量租戶的隔離。

VNI在VXLAN隧道的建立和轉(zhuǎn)發(fā)過(guò)程中的詳細(xì)工作,可以參見(jiàn)下文的VXLAN隧道是如何建立的

另外,在分布式網(wǎng)關(guān)部署場(chǎng)景下,VNI還可分為二層VNI和三層VNI,它們的作用不同:

  • 二層VNI是普通的VNI,以1:1方式映射到廣播域BD,實(shí)現(xiàn)VXLAN報(bào)文同子網(wǎng)的轉(zhuǎn)發(fā)(詳情可參見(jiàn)下文的什么是“同一大二層域”)。

  • 三層VNI和VPN實(shí)例進(jìn)行關(guān)聯(lián),用于VXLAN報(bào)文跨子網(wǎng)的轉(zhuǎn)發(fā)(三層VNI的工作詳情將在另外一篇EVPN相關(guān)的文檔中展開(kāi)描述)。

哪些VTEP之間需要建立VXLAN隧道

一條VXLAN隧道是由兩個(gè)VTEP來(lái)確定建立的。數(shù)據(jù)中心網(wǎng)絡(luò)中存在很多個(gè)VTEP,如圖1-7所示,那么哪些VTEP間需要建立VXLAN隧道呢?

圖1-7 建立VXLAN隧道示意圖(1)

VXLAN的原理和作用是什么

如前所述,通過(guò)VXLAN隧道,“二層域”可以突破物理上的界限,實(shí)現(xiàn)大二層網(wǎng)絡(luò)中VM之間的通信。所以,連接在不同VTEP上的VM之間如果有“大二層”互通的需求,這兩個(gè)VTEP之間就需要建立VXLAN隧道。換言之,同一大二層域內(nèi)的VTEP之間都需要建立VXLAN隧道。

例如,假設(shè)圖1-7中VTEP_1連接的VM、VTEP_2連接的VM以及VTEP_3連接的VM之間需要“大二層”互通,那VTEP_1、VTEP_2和VTEP_3之間就需要兩兩建立VXLAN隧道,如圖1-8所示。

圖1-8 建立VXLAN隧道示意圖(2)

VXLAN的原理和作用是什么

什么是“同一大二層域”

上文提到的“同一大二層域”,就類似于傳統(tǒng)網(wǎng)絡(luò)中VLAN(虛擬局域網(wǎng))的概念,只不過(guò)在VXLAN網(wǎng)絡(luò)中,它有另外一個(gè)名字,叫做Bridge-Domain,簡(jiǎn)稱BD。

我們知道,不同的VLAN是通過(guò)VLAN ID來(lái)進(jìn)行區(qū)分的,那不同的BD是如何進(jìn)行區(qū)分的呢?其實(shí)前面已經(jīng)提到了,就是通過(guò)VNI來(lái)區(qū)分的。對(duì)于CloudEngine系列交換機(jī)而言,BD與VNI是1:1的映射關(guān)系,這種映射關(guān)系是通過(guò)在VTEP設(shè)備上配置命令行建立起來(lái)的,配置樣例如下:

bridge-domain 10   //表示創(chuàng)建一個(gè)“大二層廣播域”BD,其編號(hào)為10
 vxlan vni 5000  //表示在BD 10下,指定與之關(guān)聯(lián)的VNI為5000
#

VTEP設(shè)備會(huì)根據(jù)以上配置生成BD與VNI的映射關(guān)系表,該映射表可以通過(guò)命令行查看,如下所示:

<HUAWEI> display vxlan vniNumber of vxlan vni : 1 
VNI            BD-ID            State  
--------------------------------------- 
5000           10               up

有了映射表后,進(jìn)入VTEP的報(bào)文就可以根據(jù)自己所屬的BD來(lái)確定報(bào)文在進(jìn)行VXLAN封裝時(shí),該添加哪個(gè)VNI標(biāo)識(shí)。那么,報(bào)文根據(jù)什么來(lái)確定自己屬于哪個(gè)BD呢?

如何確定報(bào)文屬于哪個(gè)BD

這里要先澄清下,VTEP只是交換機(jī)承擔(dān)的一個(gè)角色而已,只是交換機(jī)功能的一部分。也就是說(shuō),并非所有進(jìn)入到交換機(jī)的報(bào)文都會(huì)走VXLAN隧道(也可能報(bào)文就是走普通的二三層轉(zhuǎn)發(fā)流程)。所以,我們?cè)诨卮稹叭绾未_定報(bào)文屬于哪個(gè)BD”之前,必須先要回答“哪些報(bào)文要進(jìn)入VXLAN隧道”。

哪些報(bào)文要進(jìn)入VXLAN隧道?

回答這個(gè)問(wèn)題之前,不妨先讓我們回想一下VLAN技術(shù)中,交換機(jī)對(duì)于接收和發(fā)送的報(bào)文是如何進(jìn)行處理的。報(bào)文要進(jìn)入交換機(jī)進(jìn)行下一步處理,首先得先過(guò)接口這一關(guān),可以說(shuō)接口掌控著對(duì)報(bào)文的“生殺大權(quán)”。傳統(tǒng)網(wǎng)絡(luò)中定義了三種不同類型的接口:Access、Trunk、Hybrid。這三種類型的接口雖然應(yīng)用場(chǎng)景不同,但它們的最終目的是一樣的:一是根據(jù)配置來(lái)檢查哪些報(bào)文是允許通過(guò)的;二是判斷對(duì)檢查通過(guò)的報(bào)文做怎樣的處理。

其實(shí)在VXLAN網(wǎng)絡(luò)中,VTEP上的接口也承擔(dān)著類似的任務(wù),只不過(guò)在CloudEngine系列交換機(jī)中,這里的接口不是物理接口,而是一個(gè)叫做“二層子接口”的邏輯接口。類似的,二層子接口主要做兩件事:一是根據(jù)配置來(lái)檢查哪些報(bào)文需要進(jìn)入VXLAN隧道;二是判斷對(duì)檢查通過(guò)的報(bào)文做怎樣的處理。在二層子接口上,可以根據(jù)需要定義不同的流封裝類型(類似于傳統(tǒng)網(wǎng)絡(luò)中不同的接口類型)。CloudEngine系列交換機(jī)目前支持的流封裝類型有dot1q、untag、qinq和default四種類型:

  • dot1q:對(duì)于帶有一層VLAN Tag的報(bào)文,該類型接口只接收與指定VLAN Tag匹配的報(bào)文;對(duì)于帶有兩層VLAN Tag的報(bào)文,該類型接口只接收外層VLAN Tag與指定VLAN Tag匹配的報(bào)文。

  • untag:該類型接口只接收不帶VLAN Tag的報(bào)文。

  • qinq:該類型接口只接收帶有指定兩層VLAN Tag的報(bào)文。

  • default:允許接口接收所有報(bào)文,不區(qū)分報(bào)文中是否帶VLAN Tag。不論是對(duì)原始報(bào)文進(jìn)行VXLAN封裝,還是解封裝VXLAN報(bào)文,該類型接口都不會(huì)對(duì)原始報(bào)文進(jìn)行任何VLAN Tag處理,包括添加、替換或剝離。

除二層子接口外,還可以將VLAN作為業(yè)務(wù)接入點(diǎn)。將VLAN綁定到廣播域BD后,加入該VLAN的接口即為VXLAN業(yè)務(wù)接入點(diǎn),進(jìn)入接口的報(bào)文由VXLAN隧道處理。

將二層子接口加入BD

現(xiàn)在我們?cè)賮?lái)回答“如何確定報(bào)文屬于哪個(gè)BD”就非常簡(jiǎn)單了。其實(shí),只要將二層子接口加入指定的BD,然后根據(jù)二層子接口上的配置,設(shè)備就可以確定報(bào)文屬于哪個(gè)BD啦!

比如圖1-9所示的組網(wǎng),一臺(tái)虛擬化服務(wù)器中有兩個(gè)不同VLAN的虛擬機(jī)VM1(VLAN 10)和VM2(VLAN 20),它們與其他虛擬機(jī)通信時(shí)需要接入VXLAN網(wǎng)絡(luò)。此時(shí)我們可以分別在VTEP的物理接口10GE 1/0/1上,分別針對(duì)VM1和VM2封裝不同的二層子接口,并將其分別加入不同的BD。這樣后續(xù)VM1和VM2的流量將會(huì)進(jìn)入不同的VXLAN隧道繼續(xù)轉(zhuǎn)發(fā)。

在這個(gè)舉例中,vSwitch的上行口配置成Trunk模式,且PVID為20。這樣vSwitch發(fā)給VTEP的報(bào)文中,既有帶tag的VM1流量,又有untag的VM2流量,此時(shí)在VTEP的接入口上創(chuàng)建兩個(gè)二層子接口,分別配置為dot1q和untag的封裝類型。

圖1-9 將二層子接口加入BD

VXLAN的原理和作用是什么

下面就基于上圖,結(jié)合CloudEngine交換機(jī)上的配置舉例進(jìn)行說(shuō)明。

在CloudEngine交換機(jī)的接入物理接口10GE 1/0/1上,分別創(chuàng)建二層子接口10GE 1/0/1.1和10GE 1/0/1.2,并分別配置其流封裝類型為dot1q和untag。

interface 10GE1/0/1.1 mode l2   //創(chuàng)建二層子接口10GE1/0/1.1
 encapsulation dot1q vid 10   //只允許攜帶VLAN Tag 10的報(bào)文進(jìn)入VXLAN隧道
 bridge-domain 10   //指定報(bào)文進(jìn)入的是BD 10
#
interface 10GE1/0/1.2 mode l2   //創(chuàng)建二層子接口10GE1/0/1.2
 encapsulation untag   //只允許不攜帶VLAN Tag的報(bào)文進(jìn)入VXLAN隧道
 bridge-domain 20   //指定報(bào)文進(jìn)入的是BD 20
#

VXLAN隧道是怎么建立的

現(xiàn)在,我們可以來(lái)看下VXLAN隧道是怎么建立起來(lái)的。一般而言,隧道的建立不外乎手工方式和自動(dòng)方式兩種。

手工方式建立VXLAN隧道

這種方式需要用戶手動(dòng)指定VXLAN隧道的源IP為本端VTEP的IP、目的IP為對(duì)端VTEP的IP,也就是人為地在本端VTEP和對(duì)端VTEP之間建立靜態(tài)VXLAN隧道。

對(duì)于CloudEngine系列交換機(jī),以上配置是在NVE(Network Virtualization Edge)接口下完成的,配置舉例如下:

interface Nve1   //創(chuàng)建邏輯接口NVE 1
 source 1.1.1.1   //配置源VTEP的IP地址(推薦使用Loopback接口的IP地址)
 vni 5000 head-end peer-list 2.2.2.2
 vni 5000 head-end peer-list 2.2.2.3
#

其中,vni 5000 head-end peer-list 2.2.2.2vni 5000 head-end peer-list 2.2.2.3的配置,表示屬于VNI 5000的對(duì)端VTEP有兩個(gè),IP地址分別為2.2.2.2和2.2.2.3。根據(jù)這兩條配置,VTEP上會(huì)生成如下所示的一張表:

<HUAWEI> display vxlan vni 5000 verbose
    BD ID                 : 10
    State                  : up
    NVE                    : 288
    Source Address      : 1.1.1.1
    Source IPv6 Address    : -
    UDP Port               : 4789
    BUM Mode               : head-end
    Group Address          : -
    Peer List            : 2.2.2.2 2.2.2.3
    IPv6 Peer List         : -

根據(jù)上表中的Peer List,本端VTEP就可以知道屬于同一BD(或同一VNI)的對(duì)端VTEP都有哪些,這也就決定了同一大二層廣播域的范圍。當(dāng)VTEP收到BUM(Broadcast&Unknown-unicast&Multicast,廣播&未知單播&組播)報(bào)文時(shí),會(huì)將報(bào)文復(fù)制并發(fā)送給Peer List中所列的所有對(duì)端VTEP(這就好比廣播報(bào)文在VLAN內(nèi)廣播)。因此,這張表也被稱為“頭端復(fù)制列表”。當(dāng)VTEP收到已知單播報(bào)文時(shí),會(huì)根據(jù)VTEP上的MAC表來(lái)確定報(bào)文要從哪條VXLAN隧道走。而此時(shí)Peer List中所列的對(duì)端,則充當(dāng)了MAC表中“出接口”的角色。

在后面的報(bào)文轉(zhuǎn)發(fā)流程中,你將會(huì)看到頭端復(fù)制列表是如何在VXLAN網(wǎng)絡(luò)中指導(dǎo)報(bào)文進(jìn)行轉(zhuǎn)發(fā)的。

自動(dòng)方式建立VXLAN隧道

自動(dòng)方式下VXLAN隧道的建立需要借助于EVPN(Ethernet VPN)協(xié)議,這部分內(nèi)容請(qǐng)參見(jiàn)《什么是EVPN》。

如何確定報(bào)文要進(jìn)哪條隧道?

屬于同一BD的VXLAN隧道可能不止一條,比如上文的頭端復(fù)制列表中,同一個(gè)源端VTEP(1.1.1.1)對(duì)應(yīng)了兩個(gè)對(duì)端VTEP(2.2.2.2和2.2.2.3)。那就帶來(lái)了另一個(gè)問(wèn)題,報(bào)文到底應(yīng)該走哪一條隧道呢?

我們知道,基本的二三層轉(zhuǎn)發(fā)中,二層轉(zhuǎn)發(fā)依賴的是MAC表,如果沒(méi)有對(duì)應(yīng)的MAC條目,則主機(jī)發(fā)送ARP廣播報(bào)文請(qǐng)求對(duì)端的MAC地址;三層轉(zhuǎn)發(fā)依賴的是FIB表。在VXLAN中,其實(shí)也是同樣的道理。

上述內(nèi)容就是VXLAN的原理和作用是什么,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI