數(shù)據(jù)中心網(wǎng)絡(luò)等價(jià)多路徑(ECMP)技術(shù)應(yīng)用研究
【ECMP】目前數(shù)據(jù)中心網(wǎng)絡(luò)廣泛應(yīng)用的Fabric架構(gòu)中會(huì)應(yīng)用大量的ECMP,本文結(jié)合ECMP運(yùn)行原理針對(duì)以上問(wèn)題進(jìn)行分析,并探討如何優(yōu)化ECMP的運(yùn)用。
目前數(shù)據(jù)中心網(wǎng)絡(luò)廣泛應(yīng)用的Fabric架構(gòu)中會(huì)應(yīng)用大量的ECMP(Equal-Cost Multipath Routing,簡(jiǎn)寫(xiě)ECMP),其優(yōu)點(diǎn)主要體現(xiàn)在可以提高網(wǎng)絡(luò)冗余性和可靠性,同時(shí)也提高了網(wǎng)絡(luò)資源利用率;大量的ECMP鏈路在特定場(chǎng)景下運(yùn)行過(guò)程中會(huì)引發(fā)其他問(wèn)題。例如,當(dāng)某條ECMP鏈路斷開(kāi)后,ECMP組內(nèi)所有鏈路流量都會(huì)被重新HASH,在有狀態(tài)的服務(wù)器區(qū)域(如LVS)中將導(dǎo)致雪崩現(xiàn)象,又或者會(huì)出現(xiàn)多級(jí)ECMP的HASH極化導(dǎo)致鏈路擁塞等。
本文將結(jié)合ECMP運(yùn)行原理針對(duì)以上問(wèn)題進(jìn)行分析,并探討如何優(yōu)化ECMP的運(yùn)用。
等價(jià)多路徑路由
等價(jià)多路徑路由,即存在多條到達(dá)同一個(gè)目的地址的相等開(kāi)銷的路徑。當(dāng)設(shè)備支持等價(jià)路由時(shí),發(fā)往該目的IP 或者目的網(wǎng)段的三層轉(zhuǎn)發(fā)流量就可以通過(guò)不同的路徑分擔(dān),實(shí)現(xiàn)網(wǎng)絡(luò)鏈路的負(fù)載均衡,并在鏈路出現(xiàn)故障時(shí),實(shí)現(xiàn)快速切換。
ECMP實(shí)現(xiàn)流程

▲圖例1:ECMP流程圖
• 步驟一:HASH因子的選擇
首先數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)查詢路由表,確認(rèn)存在多個(gè)等價(jià)路由,再根據(jù)當(dāng)前用戶配置的流量均衡算法,提取參與 HASH 計(jì)算的關(guān)鍵字段,即HASH因子。ECMP 流量均衡可選擇的 HASH 因子如下表:

