亚洲综合图片区自拍_思思91精品国产综合在线观看_一区二区三区欧美_欧美黑人又粗又大_亚洲人成精品久久久久桥本

全面解讀EVPN VxLAN Overlay SDN 技術(shù)原理

2023-05-12 10:07:11 來(lái)源:SDNLAB

VxLAN 數(shù)據(jù)面封裝協(xié)議


【資料圖】

2011 年 8 月,主要由 VMware 與 Cisco 公司草擬并由 IETF 發(fā)布了 RFC 7348 草案《Virtual eXtensible Local Area Network (VXLAN): A Framework for Overlaying Virtualized Layer 2 Networks over Layer 3 Networks》。 VxLAN(Virtual Extensible Local Area Network,虛擬擴(kuò)展本地局域網(wǎng))是 IETF 定義的 NVO3(Network Virtualization over Layer 3)標(biāo)準(zhǔn)技術(shù)之一,從名字可以看出,VxLAN 最初定位于對(duì)傳統(tǒng) VLAN協(xié)議的一種增強(qiáng)替代方案。本質(zhì)是一種 Tunneling(隧道)網(wǎng)絡(luò)傳輸技術(shù),又稱(chēng)為 Overlay 網(wǎng)絡(luò),特點(diǎn)是將 L2 Frame 封裝到 UDPVxLAN Header 中,并在 L3 IP 網(wǎng)絡(luò)中進(jìn)行傳輸(L2 over L3)。 通過(guò) VxLAN 技術(shù)可以將處于不同 L3 Subnets 的 Underlay 網(wǎng)絡(luò)設(shè)備整合到一個(gè)邏輯上的 Overlay 網(wǎng)絡(luò)中。對(duì)于 Overlay 網(wǎng)絡(luò)的終端用戶(hù)而言,這些網(wǎng)絡(luò)設(shè)備似乎 “真實(shí)” 地部署在了同一個(gè) L2 數(shù)據(jù)鏈路層網(wǎng)絡(luò)中,以此來(lái)適應(yīng)大規(guī)模云計(jì)算多租戶(hù)隔離網(wǎng)絡(luò)的需求。

VxLAN 組網(wǎng)拓?fù)浣榻B

如上圖所示,首先介紹構(gòu)建一個(gè) VxLAN 網(wǎng)絡(luò)所需要的組成部分,包括以下 3 組核心元素:

NVE / VTEP / VxLAN Tunnel

VxLAN L2 Gateway / L2 VNI / BD

VxLAN L3 Gateway / L3 VNI / VRF

NVE / VTEP / VxLAN Tunnel

在抽象的 Overlay 網(wǎng)絡(luò)中,NVE(Network Virtualization Edge,網(wǎng)絡(luò)虛擬邊緣節(jié)點(diǎn))是一個(gè)處于 Underlay 網(wǎng)絡(luò)和 Overlay 網(wǎng)絡(luò)交界處的邊緣設(shè)備,提供網(wǎng)絡(luò)虛擬化功能,用于銜接 2 個(gè)不同的網(wǎng)絡(luò)類(lèi)型。 根據(jù)具體的組網(wǎng)環(huán)境,NVE 可以是主機(jī)中運(yùn)行的一個(gè)虛擬網(wǎng)元,也可以是一個(gè)物理網(wǎng)元(e.g. Spine/Leaf 交換機(jī))。在本文中主要討論硬件NVE 的情況。

?軟件 NVE常見(jiàn)的有 OvS Tun Bridge 和 LinuxBridge + Tun 虛擬隧道網(wǎng)卡設(shè)備。

?硬件 NVE常見(jiàn)的有 Spine-Leaf 交換機(jī)設(shè)備。 在具體的 VxLAN Overlay 網(wǎng)絡(luò)中,NVE 需要具備 VTEP(VxLAN Tunnel Endpoints,隧道端點(diǎn))功能,用于完成 VxLAN 協(xié)議棧的封裝/解封裝。兩個(gè) VTEP(local-VTEP 和 remote-VTEP)之間具有 Underlay IP 路由可達(dá)性,繼而可以構(gòu)造一個(gè) L3 之上的 VxLAN Tunnel。 區(qū)別于 VLAN 使用 VLAN ID 來(lái)隔離二層網(wǎng)絡(luò),VxLAN 使用了 VNI(VXLAN Network Identifier,VXLAN 網(wǎng)絡(luò)標(biāo)識(shí)符)來(lái)作為隔離標(biāo)記。在一個(gè) VxLAN Tunnel 中,可用于傳輸若干個(gè)由 VNI 進(jìn)行隔離的 VxLAN 虛擬網(wǎng)絡(luò)。 另外,與 VLAN 網(wǎng)絡(luò)隔離需要通過(guò) L3 Gateway 來(lái)互聯(lián)互通類(lèi)似,在 VxLAN 網(wǎng)絡(luò)隔離中同樣需要 VxLAN Gateway 來(lái)實(shí)現(xiàn) VxLAN 虛擬網(wǎng)絡(luò)與其他類(lèi)型網(wǎng)絡(luò)之間的互聯(lián)互通,而且情況會(huì)更加復(fù)雜。根據(jù)用途的區(qū)別,VxLAN Gateway 大體上可以分為 VxLAN L2 Gateway 和 VxLAN L3 Gateway 這 2 種類(lèi)型,對(duì)應(yīng)的 VNI 也根據(jù)用途被細(xì)分為 L2 VNI 和 L3 VNI 這 2 種類(lèi)型。

VxLAN L2 Gateway / L2 VNI / BD

VxLAN L2 Gateway 用于實(shí)現(xiàn) VxLAN 和 VLAN 之間的互聯(lián)。 在 Leaf NVE 中,為了實(shí)現(xiàn) VxLAN L2 Gateway 的 L2 隔離和轉(zhuǎn)發(fā)而引入了 BD(Bridge Domain)的概念,它是一個(gè)可配置的二層廣播域,類(lèi)似于一個(gè)虛擬網(wǎng)橋設(shè)備。在新建一個(gè) BD Instance 時(shí),通常會(huì)將 BD Instance、L2 VNI、Local VLAN ID 配置為一一對(duì)應(yīng),并且在一個(gè) BD Instance 中會(huì)同時(shí)存在 2 種類(lèi)型的接口:

Overlay 側(cè)接口

是一個(gè)對(duì)內(nèi)的二層接口設(shè)備,更準(zhǔn)確的說(shuō)是一個(gè) Host 上聯(lián) Leaf Port 的二層子接口設(shè)備(e.g. CloudEngine VAP),具有同一個(gè) VLAN ID 的下掛終端(VM/Host)的 Original L2 Frame 會(huì)從此接口進(jìn)入到 VTEP 中進(jìn)行后續(xù)的封裝。

Underlay 側(cè)接口

