[扶奉超 牛云 曹維華 劉浩 謝元寶]
近年來,隨著寬帶互聯(lián)網(wǎng)技術(shù)和移動(dòng)互聯(lián)網(wǎng)技術(shù)迅速發(fā)展、網(wǎng)絡(luò)應(yīng)用和業(yè)務(wù)種類不斷豐富,用戶流量呈爆炸式增長趨勢[1-2]。如何對(duì)海量爆炸式增長的用戶數(shù)據(jù)進(jìn)行監(jiān)管和分析是個(gè)重要難題。
為了解決網(wǎng)絡(luò)監(jiān)管和分析的問題,國內(nèi)運(yùn)營商均有在網(wǎng)絡(luò)重要節(jié)點(diǎn)(包括移動(dòng)核心網(wǎng)、IDC 出口、城域網(wǎng)出口、骨干網(wǎng)出口等位置)部署專用流量采集和分析系統(tǒng),如DPI 系統(tǒng)。分流器實(shí)現(xiàn)小流量匯聚,大流量拆分、同源同宿、負(fù)載均衡等功能,是流量采集系統(tǒng)的一部分。
同源同宿是流量采集和分析系統(tǒng)應(yīng)用的基礎(chǔ)。為滿足不斷增長的業(yè)務(wù)流量需求,并確保網(wǎng)絡(luò)的可靠性,IDC、城域網(wǎng)、5GC 等關(guān)鍵網(wǎng)絡(luò)節(jié)點(diǎn)的出口鏈路通常會(huì)連接多個(gè)不同的局向,而且每個(gè)局向又往往包含多條鏈路。路由器的上下行自主選路特點(diǎn)造成實(shí)際上同一會(huì)話的上下行可能不在同一條物理鏈路[3],如需要對(duì)這些出口鏈路的流量進(jìn)行監(jiān)控分析,需要將入出IDC 或城域網(wǎng)的同一會(huì)話的上下行完整流量輸出給同一臺(tái)流量分析設(shè)備進(jìn)行處理,保證后端設(shè)備處理的數(shù)據(jù)的完整性和分析結(jié)果的準(zhǔn)確性。業(yè)界在分流器和同源同宿方面有一些研究工作。文獻(xiàn)[3]中作者提出了多種同源同宿的解決方案,包括同機(jī)房和不同機(jī)房間的同源同宿解決方案,但對(duì)各方案的對(duì)比分析較少。文獻(xiàn)[4]中作者主要研究了5G 對(duì)分流器提的新要求及其設(shè)備的演進(jìn)變化,對(duì)同源同宿問題研究較少。
本文主要研究分流器的同源同宿解決方案,綜合分析和對(duì)比了3 種解決方案的優(yōu)缺點(diǎn),最后給出了同源同宿方案選擇建議。
單臺(tái)分流器和多臺(tái)分流器的同源同宿原理存在一些差異。本章將介紹單臺(tái)分流器和多臺(tái)分流器同源同宿的原理。
分流器均有配置哈希資源用來實(shí)現(xiàn)負(fù)載均衡和同源同宿。當(dāng)同一會(huì)話的上下行接入同一臺(tái)分流器時(shí),實(shí)現(xiàn)同源同宿有以下幾個(gè)步驟:
(1)對(duì)哈希因子進(jìn)行計(jì)算:分流器將多元組,至少二元組(源IP 地址,目的IP 地址)作為哈希因子,并對(duì)多元組進(jìn)行運(yùn)算。運(yùn)算方法有異或、加減法等。
(2)哈希計(jì)算:利用選定的哈希算法對(duì)哈希因子進(jìn)行計(jì)算,得到一串二進(jìn)制數(shù)字結(jié)果。根據(jù)選擇的哈希算法的不同,哈希計(jì)算后的結(jié)果可能是8 位,16 位,32 位等。
(3)端口選擇:得到二進(jìn)制數(shù)字串以后,選擇其中部分的位數(shù)參與最終端口選擇,比如通過哈希計(jì)算后得到了32 位的數(shù)字,可以選擇32 位進(jìn)行端口選擇,也可以選擇部分位數(shù),比如低16 位。選好位數(shù)以后,將二進(jìn)制數(shù)字串換算成十進(jìn)制,再進(jìn)行取模運(yùn)算或者采用散列表的方式?jīng)Q定最終的輸出端口。
同一會(huì)話的上下行鏈路中,源IP 地址和目的IP 地址會(huì)調(diào)換,比如上行鏈路源IP 地址為A,目的IP 地址為B 時(shí),下行鏈路源IP 地址為B,目的IP 地址為A。哈希因子是將多元組(至少包含二元組)通過異或、加減等算法得到的。由于調(diào)換源IP 地址和目的IP 地址不改變哈希因子的運(yùn)算結(jié)果,于是上述同源同宿的3 個(gè)步驟中,經(jīng)過第一個(gè)步驟得到的結(jié)果是一樣的。而第一步驟的哈希因子計(jì)算結(jié)果一致以后,第二個(gè)步驟和第三個(gè)步驟中的哈希計(jì)算和端口選擇計(jì)算的結(jié)果也將保持一致。最終同一會(huì)話的輸出端口不變,從而實(shí)現(xiàn)同源同宿。
當(dāng)同一會(huì)話的上下行接入多臺(tái)分流器時(shí),同源同宿的實(shí)現(xiàn)將會(huì)變得更為復(fù)雜。多臺(tái)分流器支持的哈希機(jī)制可能存在差異,包括支持的哈希算法不同和端口選擇機(jī)制不同。需要通過技術(shù)手段和組網(wǎng)架構(gòu)設(shè)計(jì)來保障同源同宿。從本質(zhì)上說,多臺(tái)分流器同源同宿方法有兩種。
(1)需要通過將同一會(huì)話的上下行流量接入或者導(dǎo)入同一臺(tái)分流器,使得同一會(huì)話的上下行流量最終從同一個(gè)分流器的同一個(gè)端口輸出,最終接入同一個(gè)后端分析服務(wù)器,如DPI 服務(wù)器。通過這種方法,可以將多臺(tái)分流器的同源同宿問題最終轉(zhuǎn)化成單臺(tái)分流器的同源同宿問題。
(2)同一會(huì)話的上下行流量分布在不同分流器,從不同的分流器的端口輸出,但正好接入同一個(gè)后端分析服務(wù)器,如DPI 服務(wù)器。
經(jīng)過分析,多臺(tái)分流器的情況下主要的同源同宿實(shí)現(xiàn)方案有流量互導(dǎo)方案、多級(jí)分流器方案和哈希一致性輸出方案,其中流量互導(dǎo)方案和多級(jí)分流器方案是將流量接入或者導(dǎo)入同一臺(tái)分流器實(shí)現(xiàn)同源同宿,哈希一致性輸出方案是通過將所有分流器設(shè)定一致的哈希輸出規(guī)則,由后端系統(tǒng)如DPI 服務(wù)器對(duì)稱接入分流器來實(shí)現(xiàn)。本章將詳細(xì)介紹這幾種方案。
流量互導(dǎo)解決方案是指分流器之間采用full-mesh 組網(wǎng)架構(gòu),互導(dǎo)流量,如圖1 所示。提前規(guī)劃好每個(gè)分流器處理的流量。每個(gè)分流器只處理屬于自身設(shè)備的流量,將其他流量通過互聯(lián)鏈路轉(zhuǎn)發(fā)至其他分流器??筛鶕?jù)流量特點(diǎn)選擇互導(dǎo)單邊流量(如上行),或者互導(dǎo)IP 段流量。從而讓同一用戶的上下行流量可以集中到同一臺(tái)分流器進(jìn)行處理。該種方案需要額外增加用于互導(dǎo)流量的端口。
圖1 流量互導(dǎo)方案示意圖
如圖2 所示,多級(jí)分流器方案是指在原有的分流器和DPI 服務(wù)器兩級(jí)架構(gòu)基礎(chǔ)上再增加一級(jí)或數(shù)級(jí)分流器方案,用其中一級(jí)分流器實(shí)現(xiàn)同源同宿功能,其他級(jí)分流器實(shí)現(xiàn)匯聚和分流功能,從而讓同一用戶的上下行流量可以集中到同一臺(tái)分流器進(jìn)行處理,實(shí)現(xiàn)同源同宿。根據(jù)同源同宿所在級(jí)數(shù)的不同,分為一級(jí)同源同宿方案和二級(jí)同源同宿方案。本文以二級(jí)同源同宿為例。
圖2 多級(jí)分流器方案
如圖3 所示,不同分流器采用一致的輸出規(guī)則,包括哈希因子、哈希算法等[5],確保相同二元組/多元組流量從不同分流器接入都能從相同接口輸出。后端系統(tǒng)如DPI服務(wù)器對(duì)稱接入分流器的接口。此種方案中,盡管同一用戶的上下行分布在不同鏈路,但能保證相同多元組的用戶數(shù)據(jù)能夠進(jìn)入到同一個(gè)下游系統(tǒng)(如DPI 服務(wù)器),從而實(shí)現(xiàn)同源同宿。由于不同分流器之間哈希機(jī)制一般存在差異,因此需要統(tǒng)一所有設(shè)備的哈希機(jī)制。
圖3 哈希一致性輸出方案示意圖
流量互導(dǎo)方案不需要統(tǒng)一分流器支持的哈希輸出機(jī)制,無需改造現(xiàn)有設(shè)備,但需要增加流量互導(dǎo)端口,用來互導(dǎo)部分流量。多級(jí)分流器方案也無需統(tǒng)一分流器支持的哈希輸出機(jī)制,但架構(gòu)和組網(wǎng)復(fù)雜,兩級(jí)分流器之間背靠背組網(wǎng),需要額外增加的端口數(shù)最多。
哈希一致性輸出方案中每個(gè)端口均承載業(yè)務(wù)流量,無重復(fù)流量,因此無需額外占用端口。但該方案端口發(fā)生故障時(shí),存在較大的隱患,難以同源同宿。當(dāng)某個(gè)設(shè)備端口因光模塊損壞或鏈路故障而失效時(shí),該端口原來輸出的流量會(huì)重哈希并分布到其它端口,從而導(dǎo)致同源同宿失效。需要同步關(guān)閉其它分流器上與故障相關(guān)的端口或更換同一型號(hào)的分流器來解決端口故障問題。但目前分流器與分流器之間是沒有相應(yīng)的接口和機(jī)制,開發(fā)難度較大。因此當(dāng)某個(gè)端口失效時(shí),很難做到異設(shè)備間同步端口狀態(tài)。
總體來看,在額外增加端口方面,多級(jí)方案最多,流量互導(dǎo)方案中等,哈希一致性輸出方案最少。但哈希一致性輸出方案在端口故障時(shí),同源同宿易失效。由于流量互導(dǎo)方案組網(wǎng)架構(gòu)較簡單,增加的端口數(shù)較少,也無同源同宿失效的隱患,因此建議選擇流量互導(dǎo)方案作為主要的多臺(tái)分流器的同源同宿方案。在端口需要適配場景建議選擇多級(jí)分流器方案,解決端口適配的問題,比如采集鏈路接口與分流器接口不匹配的場景或者分流器接口與后端DPI服務(wù)器接口不匹配的場景。
同源同宿是后端流量采集和分析系統(tǒng)能夠應(yīng)用的基礎(chǔ)。本文分析了同源同宿的原理,提出了3 種同源同宿技術(shù)方案,并從多方面對(duì)比分析了方案的優(yōu)缺點(diǎn),給出了同源同宿方案建議。從額外增加端口等角度分析,建議主要選擇流量互導(dǎo)同源同宿方案。本文的研究成果可為運(yùn)營商流量采集和分析系統(tǒng)建設(shè)提供參考。