發(fā)布時間:2021-07-08


作者:大峰
運營商服務(wù)中心
自IP網(wǎng)絡(luò)問世以來,私有協(xié)議、feature(如組播VXLAN等)便是武林各門派決戰(zhàn)光明頂?shù)闹羷俜▽殻罡髀烽T派望而卻步,備感無力。
然而,狹路相逢,面對著客戶現(xiàn)網(wǎng)布下的看似無堅不摧的“鐵桶陣”(組播VXLAN),就真的一點“破綻”都沒有么?真的無計可施了么?
對不起,我攤牌了。我們也可以做到通過組播方式實現(xiàn)VXLAN了!
下面就根據(jù)實際測試經(jīng)驗與大家進(jìn)行分享。
一、 內(nèi)功心法——VXLAN基礎(chǔ)回顧
VXLAN采用MAC in UDP封裝方式的一種隧道技術(shù),通過對原始IP報文增加VXLAN報頭,實現(xiàn)對虛擬機(jī)數(shù)據(jù)報文隔離、虛擬機(jī)動態(tài)遷移、大二層網(wǎng)絡(luò)等需求。以下為VXLAN報文格式:

圖一(以外層IP頭為IPv4格式為例)
其數(shù)據(jù)封裝及轉(zhuǎn)發(fā)過程如下:

圖二
虛擬機(jī)發(fā)出的原始IP報文,到達(dá)TOR設(shè)備后增加VXLAN報頭,并在VXLAN隧道進(jìn)行轉(zhuǎn)發(fā),到達(dá)目標(biāo)TOR設(shè)備解除VXLAN封裝后得到原始IP報文,最后到達(dá)目標(biāo)虛擬機(jī)。
當(dāng)然這是針對已知單播報文的數(shù)據(jù)轉(zhuǎn)發(fā)流程。如果涉及BUM(Broadcast, Unknown-unicast, Multicast)報文處理,不同派系實現(xiàn)方式就有所不同了。在此演變成兩大派系,第一個派系是幾乎已失傳的“組播路由”派系,第二大派系為武林公認(rèn)的“頭端復(fù)制”派系。而“組播路由”派系出現(xiàn)的場景無人能敵。
那么,兩大派系招數(shù)有什么不同?我們又是如何完成兩個派系秘籍的修煉,順利破除客戶現(xiàn)網(wǎng)“鐵桶陣”的呢?別急,聽我娓娓道來。
二、“頭端復(fù)制”主流派系
使用圖二拓?fù)溥M(jìn)行擴(kuò)展對BUM報文“頭端復(fù)制”過程進(jìn)行講解。

圖三
如圖三所示,假設(shè)VM1(所屬VNI10099)需要與VM2(所屬VNI10099)進(jìn)行通信。在VM1上進(jìn)行原始數(shù)據(jù)報文封裝時缺少目標(biāo)VM2的mac地址信息,于是VM1將向所屬局域網(wǎng)發(fā)送ARP請求(目標(biāo)MAC為全F)。TOR1在接收到VM1所發(fā)送的ARP請求后。TOR1根據(jù)頭端復(fù)制列表將其轉(zhuǎn)為單播方式,將ARP請求報文復(fù)制后并增加VXLAN報頭向TOR3以單播方式進(jìn)行發(fā)送,這就是對BUM幀簡單的頭端復(fù)制過程。

圖四(依賴EVPN構(gòu)建頭端復(fù)制列表)
是不是覺得與傳統(tǒng)局域網(wǎng)中ARP廣播請求實現(xiàn)方式有所差異?在傳統(tǒng)局域中ARP請求通過廣播方式在局域網(wǎng)內(nèi)泛洪,占用局域網(wǎng)內(nèi)大量帶寬資源。但在云數(shù)據(jù)中心里,大二層局域網(wǎng)是通過VXLAN隧道構(gòu)建,存在海量虛擬機(jī),大量ARP廣播報文通過VXLAN隧道進(jìn)行廣播,將極大的增加云數(shù)據(jù)中心TOR設(shè)備壓力,消耗TOR設(shè)備鏈路及自身資源。
三、幾乎失傳的“組播路由”派系
接下來討論稍微復(fù)雜一點、幾乎已失傳的“組播路由”派系。再次對圖二進(jìn)行擴(kuò)展,在組網(wǎng)中增加單獨RP,使用S65系列(version S6500_RGOS 12.5(1)B0401S1)作為TOR設(shè)備。