是一個(gè)對(duì)外的三層接口設(shè)備,會(huì)被分配一個(gè) Underlay IP,與物理網(wǎng)絡(luò)相連。在 Underlay 網(wǎng)絡(luò)中的多個(gè) VTEP 之間具備 IP 路由可達(dá)性,用于構(gòu)建 VxLAN Tunnel。被 VTEP 封裝之后的 VxLAN 封裝包會(huì)從此接口流出進(jìn)入 VxLAN Tunnel 傳輸。 另外,BD Instance 為了能夠 “縫合“ Local VLAN 和 VxLAN Tunnel 這兩段網(wǎng)絡(luò),維護(hù)了 VID-VNID 映射關(guān)系。通過(guò)這樣的方式,VxLAN L2 Gateway 就將 Local VLAN 作為了 VxLAN Tunnel 的接入點(diǎn),所有加入到 Local VLAN 中的終端(VM/Host)L2 流量,就會(huì)進(jìn)入到對(duì)應(yīng)的 VxLAN Tunnel 中。

VxLAN L3 Gateway / L3 VNI / VRF

VxLAN L3 Gateway 用于實(shí)現(xiàn)下列 2 種互聯(lián)場(chǎng)景:

兩個(gè) VNI 不同的 VxLAN 虛擬網(wǎng)絡(luò)之間的互聯(lián)互通。

VxLAN 虛擬網(wǎng)絡(luò)和外部 IP 網(wǎng)絡(luò)之間的互聯(lián)互通。

可見(jiàn),VxLAN L3 Gateway 主要提供了 L3 隔離和轉(zhuǎn)發(fā)功能,具體沿用了 L3 VPN Instance 中的 VRF 技術(shù)。每個(gè) VRF 都具有自己的 Route Tables,類(lèi)似于 Linux Network Namespace,同時(shí)維護(hù)了 VRF 和 L3 VNI 的映射關(guān)系,以此在 VxLAN L3 Gateway 層面實(shí)現(xiàn)了對(duì)不同租戶(hù)之間的 L3 隔離。 另外,在常見(jiàn)的 Spine-Leaf 數(shù)據(jù)中心網(wǎng)絡(luò)架構(gòu)中,根據(jù)將 VxLAN L3 Gateway 部署在 Spine 或者部署在 Leaf 上的不同,又可以再細(xì)分為 2 種不同的 VxLAN 組網(wǎng)方案:

集中式 VxLAN L3 Gateway 組網(wǎng)方案

分布式 VxLAN L3 Gateway 組網(wǎng)方案

下圖中概述性的列舉了這 2 種組網(wǎng)方案的異同。

集中式 VxLAN L3 Gateway 組網(wǎng)方案

在分布的 Leaf 上部署 VxLAN L2 Gateway 功能,在集中的 Spine 上部署 VxLAN L3 Gateway 功能。這意味著所有跨網(wǎng)絡(luò)之間的流量都需要經(jīng)過(guò) Spine 進(jìn)行轉(zhuǎn)發(fā),包括:VxLAN 虛擬網(wǎng)絡(luò)之間,以及 VxLAN 虛擬網(wǎng)絡(luò)與外部 IP 網(wǎng)絡(luò)之間的流量。 該方案的優(yōu)點(diǎn)是跨網(wǎng)絡(luò)流量集中管理,簡(jiǎn)化網(wǎng)關(guān)部署和管理。而缺點(diǎn)是:

轉(zhuǎn)發(fā)路徑并非最優(yōu)

跨網(wǎng)絡(luò)之間的流量都需要在 Spine 上進(jìn)行 L3 繞行,這樣就導(dǎo)致了 Leaf 與 Spine 之間的鏈路上存在冗余的報(bào)文,額外占用了大量的帶寬。

Spine 的 ARP 表項(xiàng)壓力大

所有通過(guò) L3 轉(zhuǎn)發(fā)的 ARP 表項(xiàng)(MAC-IP)都存儲(chǔ)在 Spine 上,當(dāng)終端的數(shù)量越來(lái)越多時(shí),Spine 就容易成為網(wǎng)絡(luò)瓶頸。 所以該方案適用于小型組網(wǎng)環(huán)境。

分布式 VxLAN L3 Gateway 組網(wǎng)方案

在分布的 Leaf 上同時(shí)部署了 VxLAN L2 和 L3 Gateway,而 Spine 只作為常規(guī) L3 轉(zhuǎn)發(fā)節(jié)點(diǎn)并不需要感知 VxLAN 隧道的存在。具有以下特性:

相同 VTEP 下跨網(wǎng)絡(luò)之間的流量在 Leaf 上完成 L3 轉(zhuǎn)發(fā)。

只有不同 VTEP 下跨網(wǎng)絡(luò)之間的流量需要經(jīng)過(guò) Spine 完成 L3 轉(zhuǎn)發(fā)。

另外,只要求 Leaf 學(xué)習(xí)下掛終端的 ARP 表項(xiàng),從而解決了 Spine 規(guī)格帶來(lái)的容量瓶頸問(wèn)題。所以該方案適用于中大規(guī)模(5000 臺(tái)服務(wù)器及以上)的高性能網(wǎng)絡(luò)。 而缺點(diǎn)是網(wǎng)關(guān)部署、故障定位及網(wǎng)絡(luò)運(yùn)維相對(duì)復(fù)雜,通常需要結(jié)合 EVPN Control Plane 來(lái)完成一系列的自動(dòng)化配置工作,例如:基于 BGP Peer 的 VTEP 自動(dòng)發(fā)現(xiàn)、VxLAN Tunnel 自動(dòng)建立,ARP 表項(xiàng)自動(dòng)生成等等。

VxLAN 協(xié)議棧解析

VxLAN 的協(xié)議棧比較簡(jiǎn)單,定義了一種 MAC-in-IP 的報(bào)文封裝格式。

Original L2 Frame

一個(gè)原始且完整的 L2 數(shù)據(jù)幀,是業(yè)務(wù)層發(fā)出(通常是 VM)的實(shí)際 Payload 數(shù)據(jù)。

VxLAN Header(8Bytes)

將 Original L2 Frame 封裝到 VxLAN Header(8Bytes)成為 Overlay Segment。

VxLAN Flags(8bits):標(biāo)記字段,如果 VNI 有效,則固定取值為 00001000。

Reserved(24bits):保留字段,固定取值為全 0。

VNI(VxLAN Network Identifier,24bits):最多支持 16777216(1600 萬(wàn))個(gè)二層隔離網(wǎng)絡(luò)。根據(jù)用途的不同可分為 L2 VNI 和 L3 VNI。

Reserved(8bits):保留字段,固定取值為全 0。

UDP Header(8Bytes)

是 Overlay 和 Underlay 的分界線(xiàn)。UDP 協(xié)議由于其高效率、低占用的特性常被用作隧道封裝協(xié)議的傳輸層。

UDP srcPort(16bits):由 local-VTEP 通過(guò)對(duì) Original L2 Frame 進(jìn)行 HASH 計(jì)算后得出,該特性使得 VxLAN 封裝包在 Receive Site 具備了可行的 HASH-base 負(fù)載均衡處理能力(e.g. ECMP 等價(jià)路由)。