▲圖表1:流量均衡模式對(duì)應(yīng)HASH因子表
注:因ECMP為三層轉(zhuǎn)發(fā),即使配置基于源MAC、目的MAC或者源目MAC作為HASH因子,系統(tǒng)也會(huì)默認(rèn)選擇源IP作為HASH因子。另外,在選擇提取HASH因子為目的IP時(shí),系統(tǒng)會(huì)默認(rèn)選擇源目IP作為HASH因子。
• 步驟二:HASH計(jì)算
基于步驟一提取的 HASH 因子,根據(jù) HASH 算法進(jìn)行計(jì)算,得出相應(yīng)的 HASH lb-key(load-balance key)。 ECMP 流量均衡支持的 HASH 算法包括異或(XOR)、CRC、 CRC+擾碼等。
ASH算法有很多種,我們以XOR算法為例做出說(shuō)明。XOR運(yùn)算法則包括兩個(gè)輸入比特位相同時(shí)為0,不同則為1。HASH因子不同,運(yùn)算結(jié)果也不盡相同。
1、HASH因子為IP address source(SIP)
●SIP XOR 0 ,得出一個(gè)32bit的數(shù)值a;
●將數(shù)值a再進(jìn)行高16bit和低16bit做XOR計(jì)算得出16bit數(shù)值b;
●數(shù)值b的15~12bit與11~8bit再做XOR計(jì)算,得出4bit數(shù)值c;
●數(shù)值c替換數(shù)值b的11~8bit,得出數(shù)值d;
●數(shù)值d截取低位10bit即為lb key。
2、HASH因子為SIP+DIP/DIP
●DIP XOR SIP ,得出一個(gè)32bit的數(shù)值a;
●剩余運(yùn)算步驟與SIP運(yùn)算一致。
3、HASH因子為SIP+DIP+SP+DP
●SIP XOR DIP得到32bit的數(shù)值a;
●數(shù)值a的低16bit XOR SP 得到32bit的數(shù)值b;
●數(shù)值b的低 16bit XOR DP 得到 32bit 的數(shù)值c;
●數(shù)值c的高16bit XOR 低16bit得到16bit的數(shù)值d;
●數(shù)值d的15~12bit XOR 11~8bit,得到4bit的數(shù)值e;
●數(shù)值e替換數(shù)值d的11~8bit,得出數(shù)值f;
●數(shù)值f截取低10bit,即為lb-key
• 步驟三:確認(rèn)轉(zhuǎn)發(fā)下一跳
數(shù)據(jù)報(bào)文經(jīng)過(guò)路由查表后找到對(duì)應(yīng)ECMP 基值(base-ptr),根據(jù) HASH 因子通過(guò) HASH 算法計(jì)算獲得 HASH lb-key 后,進(jìn)行 ECMP 下一跳鏈路數(shù)(Member-count)求余計(jì)算,再與ECMP基值進(jìn)行加法運(yùn)算得出轉(zhuǎn)發(fā)下一跳index,即確定了下一跳轉(zhuǎn)發(fā)路由。
計(jì)算公式:Next-hop =(lb-key % Member-count)+ base-ptr
上述流程為ECMP常規(guī)轉(zhuǎn)發(fā)流程,但在特定網(wǎng)絡(luò)環(huán)境下運(yùn)行過(guò)程中就會(huì)出現(xiàn)問(wèn)題,接下來(lái)繼續(xù)分析數(shù)據(jù)中心網(wǎng)絡(luò)中ECMP遇到的2個(gè)常見(jiàn)問(wèn)題。
• 問(wèn)題一 單鏈路故障導(dǎo)致ECMP組所有數(shù)據(jù)流被重新HASH計(jì)算

▲圖例2:ECMP轉(zhuǎn)發(fā)圖
當(dāng)某臺(tái)LVS服務(wù)器網(wǎng)卡出現(xiàn)故障或者鏈路出現(xiàn)故障,Leaf交換機(jī)會(huì)將ECMP組內(nèi)數(shù)據(jù)流將重新HASH計(jì)算,再進(jìn)行負(fù)載均衡到剩余有效鏈路上,進(jìn)而導(dǎo)致TCP會(huì)話斷開(kāi),發(fā)生雪崩現(xiàn)象,例如一些支付類業(yè)務(wù),同一個(gè)用戶的一次支付過(guò)程會(huì)調(diào)用多個(gè)業(yè)務(wù)服務(wù),業(yè)務(wù)側(cè)要求一次支付的過(guò)程都落在同一個(gè)處理服務(wù)器上,當(dāng)出現(xiàn)單條鏈路故障后不僅影響該鏈路所在LVS承載的用戶,同時(shí)還影響該ECMP組下其他LVS承載的用戶,如圖例3所示:

▲圖例3:故障后ECMP轉(zhuǎn)發(fā)圖
1、優(yōu)化方案:
為避免單臺(tái)LVS服務(wù)器故障或者單鏈路故障導(dǎo)致整個(gè)ECMP組內(nèi)流量全部被重新HASH,ECMP可采用彈性HASH算法來(lái)優(yōu)化。采用彈性HASH算法后,僅將故障鏈路的流量重新HASH到其他活躍鏈路上,而非故障鏈路上的數(shù)據(jù)流則無(wú)需改變下一跳。實(shí)現(xiàn)效果如圖例4所示:

▲圖例4:ECMP彈性HASH算法
彈性HASH具體實(shí)現(xiàn)原理:

▲圖例5:彈性HASH流程
在交換機(jī)上生成一張索引表(RH Flow Set Table),用于存放相關(guān)索引值對(duì)應(yīng)下一跳路由地址。數(shù)據(jù)報(bào)文經(jīng)過(guò)路由查表后找到對(duì)應(yīng)ECMP 基值,提取HASH因子進(jìn)行HASH運(yùn)算,在HASH Key與ECMP數(shù)量取余數(shù)時(shí)無(wú)論是否出現(xiàn)故障鏈路,均以最初數(shù)量進(jìn)行取余運(yùn)算,因此運(yùn)算結(jié)果一致,非故障鏈路數(shù)據(jù)依然按照原有鏈路轉(zhuǎn)發(fā)。如下圖中,鏈路3故障后軟件CPU將及時(shí)更新RH flow table,將失效鏈路用正常鏈路均勻替換。

▲圖例6:彈性HASH索引表替換示意圖
• 問(wèn)題二 HASH極化問(wèn)題

▲圖例7:HASH極化
1、優(yōu)化方案:
• 同廠商Leaf設(shè)備和Spine設(shè)備均采用相同上聯(lián)鏈路數(shù)場(chǎng)景下,應(yīng)避免在相鄰的兩臺(tái)設(shè)備上使用相同的負(fù)載均衡算法;
• 設(shè)備在運(yùn)行HASH計(jì)算時(shí),除傳統(tǒng)的五元組外,可以增添擾動(dòng)因子,避免HASH計(jì)算結(jié)果相同。
HASH擾動(dòng)的計(jì)算過(guò)程中HASH因子仍然正常提取,再增加用戶自定義隨機(jī)擾動(dòng)因子,經(jīng)過(guò)HASH算法運(yùn)算時(shí),不同交換機(jī)HASH計(jì)算結(jié)果就將不一致,以達(dá)到避免HASH極化現(xiàn)象的出現(xiàn)。

