可擴(kuò)展局域網(wǎng) (VXLAN) 簡介
虛擬可擴(kuò)展局域網(wǎng) (VXLAN) 是一種隧道協(xié)議,可通過 IP(第 3 層)網(wǎng)絡(luò)對(duì)以太網(wǎng)(第 2 層)流量進(jìn)行隧道傳輸。
由于三個(gè)主要原因,傳統(tǒng)的第 2 層網(wǎng)絡(luò)存在問題:
生成樹。
VLAN 數(shù)量有限。
大型 MAC 地址表。
生成樹阻止任何冗余鏈接以避免循環(huán)。阻止鏈接以創(chuàng)建無環(huán)路拓?fù)淇梢酝瓿晒ぷ鳎@也意味著我們?yōu)闊o法使用的鏈接付費(fèi)。我們可以切換到第 3 層網(wǎng)絡(luò),但某些技術(shù)需要第 2 層網(wǎng)絡(luò)。
VLAN ID 是 12 位的,這意味著我們可以創(chuàng)建 4094 個(gè) VLAN(0 和 4095 保留)。只有 4094 個(gè)可用 VLAN 對(duì)數(shù)據(jù)中心來說是個(gè)問題。例如,假設(shè)我們有一個(gè)擁有 500 個(gè)客戶的服務(wù)提供商。有了 4094 個(gè)可用 VLAN,他們只能為每個(gè)客戶提供 8 個(gè) VLAN。
由于服務(wù)器虛擬化,我們交換機(jī)的 MAC 地址表中的地址數(shù)量呈指數(shù)增長。在服務(wù)器虛擬化之前,交換機(jī)只需為每個(gè)交換機(jī)端口學(xué)習(xí)一個(gè) MAC 地址。通過服務(wù)器虛擬化,我們?cè)趩蝹€(gè)物理服務(wù)器上運(yùn)行許多虛擬機(jī) (VM) 或容器。每個(gè) VM 都有一個(gè)虛擬 NIC 和一個(gè)虛擬 MAC 地址。交換機(jī)必須在單個(gè)交換機(jī)端口上學(xué)習(xí)許多 MAC 地址。
數(shù)據(jù)中心的架頂式 (ToR) 交換機(jī)可以連接到 24 或 48 臺(tái)物理服務(wù)器。一個(gè)數(shù)據(jù)中心可能有許多機(jī)架,因此每個(gè)交換機(jī)都必須存儲(chǔ)所有相互通信的虛擬機(jī)的 MAC 地址。與沒有服務(wù)器虛擬化的網(wǎng)絡(luò)相比,我們需要更大的 MAC 地址表。
在本課中,我將解釋 VXLAN 是什么,它是如何工作的,以及它如何解決上述第 2 層問題。
VXLAN 使用覆蓋和底層網(wǎng)絡(luò):
覆蓋網(wǎng)絡(luò)是在物理底層網(wǎng)絡(luò)之上運(yùn)行的虛擬網(wǎng)絡(luò)。即使你以前從未聽說過這個(gè)術(shù)語,你也可能見過它。GRE 隧道是覆蓋網(wǎng)絡(luò)的一個(gè)簡單示例。GRE 隧道在物理底層網(wǎng)絡(luò)之上運(yùn)行。
使用 VXLAN,覆蓋是第 2 層以太網(wǎng)。底層網(wǎng)絡(luò)是第 3 層 IP 網(wǎng)絡(luò)。底層網(wǎng)絡(luò)的另一個(gè)名稱是傳輸網(wǎng)絡(luò)。
底層網(wǎng)絡(luò)簡單;它唯一的工作是從 A 到 B 獲取數(shù)據(jù)包。我們?cè)谶@里不使用任何第 2 層,只使用第 3 層。當(dāng)我們使用第 3 層時(shí),我們可以使用 OSPF 或 EIGRP 之類的 IGP,并在冗余鏈路上對(duì)流量進(jìn)行負(fù)載平衡。
另一個(gè)優(yōu)點(diǎn)是overlay和underlay網(wǎng)絡(luò)是獨(dú)立的。覆蓋網(wǎng)絡(luò)是虛擬的,需要一個(gè)底層網(wǎng)絡(luò),但您在覆蓋網(wǎng)絡(luò)中所做的任何更改都不會(huì)影響底層網(wǎng)絡(luò)。您可以在底層網(wǎng)絡(luò)中添加和刪除鏈接,只要您的路由協(xié)議可以到達(dá)目的地,您的覆蓋網(wǎng)絡(luò)將保持不變。
VXLAN 網(wǎng)絡(luò)標(biāo)識(shí)符 (VNI)標(biāo)識(shí) VXLAN ,并具有與常規(guī) VLAN 的 VLAN ID 類似的功能。我們?yōu)?VNI使用24 位,這意味著我們可以創(chuàng)建 16,777,215(約 1600 萬)個(gè) VXLAN。與那些具有 12 位 VLAN ID 的 4094 個(gè) VLAN 相比,這已經(jīng)很多了。我們可以創(chuàng)建大量的 VXLAN,這意味著擁有數(shù)千名客戶的大型服務(wù)提供商可以根據(jù)需要為每個(gè)客戶使用盡可能多的 VXLAN。
VXLAN 隧道端點(diǎn) (VTEP)是負(fù)責(zé)封裝和解封裝第 2 層流量的設(shè)備。該設(shè)備是覆蓋網(wǎng)絡(luò)和底層網(wǎng)絡(luò)之間的連接。VTEP 有兩種形式:
軟件(基于主機(jī))
硬件(網(wǎng)關(guān))
讓我們看看這兩個(gè)選項(xiàng)。
當(dāng)我談?wù)撝鳈C(jī)時(shí),我指的是虛擬機(jī)管理程序,例如 VMWare 的 ESXi 或 Microsoft 的 Hyper-V。這些管理程序使用虛擬交換機(jī),其中一些支持 VXLAN。這是一個(gè)插圖:
VXLAN 隧道位于管理程序的虛擬交換機(jī)之間。底層網(wǎng)絡(luò)不知道 VXLAN。
硬件 VTEP 是支持 VXLAN 的路由器、交換機(jī)或防火墻。我們也將硬件 VTEP 稱為VXLAN 網(wǎng)關(guān),因?yàn)樗鼘⒊R?guī) VLAN 和 VXLAN 段組合到單個(gè)第 2 層域中。一些交換機(jī)通過ASIC 支持 VXLAN,提供比軟件 VTEP 更好的 VXLAN 性能。這是它的樣子:
在上圖中,VXLAN 隧道位于物理交換機(jī)之間。連接到物理交換機(jī)的設(shè)備不知道 VXLAN。
每個(gè) VTEP 有兩種接口類型:
VTEP IP 接口:將 VTEP 連接到具有唯一 IP 地址的底層網(wǎng)絡(luò)。該接口封裝和解封裝以太網(wǎng)幀。
VNI 接口:?在物理接口上保持網(wǎng)絡(luò)流量分離的虛擬接口。類似于 SVI 接口。