UDP dstPort / VxLAN Port(16bits):缺省取值為 UDP 4789,根據(jù)具體設(shè)備型號(hào)可能支持配置更改。

UDP Length(16bits):指示一個(gè) UDP 數(shù)據(jù)報(bào)的總長(zhǎng)度。

Checksum(16bits):檢驗(yàn)字段。

Outer IP Header(20Bytes)

是 Underlay 的 L3 IP Header 封裝。

srcIP 是 local-VTEP 的 IP 地址。

dstIP 可能是 remote-VTEP 的 IP 單播地址,也可能是用于 BUM 流量的多播/組播地址。

Outer MAC Header

是 Underlay 的 L2 Frame 封裝。dstMAC 和 srcMAC 地址視乎于具體的 Underlay 網(wǎng)絡(luò)拓?fù)洹?

srcMAC 是 local-VTEP 的 MAC 地址;

dstMAC 視乎于具體的 Underlay 以太網(wǎng)絡(luò)拓?fù)洹?/p>

VxLAN 數(shù)據(jù)面轉(zhuǎn)發(fā)原理

同 VNI 的 BUM 報(bào)文轉(zhuǎn)發(fā)場(chǎng)景

BUM(Broadcast,Unknown-unicast,Multicast)是網(wǎng)絡(luò)中常見(jiàn)的 3 種流量類(lèi)型,分別表示:

廣播流量(Broadcast)

指發(fā)送到網(wǎng)絡(luò)中所有設(shè)備的流量,例如:ARP 報(bào)文、DHCP 報(bào)文等。

未知單播流量(Unknown-unicast)

指發(fā)送給網(wǎng)絡(luò)中不存在的設(shè)備的流量,例如:發(fā)往一個(gè)錯(cuò)誤的 MAC 地址的報(bào)文等。當(dāng)交換機(jī)收到一個(gè)未知目的 MAC 地址的報(bào)文時(shí),它需要向除了源端口外的所有端口轉(zhuǎn)發(fā)該報(bào)文,以便讓目的主機(jī)能夠收到該報(bào)文并發(fā)送響應(yīng)。因此,未知單播報(bào)文也是廣播報(bào)文的一種,也會(huì)對(duì)網(wǎng)絡(luò)帶寬造成浪費(fèi)。

組播流量(Multicast)

指發(fā)送給一組目標(biāo)設(shè)備的流量,這些設(shè)備加入到了一個(gè)組播組,組播流量的目的地址也是特定的組播地址,因此對(duì)網(wǎng)絡(luò)帶寬的占用相較于廣播更少一些。 在網(wǎng)絡(luò)中,對(duì)于不同類(lèi)型的 BUM 報(bào)文,交換機(jī)的處理方式也不同,例如,對(duì)于 Broadcast 和 Multicast 報(bào)文,交換機(jī)會(huì)將它們轉(zhuǎn)發(fā)到所有的端口,而對(duì)于 Unknown-unicast 報(bào)文,則只會(huì)將它們轉(zhuǎn)發(fā)到除源端口外的所有端口?;谶@樣的特性,為了簡(jiǎn)單理解,我們可以將 BUM 報(bào)文統(tǒng)稱(chēng)為 Flooding 流量。 在大規(guī)模的 VxLAN 場(chǎng)景中,由于多個(gè) Overlay 虛擬網(wǎng)絡(luò)共享 Underlay 物理網(wǎng)絡(luò),多租戶(hù)情況下,這些 Flooding(洪泛)流量對(duì)物理帶寬資源的占用尤為突出,需要特別的注意。 物理網(wǎng)絡(luò)設(shè)備對(duì) BUM 的處理方式(數(shù)據(jù)包復(fù)制)大體上有 2 種:

頭端復(fù)制(Head-End Replication,HER)

在源頭(即發(fā)送端所在的端口)將 BUM 流量復(fù)制到多個(gè)目的地,每個(gè)目的地對(duì)應(yīng)著一個(gè)收件人(e.g. 一個(gè)接收組播流的客戶(hù)端)。這種方式需要在源端口上復(fù)制和轉(zhuǎn)發(fā)每個(gè)數(shù)據(jù)包,因此可能會(huì)導(dǎo)致性能問(wèn)題和鏈路擁塞。頭端復(fù)制適用于小規(guī)模網(wǎng)絡(luò),常用于數(shù)據(jù)中心的二層網(wǎng)絡(luò)中。

核心復(fù)制(Core Replication,CR)

將 BUM 流量復(fù)制到一組專(zhuān)用的核心設(shè)備,這些設(shè)備負(fù)責(zé)將流量復(fù)制到所有需要它的接收方(e.g. 接收組播流的客戶(hù)端)。這種方式通過(guò)在核心層進(jìn)行復(fù)制,避免了在源端口上進(jìn)行大量的復(fù)制和轉(zhuǎn)發(fā),因此對(duì)網(wǎng)絡(luò)性能的影響更小。核心復(fù)制適用于大規(guī)模網(wǎng)絡(luò),常用于廣域網(wǎng)環(huán)境中。 對(duì)應(yīng)的 VxLAN 硬件 NVE 同樣有 2 種 BUM 報(bào)文處理方式:

VxLAN 頭端復(fù)制 + Underlay 單播路由

由 local-VTEP(源頭設(shè)備)負(fù)責(zé)對(duì)終端(VM/Host)發(fā)出的 BUM 報(bào)文進(jìn)行復(fù)制,并采用 Underlay 單播路由的方式,經(jīng)過(guò) VxLAN Tunnels 將 BUM 傳遞到其他多個(gè) remote-VTEPs 接收。remote-VTEP 接收到 BUM 報(bào)文之后,就不再 Flooding,避免了環(huán)路。

再展開(kāi)一下 Local LAN 流量接入 VxLAN Tunnel 的流程細(xì)節(jié)。如下圖所示,當(dāng) VTEP 接收到終端的攜帶 VLAN 的 BUM 之后,首先會(huì)通過(guò) VLAN ID 匹配到對(duì)應(yīng)的 BD,然后在該 BD 內(nèi)查找 VNI-Tunnel List,最后為 BUM 封裝上不同的 OverlayUnderlay Header 之后向 VNI-Tunnel List 指定的所有 VxLAN Tunnels 發(fā)出。

VxLAN 核心復(fù)制 + Underlay 組播路由

首先將網(wǎng)絡(luò)中所有的 VTEPs 設(shè)備都加入到同一個(gè)組播組中,部署專(zhuān)門(mén)的核心層設(shè)備并通過(guò)組播路由協(xié)議(e.g. PIM)或 IPv6 多播路由協(xié)議(e.g. IGMP )與 VTEPs 建立一個(gè)組播信道和相應(yīng)的組播轉(zhuǎn)發(fā)表項(xiàng)。當(dāng)終端發(fā)出 BUM 報(bào)文后,local-VTEP 會(huì)為其封裝好組播目的 IP 地址,然后進(jìn)入核心層設(shè)備進(jìn)行數(shù)據(jù)復(fù)制,并采用 Underlay 組播的方式,將 BUM 傳遞到同一個(gè)組播組內(nèi)的其他 remote-VTEPs 接收。