圖五
如圖五所示,VM1與VM2均屬于VNI 10099,且將VNI 10099加入組播組226.2.1.1后,設(shè)備將生成VNI與組播組綁定表項,如:

圖六
假設(shè)VM1需要與VM2進(jìn)行通信。VM1依舊向所在局域網(wǎng)發(fā)送ARP廣播請求(目標(biāo)MAC為全F)。TOR1在接收到VM1所發(fā)送的ARP請求后,在原始ARP請求報文增加VXLAN封裝后,根據(jù)已形成的組播路由表項,將ARP請求報文以組播復(fù)制方式轉(zhuǎn)發(fā)到TOR2。TOR2最終將VXLAN報頭解封裝后,將原始ARP報文送到VM2。

圖七
與”頭端復(fù)制“實現(xiàn)方式不同,組播方式實現(xiàn)需要依賴PIM協(xié)議構(gòu)建的組播樹,并將相應(yīng)VXLAN與組播組進(jìn)行綁定,形成VXLAN報文轉(zhuǎn)發(fā)路徑,大致配置如下 :
!
ip multicast-routing # 啟用組播路由協(xié)議
!
interface TFGigabitEthernet 0/48
port speed-mode 10G
no switchport
ip address x.x.x.x 255.255.255.0
ip ospf network point-to-point
ip pim sparse-mode # 在該端口啟用組播協(xié)議,并配置為稀疏模式
!
...其他常規(guī)配置略
!
interface OverlayRouter 10099
vrf forwarding xxx
ip address 10.253.129.126 255.255.255.128
anycast-gateway
!
vxlan 10099
router-interface OverlayRouter 10099
mcast-group 226.2.1.1 # 將二層vni與組播組進(jìn)行綁定
extend-vlan 1099
!
ip pim bidir-enable # 配置雙向組播功能
ip pim rp-address 192.169.122.34 bidir # 指定組播RP
!
S6510_VSU#show vxlan 10099
VXLAN 10099
Symmetric property : FALSE
Router Interface : overlayrouter 10099 (anycast)
Extend VLAN : 1099
VTEP Adjacency Count: 1
VTEP Adjacency List :
Interface Source IP Destination IP Type
--------------------- -------------- ---------------------- -------
OverlayTunnel 12287 1.1.1.1 226.2.1.1 dynamic
雖然以組播方式進(jìn)行BUM報文效率較高,但進(jìn)行VXLAN擴(kuò)展時會帶來更大挑戰(zhàn)。例如,數(shù)據(jù)中心中大量不同VXLAN配置在同一組播組,將導(dǎo)致部分TOR設(shè)備接收大量自身并不感興趣的BUM流量。但假如所有不同的VXLAN配置不同的播組,那么每臺TOR將需要維護(hù)大量組播樹與組播路由表項,這也會讓TOR設(shè)備感覺到壓力山大。
明白了吧,兩大門派招數(shù)各有見長,能夠集百家之長并不斷修煉,才是武功的最高境界!
VXLAN為當(dāng)前云數(shù)據(jù)中心提供了強(qiáng)大的大二層網(wǎng)絡(luò)技術(shù)支持,但由于其硬件方面限制,在實現(xiàn)方式上會存在較大差異。各位同仁在日常項目交付時,經(jīng)常接觸到“頭端復(fù)制”方式的BUM報文處理機(jī)制,可以說是再熟悉不過了。但組播VXLAN實現(xiàn)方式也占據(jù)了數(shù)據(jù)中心大半江山,為了突破無堅不摧的“鐵桶陣”,我們還需多多學(xué)習(xí)組播心法。