▲圖例8:HASH擾動(dòng)計(jì)算過(guò)程
動(dòng)態(tài)負(fù)載均衡技術(shù)實(shí)現(xiàn)
在數(shù)據(jù)中心網(wǎng)絡(luò)中,突發(fā)流量多,并且存在大象流和老鼠流并存現(xiàn)象,本文所描述的基于數(shù)據(jù)流五元組的HASH算法,并結(jié)合HASH擾動(dòng)因子技術(shù)實(shí)現(xiàn)流量負(fù)載均衡,但無(wú)法實(shí)現(xiàn)大象流和老鼠流并存的網(wǎng)絡(luò)中多鏈路之間的流量負(fù)載均衡。
銳捷網(wǎng)絡(luò)新一代25G數(shù)據(jù)中心網(wǎng)絡(luò)解決方案中所采用的芯片,已能夠支持DLB(Dynamic load balance,動(dòng)態(tài)鏈路負(fù)載)特性,可基于流量負(fù)載狀態(tài)實(shí)現(xiàn)動(dòng)態(tài)的HASH負(fù)載均衡。具體實(shí)現(xiàn)方法是交換機(jī)為每條進(jìn)行負(fù)載均衡的數(shù)據(jù)流創(chuàng)建一個(gè)流表,基于流表記錄流量統(tǒng)計(jì)信息,根據(jù)流量統(tǒng)計(jì)信息動(dòng)態(tài)調(diào)整鏈路負(fù)載均衡。
本期作者:王磊
銳捷網(wǎng)絡(luò)互聯(lián)網(wǎng)系統(tǒng)部行業(yè)咨詢
▌ 【第一期】淺談物聯(lián)網(wǎng)技術(shù)之通信協(xié)議的紛爭(zhēng)
▌ 【第三期】暢談數(shù)據(jù)中心網(wǎng)絡(luò)運(yùn)維自動(dòng)化
▌ 【第四期】基于Rogue AP反制的無(wú)線安全技術(shù)探討
▌ 【第六期】如何實(shí)現(xiàn)數(shù)據(jù)中心網(wǎng)絡(luò)架構(gòu)“去”堆疊
▌ 【第八期】淺析RDMA網(wǎng)絡(luò)下MMU水線設(shè)置
▌ 【第九期】第七代無(wú)線技術(shù)802.11ax詳解
▌ 【第十期】數(shù)據(jù)中心自動(dòng)化運(yùn)維技術(shù)探索之交換機(jī)零配置上線
▌ 【第十一期】技術(shù)盛宴 | 淺談數(shù)據(jù)中心100G光模塊
相關(guān)推薦:
相關(guān)標(biāo)簽:
點(diǎn)贊
客戶評(píng)論
我要評(píng)論
您的姓名
您的手機(jī)號(hào)*
您的郵箱
公司名稱
更多技術(shù)博文
-
解密DeepSeek-V3推理網(wǎng)絡(luò):MoE架構(gòu)如何重構(gòu)低時(shí)延、高吞吐需求?DeepSeek-V3發(fā)布推動(dòng)分布式推理網(wǎng)絡(luò)架構(gòu)升級(jí),MoE模型引入大規(guī)模專家并行通信,推理流量特征顯著變化,Decode階段對(duì)網(wǎng)絡(luò)時(shí)度敏感。網(wǎng)絡(luò)需保障低時(shí)延與高吞吐,通過(guò)端網(wǎng)協(xié)同負(fù)載均衡與擁塞控制技術(shù)優(yōu)化性能。高效運(yùn)維實(shí)現(xiàn)故障快速定位與業(yè)務(wù)高可用,單軌雙平面與Shuffle多平面組網(wǎng)方案在低成本下滿足高性能推理需求,為大規(guī)模MoE模型部署提供核心網(wǎng)絡(luò)支撐。
-
#交換機(jī)
-
-
高密場(chǎng)景無(wú)線網(wǎng)絡(luò)新解法:銳捷Wi-Fi 7 AP 與 龍伯透鏡天線正式成團(tuán)銳捷網(wǎng)絡(luò)在中國(guó)國(guó)際大學(xué)生創(chuàng)新大賽(2025)總決賽推出旗艦Wi-Fi 7無(wú)線AP RG-AP9520-RDX及龍伯透鏡天線組合,針對(duì)高密場(chǎng)景實(shí)現(xiàn)零卡頓、低時(shí)延和高并發(fā)網(wǎng)絡(luò)體驗(yàn)。該方案通過(guò)多檔賦形天線和智能無(wú)線技術(shù),有效解決干擾與覆蓋問(wèn)題,適用于場(chǎng)館、辦公等高密度環(huán)境,提供穩(wěn)定可靠的無(wú)線網(wǎng)絡(luò)解決方案。
-
#無(wú)線網(wǎng)
-
#Wi-Fi 7
-
#無(wú)線
-
#放裝式AP
-
-
打造“一云多用”的算力服務(wù)平臺(tái):銳捷高職教一朵云2.0解決方案發(fā)布銳捷高職教一朵云2.0解決方案幫助學(xué)校構(gòu)建統(tǒng)一云桌面算力平臺(tái),支持教學(xué)、實(shí)訓(xùn)、科研和AI等全場(chǎng)景應(yīng)用,實(shí)現(xiàn)一云多用。通過(guò)資源池化和智能調(diào)度,提升資源利用效率,降低運(yùn)維成本,覆蓋公共機(jī)房、專業(yè)實(shí)訓(xùn)、教師辦公及AI教學(xué)等多場(chǎng)景需求,助力教育信息化從分散走向融合,推動(dòng)規(guī)模化與個(gè)性化培養(yǎng)結(jié)合。
-
#云桌面
-
#高職教
-
-
醫(yī)院無(wú)線升級(jí)必看:“全院零漫游”六大謎題全解析銳捷網(wǎng)絡(luò)的全院零漫游方案是新一代醫(yī)療無(wú)線解決方案,專為智慧醫(yī)院設(shè)計(jì),通過(guò)零漫游主機(jī)和天線入室技術(shù)實(shí)現(xiàn)全院覆蓋和移動(dòng)零漫游體驗(yàn)。方案支持業(yè)務(wù)擴(kuò)展全適配,優(yōu)化運(yùn)維管理,確保內(nèi)外網(wǎng)物理隔離安全,并便捷部署物聯(lián)網(wǎng)應(yīng)用,幫助醫(yī)院提升網(wǎng)絡(luò)性能,支持舊設(shè)備利舊升級(jí),降低成本。
-
#醫(yī)療
-
#醫(yī)院網(wǎng)絡(luò)
-
#無(wú)線
-