同 VNI 的單播報(bào)文轉(zhuǎn)發(fā)場(chǎng)景

同 VNI 的單播報(bào)文轉(zhuǎn)發(fā)場(chǎng)景中,一個(gè) IP 單播報(bào)文的發(fā)送實(shí)際上可以拆分為 3 次轉(zhuǎn)發(fā)流程,分別是:

ARP Request 廣播轉(zhuǎn)發(fā);

ARP Reply 單播轉(zhuǎn)發(fā);

IP 單播轉(zhuǎn)發(fā)。

下面以較為簡(jiǎn)單的 “VxLAN 頭端復(fù)制 + Underlay 單播路由“ 方式為例進(jìn)行介紹:VM_A、VM_B、VM_C 同屬于 VNI 5000,也同屬于 10.1.1.0/24 子網(wǎng)。此時(shí),VM_A 想與 VM_C 進(jìn)行首次通信。

ARP Request 廣播轉(zhuǎn)發(fā)流程

首次通信,VM_A 沒(méi)有 VM_C 的 MAC 地址,所以首先進(jìn)行 ARP Request 廣播轉(zhuǎn)發(fā)流程,請(qǐng)求獲取 VM_C 的 MAC 地址。

VM_A 發(fā)送 srcMAC 為 MAC_A、dstMAC 為 “全 F(廣播)”、srcIP 為 IP_A、dstIP 為 IP_C 的 ARP Request 廣播報(bào)文,請(qǐng)求獲取 VM_C 的 MAC 地址。

VTEP_1 收到 ARP Request 后,根據(jù)二層子接口上的 VLAN 和 DB 配置判斷報(bào)文需要進(jìn)入 VxLAN Tunnel。確定報(bào)文所屬 VNID 后,VTEP_1 首先會(huì)自學(xué)習(xí) MAC_A、VNID 和 Port_1(二層子接口對(duì)應(yīng)的物理接口)的映射關(guān)系,并記錄在本地 MAC Table 中。之后,VTEP_1 會(huì)根據(jù)頭端復(fù)制列表對(duì)報(bào)文進(jìn)行復(fù)制,并分別進(jìn)行 OverlayUnderlay Header 封裝。

封裝的 Outer srcIP 地址為 VTEP_1 的 IP 地址,Outer dstIP 地址為 remote-VTEP(VTEP_2 或 VTEP_3)的 IP 地址;Outer srcMAC 地址為 VTEP_1 的 MAC 地址,而 Outer dstMAC 地址為去往目的 IP 的網(wǎng)絡(luò)中下一跳設(shè)備的 MAC 地址。

根據(jù) Outer MAC/IP 信息,在 Underlay IP 網(wǎng)絡(luò)中進(jìn)行傳輸,直至到達(dá) remote-VTEP。

報(bào)文到達(dá) remote-VTEP 后,對(duì)報(bào)文進(jìn)行解封裝,得到 VM_A 發(fā)送的 Original L2 Frame。同時(shí),remote-VTEP 學(xué)習(xí) VM_A 的 MAC 地址、VNID 和 VTEP_1 的 IP 地址的映射關(guān)系,并記錄在本地 MAC Table 中。之后,remote-VTEP 根據(jù)二層子接口上 BD 和 VLAN 配置對(duì)報(bào)文在 Local LAN 二層域內(nèi)進(jìn)行廣播。

VM_B 或 VM_C 接收到 ARP Request 后,比較報(bào)文中的 dstIP 地址是否為本機(jī)的 IP 地址。VM_B 發(fā)現(xiàn) dstIP 不是本機(jī) IP,故將報(bào)文丟棄;VM_C 發(fā)現(xiàn) dstIP 是本機(jī) IP,則對(duì) ARP Request 做出應(yīng)答。

ARP Reply 單播轉(zhuǎn)發(fā)流程

VM_C 應(yīng)答 ARP Reply 時(shí),由于 VM_C 已經(jīng)知道了 VM_A 的 MAC 地址,所以 ARP Reply 報(bào)文為單播報(bào)文。報(bào)文的 srcMAC 為 MAC_C,dstMAC 為 MAC_A, srcIP 為 IP_C、dstIP 為 IP_A。

VTEP_3 接收到 VM_C 發(fā)送的 ARP Reply 報(bào)文后,同樣先自學(xué)習(xí) MAC_C、VNI 和 Port_3 的映射關(guān)系,并記錄在本地 MAC Table 中。然后 VTEP_3 對(duì)報(bào)文進(jìn)行封裝。

封裝的 Outer srcIP 地址為 VTEP_3 的 IP 地址,Outer dstIP 地址為 VTEP_1 的 IP 地址;Outer srcMAC 地址為 VTEP_3 的 MAC 地址,而 Outer dstMAC 地址為去往目的 IP 的網(wǎng)絡(luò)中下一跳設(shè)備的 MAC 地址。

根據(jù) Outer MAC/IP 信息,在 Underlay IP 網(wǎng)絡(luò)中進(jìn)行傳輸,直至到達(dá) remote-VTEP。

報(bào)文到達(dá) VTEP_1 后,VTEP_1 對(duì)報(bào)文進(jìn)行解封裝,得到 VM_C 發(fā)送的 Original L2 Frame。同時(shí),VTEP_1 學(xué)習(xí) VM_C 的 MAC 地址、VNI 和 VTEP_3 的 IP 地址的映射關(guān)系,并記錄在本地 MAC Table 中。然后 VTEP_1 將解封裝后的報(bào)文發(fā)送給 VM_A。

至此,VM_A 和 VM_C 均已學(xué)習(xí)到了對(duì)方的 MAC 地址。之后,VM_A 和 VM_C 將采用 IP 單播方式進(jìn)行轉(zhuǎn)發(fā)。轉(zhuǎn)發(fā)流程類(lèi)似,這里不再贅述。

不同 VNI 的單播報(bào)文轉(zhuǎn)發(fā)場(chǎng)景

不同 VNI 的單播報(bào)文轉(zhuǎn)發(fā)場(chǎng)景,又稱(chēng)為 “跨 VxLAN 子網(wǎng)的單播報(bào)文轉(zhuǎn)發(fā)場(chǎng)景“,需要結(jié)合上文中提到的 VxlAN L3 Gateway 來(lái)共同完成。 這里以較為簡(jiǎn)單的 “集中式 VxLAN L3 Gateway 組網(wǎng)方案“ 來(lái)進(jìn)行介紹:Spine 提供 L3 Forwarding 功能,VM1 和 VM4 處于不同的 VxLAN 子網(wǎng),VM1 的網(wǎng)關(guān)是 VSI-Interface10,VM4 的網(wǎng)關(guān)是 VSI-Interface20,并分別接入到不同的 VSI(Virtual Switching Instance,虛擬交換實(shí)例)中,VSI 具有傳統(tǒng)以太網(wǎng)交換機(jī)的所有功能。 假設(shè)現(xiàn)在已經(jīng)不是首次通信,VM1、VM4、VSI-Interface10、VSI-Interface20 之間的 MAC 地址都已經(jīng)互相學(xué)習(xí)到了。此時(shí) VM1 向 VM4 發(fā)出跨子王的 IP 單播報(bào)文。

VM1 先將報(bào)文發(fā)送給 VSI-Interface10。

Leaf-A 收到 VM1 發(fā)來(lái)的報(bào)文,識(shí)別此報(bào)文屬于 VxLAN 10,查找 dstMAC G10 的表項(xiàng),然后對(duì)報(bào)文進(jìn)行 VxLAN 封裝后從 Tunnel2 發(fā)送出去。

Spine-C 收到 Leaf-A 發(fā)來(lái)的報(bào)文,進(jìn)行 L3 Forwarding 處理:

發(fā)現(xiàn) Outer dstIP 是自己,于是對(duì)報(bào)文進(jìn)行解封裝。

解完封裝后,Spine-C 發(fā)現(xiàn) Original L2 Frame 的 dstMAC 是本機(jī) VSI-interface10 的 MAC、dstIP 是 IP4,于是根據(jù)路由表查找 IP4 的下一跳;

發(fā)現(xiàn)一下跳為 Leaf-B、出接口為 VSI-Interface20,再查詢(xún) ARP 表項(xiàng),并將 Original L2 Frame 的 srcMAC 修改為 VSI-interface20 的 MAC 地址,將 dstMAC 修改為 VM4 的 MAC 地址。

報(bào)文到達(dá) VSI-interface20 接口時(shí),識(shí)別到需要進(jìn)入 VxLAN 20,所以根據(jù) MAC 表對(duì)報(bào)文進(jìn)行封裝。

封裝的 VNI 為 20,Outer srcIP 為 Spine-C 的 IP 地址,Outer dstIP 為 Leaf-B 的 IP 地址;Outer srcMAC 為 Spine-C 的 MAC 地址,Outer dstMAC 為去往目的 IP 的網(wǎng)絡(luò)中下一跳設(shè)備的 MAC 地址。

封裝后的報(bào)文,根據(jù) Outer dstMAC/dstIP 信息,在 Underlay IP 網(wǎng)絡(luò)中進(jìn)行傳輸,直至到達(dá) remote-VTEP。

Leaf-B 收到 Spine-C 發(fā)來(lái)的報(bào)文后,解封裝,得到 Original L2 Frame。在 VxLAN 20 內(nèi)找到 dstMAC 為 MAC4 的表項(xiàng),并將報(bào)文從對(duì)應(yīng)的接口和 VLAN 中發(fā)送出去。

最終 VM4 收到了來(lái)自 VM1 的報(bào)文。

VxLAN/UDP 的 MTU 問(wèn)題UDP(User DatagramProtocol,用戶(hù)數(shù)據(jù)報(bào)協(xié)議),是一種無(wú)連接的、非可靠的傳輸層協(xié)議,常被應(yīng)用于 Tunnel 協(xié)議的傳輸層。主要原因有以下幾點(diǎn):

速度快

只要應(yīng)用進(jìn)程將 Payload 傳給 UDP,UDP 將此數(shù)據(jù)打包后就立刻傳遞給 IP 層,而無(wú)需作其他額外的機(jī)制處理。

首部開(kāi)銷(xiāo)小

相較于 TCP Header 都有 20Bytes 的首部開(kāi)銷(xiāo),UDP Header 只有 8Bytes。

負(fù)載均衡特性

因?yàn)闊o(wú)連接,所以 UDP srcPort 可以使用 HASH 計(jì)算值,該特性能夠在各個(gè)網(wǎng)絡(luò)環(huán)節(jié)中進(jìn)行負(fù)載均衡優(yōu)化,例如:ECMP 傳輸環(huán)節(jié),CPU隊(duì)列綁定收包環(huán)節(jié)等。 但相對(duì)的,UDP 也存在一個(gè)關(guān)鍵的 MTU 分片問(wèn)題,即:假如 UDP Datagram 進(jìn)行分片,那么只有 First Fragment 是包含 UDP Header 的,一旦丟包就會(huì)導(dǎo)致 Receiver 無(wú)法重組出一個(gè)完整的 Datagram。如下圖所示。

所以,當(dāng)采用 UDP 作為傳輸層時(shí),需要十分注意 MTU 的設(shè)置,才能帶來(lái)更好的傳輸性能以及可靠性。根據(jù) VXLAN RFC7348 中的建議,VxLAN 封裝包不應(yīng)該分片,否則在接收端 VTEP 上會(huì)丟棄分片的報(bào)文,導(dǎo)致無(wú)法正確解封裝。

通常的,VM/Host 的默認(rèn) MTU 是 1500Bytes,即 Original L2 Frame 最大為 1500Bytes。在 VTEP 封裝上 VxLAN Overhead 的 50Bytes(VxLAN header + UDP Header + Outer IP/MAC Header)之后,VxLAN 封裝包的總長(zhǎng)度就達(dá)到了 1550Bytes。 如果希望不對(duì) VxLAN 封裝包進(jìn)行分片,可以通過(guò) 2 種常規(guī)手段來(lái)實(shí)現(xiàn):

減小 VM/Host 的 MTU。

加大 Underlay 網(wǎng)絡(luò)的 MTU。

根據(jù)實(shí)際的場(chǎng)景,需要考慮采用不同的實(shí)現(xiàn)方式。

DCN 場(chǎng)景中的 VxLAN MTU

在 DCN 場(chǎng)景中,由于運(yùn)營(yíng)商對(duì)整網(wǎng)環(huán)境具有把控能力,所以通常會(huì)采用從 “業(yè)務(wù)需求出發(fā)“ 的原則,即:調(diào)整 Underlay MTU 以適應(yīng) VM/Host MTU 的需求。所以,極端情況下,Underlay MTU 可能被設(shè)置為 9000Bytes。

DCI 場(chǎng)景中的 VxLAN MTU

并跨越兩個(gè)地理位置分離的 DC(數(shù)據(jù)中心),通過(guò) L3 路由廣域網(wǎng)(WAN)或其他數(shù)據(jù)中心互連(DCI)傳輸連接的場(chǎng)景中。因?yàn)?VxLAN 封裝包需要經(jīng)過(guò)并非完全可控的第三方承載網(wǎng)絡(luò),所以對(duì) MTU 的規(guī)劃需要更加嚴(yán)謹(jǐn)。所以通常采用 “從適配性出發(fā)“ 的原則,即:對(duì) VM/Host MTU 進(jìn)行控制,確保在整個(gè)端到端的承載網(wǎng)中均小于 Underlay MTU。 以一個(gè)內(nèi)層 ping 包(長(zhǎng)度為 1422Bytes)為例,計(jì)算各層封裝的長(zhǎng)度如下表,發(fā)現(xiàn)最終的 VxLAN 封裝包大于 1500Bytes,此時(shí)就需要修改 Inner MTU 以及 Inner App 的長(zhǎng)度值,使其小于等于 1500Bytes。

EVPN MP-BGP 控制面協(xié)議

EVPN (EthernetVPN)是一個(gè) L2 VPN(L2-in-L3)協(xié)議,最初的設(shè)計(jì)目的是為了替換落后的 VPLS(Virtual Private LAN Service),號(hào)稱(chēng)為 Next Generation L2 VPN(下一代的 L2 VPN)。 后來(lái),EVPN 逐漸演進(jìn)為一套通用的 Control Plane 協(xié)議,而不是具體為了承載業(yè)務(wù)的 Data Plane 協(xié)議。EVPN Control Plane 可以與多種不同的 Data Plane 技術(shù)(包括:MPLS、SRv6、VxLAN 等)結(jié)合使用實(shí)現(xiàn)一套完整的數(shù)控分離 SDN 方案。 EVPN Control Plane 的全稱(chēng)為 EVPN MP-BGP(Ethernet VPN base on Multi-Protocols BGP),是一種基于 MP-BGP 協(xié)議可擴(kuò)展性的實(shí)現(xiàn)方式,增加新的協(xié)議類(lèi)型和路由類(lèi)型,包括:

L2 VPN AFI(Address Family Identifier,地址族標(biāo)識(shí))

EVPN SAFI(Subsequent Address Family Identifier,子地址族標(biāo)識(shí))

EVPN NLRI(Network Layer Reachability Information,網(wǎng)絡(luò)層可達(dá)性信息)

EVPN VxLAN SDN 方案

在引入 EVPN 作為 VxLAN 的 Control Plane 之前,需要通過(guò)手工的方式建立靜態(tài) VxLAN 隧道,即:手動(dòng)指定 VxLAN Tunnel 的 local-VTEP 和remote-VTEP 的 IP 地址對(duì),并構(gòu)建 Tunnel。手工靜態(tài)配置的方式在集中式 VxLAN L3 Gateway 組網(wǎng)方案中或許還能夠勉強(qiáng)接受,但在大規(guī)模的分布式 VxLAN L3 Gateway 組網(wǎng)方案中會(huì)出現(xiàn)較為嚴(yán)峻的挑戰(zhàn),主要有 2 個(gè)方面:

網(wǎng)絡(luò)擴(kuò)展困難:網(wǎng)絡(luò)變更需要手動(dòng)修改集群配置,容易出現(xiàn) “雪花設(shè)備“ 故障。

BUM 洪泛流量占比大:所有 VTEP 都需要通過(guò) Flood and Learn(洪泛和自學(xué)習(xí))來(lái)完成數(shù)據(jù)轉(zhuǎn)發(fā)之前的 ARP 表項(xiàng)和主機(jī)路由表項(xiàng)學(xué)習(xí)。

為了解決這個(gè)問(wèn)題,需要在 VxLAN 網(wǎng)絡(luò)中引入 Control Plane 方案來(lái)提供靈活的運(yùn)維管理支撐。目前最為流行和成熟的組合就是 EVPN VxLAN(RFC6624),依托于 BGP 在 E-BGP 和 I-BGP 場(chǎng)景中的適配性,也使得 VxLAN 不僅局限于 DCN(數(shù)據(jù)中心網(wǎng)絡(luò))場(chǎng)景,還能應(yīng)用于 DCI(數(shù)據(jù)中心互聯(lián))場(chǎng)景。

相應(yīng)的,采用 EVPN 作為 VxLAN 的 Control Plane 帶來(lái)了 2 個(gè)核心優(yōu)勢(shì):

EVPN 可實(shí)現(xiàn) VTEP 自動(dòng)發(fā)現(xiàn)、VxLAN Tunnel 的自動(dòng)建立,從而降低網(wǎng)絡(luò)運(yùn)維的復(fù)雜度和提升了網(wǎng)絡(luò)可擴(kuò)展性。

EVPN 可實(shí)現(xiàn) IP、MAC、VNI 等 ARP 和主機(jī)路由信息的自動(dòng)宣告,從而有效減少了 BUM 泛洪流量。

EVPN VxLAN 的路由類(lèi)型

EVPN 基于 MP-BGP NLRI 擴(kuò)展引入了 5 種新的路由類(lèi)型(Route Type),如下:

Type1. Ethernet Auto-Discovery Route(Ethernet 自動(dòng)發(fā)現(xiàn)路由)

Type2. MAC/IP Advertisement Route(MAC/IP 通告路由)

Type3. Inclusive Multicast Ethernet Tag Route(集成多播 Ethernet Tag 路由)

Type4. Ethernet Segment Route(Ethernet 段路由)

Type5. IP Prefix Route(IP 前綴路由)

在 EVPN VxLAN 場(chǎng)景中,NVE(交換機(jī))充當(dāng) PE 的角色,同時(shí)具備了 BGP Peer 和 VTEP 的功能,下文中統(tǒng)稱(chēng)為 VTEP Peer。其主要應(yīng)用了 Type2、Type3、Type5 這 3 種路由類(lèi)型,下面重點(diǎn)介紹這些路由類(lèi)型的定義和作用。

Type2:MAC/IP Advertisement Route(MAC/IP 通告路由)

Type2 Route 的 EVPN NLRI 字段如下: ?Route Distinguisher: 指示一個(gè) EVPN Instance 的 RD 值,用于區(qū)分不同的 EVPN Instances。每個(gè) EVPN Instance 都具有一個(gè)對(duì)應(yīng)的 BD(二層廣播域)。 ?Ethernet Segment Identifier: EVPN 允許在同一物理網(wǎng)絡(luò)上創(chuàng)建多個(gè)虛擬網(wǎng)絡(luò),這些虛擬網(wǎng)絡(luò)被稱(chēng)為 Ethernet Segment。而 Ethernet Segment Identifier 就是該虛擬網(wǎng)絡(luò)的唯一標(biāo)識(shí)。在 VxLAN 場(chǎng)景中,ES 就是 VxLAN Tunnel,ESI 用于唯一標(biāo)識(shí)一個(gè) VxLAN Tunnel 的連接。

?Ethernet Tag ID指示當(dāng)前設(shè)備配置的以太網(wǎng) VLAN ID。

?MAC Address Length指示該 Route 攜帶的 host-MAC 地址的長(zhǎng)度。

?MAC Address指示該 Route 攜帶的 host-MAC 地址。

?IP Address Length指示該 Route 攜帶的 host-IP 地址的掩碼長(zhǎng)度,為 32bits(IPv4)或 128bits(IPv6)。

?IP Address指示該 Route 攜帶的 host-IP 地址。

?MPLS Label1指示該 Route 攜帶的 L2 VNI,用于標(biāo)識(shí)不同的 BD。

?MPLS Label2指示該 Route 攜帶的 L3 VNI,用于標(biāo)識(shí)不同的 VRF(L3 VPN)。VxLAN 網(wǎng)絡(luò)中為了實(shí)現(xiàn)不同租戶(hù)之間的隔離,需要通過(guò)不同的 VRF 來(lái)隔離租戶(hù)的路由表。 從上述字段可見(jiàn),Type2 Route 的關(guān)鍵特性就是支持對(duì)稱(chēng) IRB(Integrated Bridging and Routing,集成的橋接和路由),能夠同時(shí)發(fā)布 L2 MAC Switching 和 L3 IP Routing 信息,以此來(lái)支撐 VxLAN L2 和 L3 Gateway 應(yīng)用場(chǎng)景。

基于這樣的特性,Type2 Route 非常適用于云計(jì)算虛擬機(jī)遷移的場(chǎng)景(MAC Mobility,MAC 移動(dòng)性),可以有效避免了虛擬機(jī)遷移期間所帶來(lái)的 IP 地址更改,以及重新配置網(wǎng)絡(luò)的問(wèn)題。例如:當(dāng)一臺(tái) VM 從 VTEP1 遷移到 VTEP2 時(shí),VTEP2 會(huì)學(xué)習(xí)到該 VM 的 ARP 信息(通過(guò) VM 發(fā)出的 gARP 實(shí)現(xiàn)),并生成 VM 對(duì)應(yīng)的 Type2 Route,然后傳遞給 VTEP1。VTEP1 收到后,感知到 VM 的位置發(fā)生變化,觸發(fā) ARP 探測(cè),當(dāng)探測(cè)不到 VM 時(shí),則會(huì)撤銷(xiāo) VM 在本地的 ARP 和主機(jī)路由信息。

VTEP 應(yīng)用 Type2 通告 host-MAC 地址

當(dāng) VTEP 是 VxLAN L2 Gateway 時(shí),VTEP Peer 之間可以通過(guò) Type2 Route 來(lái)互相學(xué)習(xí)對(duì)方的 host-MAC Table,包括:host-MAC、BD、Interface 等信息。 如下圖所示,Leaf1、Leaf2 是 VxLAN L2 Gateway,Host1、Host2 屬于同一個(gè) VxLAN 子網(wǎng),Leaf1 向 Leaf2 通告它的 host-MAC Table。

Host1 通過(guò)特定的 Interface 和 BD 接入到 Leaf1 時(shí),通常會(huì)觸發(fā) ARP、DHCP 等廣播流量。Leaf1 以此來(lái)學(xué)習(xí)到 Host1 對(duì)應(yīng)的 Host1-MAC 并記錄在 BD 的 host-MAC Table 中。

隨后 Leaf1 向 Leaf2 發(fā)送 Type2 Route,攜帶了 EVPN Instance RD、Host1-MAC、L2 VNI、VTEP IP 等信息。

Leaf2 收到 Type2 Route 后,根據(jù) L2 VNI 匹配到相應(yīng)的 BD,并將 Host1-MAC 保存在 BD 的 host-MAC Table 中。

VTEP 應(yīng)用 Type2 通告 host-IP 精確路由

在 VxLAN 網(wǎng)絡(luò)中,要想實(shí)現(xiàn)跨網(wǎng)絡(luò)之間的三層互訪(fǎng),就需要在 VxLAN L3 Gateway 中應(yīng)用 L3 VPN Instance 和隔離的 Route Table 來(lái)完成 IP Routing。 當(dāng) VTEP 是 VxLAN L3 Gateway 時(shí),VTEP Peer 之間可以通過(guò) Type2 Route 來(lái)互相學(xué)習(xí)對(duì)方的 host-IP Table,包括:host-IPv4 /32 或 host-IPv6 /128 精確路由、Interface、L3 VNI 等信息。 以較為復(fù)雜的 “分布式 VxLAN L3 Gateway 組網(wǎng)” 場(chǎng)景為例。如下圖所示,Leaf1、Leaf2 同時(shí)作為 VxLAN L2/L3 Gateway,Host1、Host2 屬于不同的 VxLAN 子網(wǎng),Leaf1 向 Leaf2 通告它的 host-IP Table。 Host1 通過(guò)特定的 Interface 和 BD 接入到 Leaf1 時(shí),通常會(huì)觸發(fā) ARP、DHCP 等廣播流量。

L2 Gateway 特性:學(xué)習(xí)到 Host1 對(duì)應(yīng)的 Host1-MAC 并記錄在 BD 的 host-MAC Table 中。

L3 Gateway 特性:學(xué)習(xí)到 Host1 對(duì)應(yīng)的 Host1-IP 并記錄在 L3 VNI 對(duì)應(yīng)的 VRF 的 host-IP Table 中。

隨后 Leaf1 向 Leaf2 發(fā)送 Type2 Route,攜帶了 EVPN Instance RD、Host1-MAC、Host1-IP、L2 VNI、L3 VNI、VTEP IP 等信息。 Leaf2 收到 Type2 Route 后,根據(jù) L2 VNI 匹配到相應(yīng)的 BD,并將 Host1-MAC 保存在 BD 的 host-MAC Table 中。

L2 Gateway 特性:根據(jù) L2 VNI 匹配到相應(yīng)的 BD,并將 Host1-MAC 保存在 BD 的 host-MAC Table 中。

L3 Gateway 特性:根據(jù) L3 VNI 匹配到相應(yīng)的 VRF,并將 Host1-IP 保存在 VRF 的 host-IP Table 中。

VTEP 應(yīng)用 Type2 實(shí)現(xiàn) ARP 廣播抑制

同一個(gè) VxLAN 子網(wǎng)屬于一個(gè) “大二層“ 虛擬網(wǎng)絡(luò),子網(wǎng)內(nèi)的主機(jī)要互相通信就需要知道對(duì)方的 MAC 地址,傳統(tǒng)的方式是發(fā)出 ARP Request 廣播報(bào)文。而在 EVPN 場(chǎng)景中,則可以應(yīng)用 Type2 實(shí)現(xiàn) ARP 廣播抑制,能夠有效減少 ARP 洪泛的流量。

首先,VxLAN L3 Gateway 之間通過(guò) Type2 Route 互相宣告 ARP 表項(xiàng)信息(host-MAC/IP)。

然后,VxLAN L3 Gateway 通過(guò)傳遞 ARP 類(lèi)型路由,將 ARP 表項(xiàng)信息傳遞給 VxLAN L2 Gateway。

最后,VxLAN L2 Gateway 開(kāi)啟 ARP 代答功能后,就會(huì)根據(jù) ARP 表項(xiàng)信息生成 ARP 廣播抑制表,包括:host-IP、host-MAC、VTEP、VNI 等信息。

完成控制面的配置后,當(dāng) VxLAN L2 Gateway(e.g. Leaf1)再收到從 Host1 向 Host2 發(fā)出的 ARP Request 時(shí),就會(huì)先查看自己的 ARP 廣播抑制表,發(fā)現(xiàn)有 Host2 的 MAC-IP 記錄,則直接將 ARP Request 報(bào)文中的廣播 MAC 地址替換為目的單播 MAC 地址(廣播變單播),然后原路 Reply,從而達(dá)到 ARP 廣播抑制的目的。

但需要注意的是,Type2 Route 和 ARP 廣播抑制只是減少了 ARP 洪泛流量,但不能完全避免,例如下面場(chǎng)景:

新上線(xiàn)的可能是 “靜默主機(jī)“,它不會(huì)自動(dòng)觸發(fā) ARP、DHCP 等廣播流量,所以上掛 VTEP 不能被動(dòng)學(xué)習(xí)其 MAC 地址。首次訪(fǎng)問(wèn) “靜默主機(jī)” 時(shí),還是需要在 VxLAN 子網(wǎng)中廣播 ARP Request 報(bào)文來(lái)獲得對(duì)方的 MAC 地址。

在 VTEP 沒(méi)來(lái)及的學(xué)習(xí)到 ARP 廣播抑制表項(xiàng)的時(shí)候,也會(huì)按照正常的流程進(jìn)行廣播。

Type3:Inclusive Multicast Ethernet Tag Route(集成多播 Ethernet Tag 路由)

通過(guò)應(yīng)用 Type3 Route 可以實(shí)現(xiàn) VTEP Peers 的自動(dòng)發(fā)現(xiàn)和認(rèn)證,并在 VTEP Peer 之間互相傳遞 L2 VNI 和 VTEP IP 地址信息。 Type3 Route 的 EVPN NLRI 字段如下:

Route Distinguisher:指示 EVPN Instance 的 RD 值。

Ethernet Tag ID:指示當(dāng)前設(shè)備配置的以太網(wǎng) VLAN ID。在 Type3 Route 中為全 0。

IP Address Length:指示該 Route 攜帶的 local-VTEP IP 地址的掩碼長(zhǎng)度。

Originating Router"s IP Address:指示該 Route 攜帶的 local-VTEP IP 地址。

Flags:在 VxLAN 場(chǎng)景中,該字段沒(méi)有實(shí)際意義。

MPLS Label:指示該 Route 攜帶的 L2 VNI,用于標(biāo)識(shí)不同的 BD。

Tunnel Type:指示該 Route 攜帶的隧道類(lèi)型。在 VxLAN 場(chǎng)景中,該字段為 “6: Ingress Replication”,即頭端復(fù)制類(lèi)型。

Tunnel Identifier:指示該 Route 攜帶的隧道信息。在 VxLAN 場(chǎng)景中,該字段也是 local-VTEP IP 地址。

VTEP 應(yīng)用 Type3 建立頭端復(fù)制列表

前面提到 Type2 Route 只能 “抑制“ ARP 洪泛流量,但不能完全避免。這些不能避免的 BUM 流量,還是需要通過(guò)頭端復(fù)制或核心復(fù)制方式來(lái)進(jìn)行廣播或組播。 以頭端復(fù)制為例,VTEP Peer 之間可以通過(guò) Type3 Route 宣告來(lái)實(shí)現(xiàn)自動(dòng)創(chuàng)建頭端復(fù)制列表,包括:L2 VNI、src-VTEP IP、dst-VTEP IP 等信息。如下圖所示,Leaf1、Leaf2、Leaf3 作為 VTEP,Leaf1 向 Leaf2、Leaf3 發(fā)送 Type3 Route。

在 Leaf1 上完成 VTEP IP、L2 VNI、EVPN Instance 等相關(guān)配置后,Leaf1 會(huì)向 Leaf2、Leaf3 分別發(fā)送 Type3 Route,攜帶了 L2 VNI、local-VTEP IP、EVPN Instance RD 等信息。

Leaf2、Leaf3 收到來(lái)自 Leaf1 的 Type3 Route 后:

如果 Leaf1 VTEP IP 三層路由可達(dá),則建立一條 VxLAN Tunnel。

如果如果 remote-VNI 與 local-VNI 相同,則新建一個(gè)頭端復(fù)制表,用于后續(xù) BUM 報(bào)文廣播。

Type5:IP Prefix Route(IP 前綴路由)

Type3 Route 的 EVPN NLRI 字段如下:

Route Distinguisher

指示 EVPN Instance 的 RD 值。

Ethernet Segment Identifier

用于唯一標(biāo)識(shí)一個(gè) VxLAN Tunnel 的連接。

Ethernet Tag ID

指示當(dāng)前設(shè)備配置的以太網(wǎng) VLAN ID。

IP Prefix Length

指示該 Route 攜帶的 IP Prefix 的掩碼長(zhǎng)度。

IP Prefix

指示該 Route 攜帶的 IP Prefix,可以是精確路由(/32 或 /128),也可以網(wǎng)段地址(/0-32 或 /0-128),主要是傳遞網(wǎng)段路由。

GW IP Address

指示默認(rèn)網(wǎng)關(guān)地址。該字段在 VxLAN 場(chǎng)景中沒(méi)有實(shí)際意義。

MPLS Label

指示該 Route 攜帶的 L3 VNI,用于標(biāo)識(shí)不同的 VRF。

VTEP 應(yīng)用 Type5 通告 host-IP 網(wǎng)段路由

Type5 Route 有 2 個(gè)主要的應(yīng)用場(chǎng)景:

在沒(méi)有 IP 地址重疊的網(wǎng)絡(luò)規(guī)劃中,可以配置 VTEP 通過(guò) Type5 Route 宣告 host-IP 網(wǎng)段路由,而不是 host-IP 精確路由,以此來(lái)有效減少 VxLAN L3 Gateway 設(shè)備的路由表項(xiàng)。

在 VxLAN 網(wǎng)絡(luò)和外部 IP 網(wǎng)絡(luò)之間需要互聯(lián)互通時(shí),可以通過(guò) Type5 Route 將外部 IP 網(wǎng)段宣告到 VxLAN L3 Gateway,繼而實(shí)現(xiàn) VxLAN 網(wǎng)絡(luò)中的主機(jī)能夠與外部網(wǎng)絡(luò)之間進(jìn)行 IP 訪(fǎng)問(wèn)。

如下圖所示,Leaf1、Leaf2 作為 VxLAN L3 Gateway,其中 Leaf1 連接了一個(gè)外部網(wǎng)絡(luò)的 192.168.1.0/24 網(wǎng)段。

Leaf1 探測(cè)到 192.168.1.0/24 網(wǎng)段路由后,向 Leaf2 宣告 Type5 Route,包括:EVPN Instance RD、IP Prefix、L3 VNI、Leaf1 VTEP IP 地址等信息。

Leaf2 收到 Type5 Route 后,學(xué)習(xí)到 192.168.1.0/24 網(wǎng)段信息,并將其保存在相應(yīng)的 Route Table 中,其下一跳為 Leaf1 VTEP IP 地址。

后續(xù),Leaf2 就可以直接轉(zhuǎn)發(fā) dstIP 為 192.168.1.0/24 網(wǎng)段的 IP 報(bào)文了。

編輯:黃飛

標(biāo)簽:

上一篇:FPGA設(shè)計(jì):GPIO怎么走全局時(shí)鐘網(wǎng)絡(luò) 環(huán)球熱訊
下一篇:最后一頁(yè)