根據(jù)接收的udp報文產(chǎn)生對特定統(tǒng)計(jì)數(shù)據(jù)項(xiàng)的統(tǒng)計(jì)結(jié)果的系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種根據(jù)接收的UDP報文產(chǎn)生針對特定統(tǒng)計(jì)數(shù)據(jù)項(xiàng)的統(tǒng)計(jì)結(jié)果的系 統(tǒng)。
【背景技術(shù)】
[0002] 傳統(tǒng)的負(fù)載平衡器(Load Balancer),如采用Iinux下HaProxy的配置,用于讀取 來自網(wǎng)絡(luò)的每一個HTTP請求中所包含的cookies或URL解釋,并且基于這些信息重寫報頭 并將HTTP請求發(fā)往后端服務(wù)器群,使得后端服務(wù)器群中各服務(wù)器達(dá)到流量、資源占用的平 衡狀態(tài)。但是,傳統(tǒng)的負(fù)載平衡器不會自動對網(wǎng)絡(luò)的流量進(jìn)行濾過檢查,不能對攻擊流量進(jìn) 行限流或丟棄。
[0003] 在現(xiàn)有技術(shù)中,已知有基于流量清洗技術(shù)通過偵測TCP分組來實(shí)現(xiàn)針對ICMP/ TCP/UDP流攻擊進(jìn)行防護(hù)的,通過重發(fā)TCP/UDP分組來實(shí)現(xiàn)。這種已知方案僅對TCP/UDP層 的分組有效,它對于預(yù)防需解密的開放式系統(tǒng)互聯(lián)參考模型(OSI)第7層應(yīng)用層的HTTP流 攻擊無能為力。
[0004] 一種想法是根據(jù)對訪問URL做統(tǒng)計(jì),根據(jù)單位時間訪問量如QPS來限制訪問請求。 針對一個大型網(wǎng)站訪問URL的統(tǒng)計(jì)通常消耗很多內(nèi)存。一般來說,對于數(shù)據(jù)項(xiàng)IP地址、用 戶標(biāo)識(USERID)、統(tǒng)一資源定位符(URL)等的任何一個組合,需要記錄與該組合相關(guān)聯(lián)的 每一個訪問的時間戳(timestamp)。當(dāng)需要計(jì)算QPS時,將各個時間點(diǎn)過濾或排序,既費(fèi)時 又耗內(nèi)存。
[0005] 在現(xiàn)有技術(shù)中,當(dāng)需要計(jì)算QPS時,將各個時間點(diǎn)過濾或排序,既費(fèi)時又耗內(nèi)存。
[0006] 在現(xiàn)有技術(shù)中,當(dāng)需要計(jì)算QPS時,將各個時間點(diǎn)過濾或排序,既費(fèi)時又耗內(nèi)存。
【發(fā)明內(nèi)容】
[0007] 根據(jù)本發(fā)明,提供一種根據(jù)接收的UDP報文產(chǎn)生針對特定統(tǒng)計(jì)數(shù)據(jù)項(xiàng)的統(tǒng)計(jì)結(jié)果 的系統(tǒng),所述UDP報文是通過負(fù)載均衡器解析來自網(wǎng)絡(luò)的查詢請求而產(chǎn)生的,所述系統(tǒng)包 括:接收部分,用于接收所述負(fù)載均衡器發(fā)送的UDP報文;計(jì)算部分,根據(jù)預(yù)定義統(tǒng)計(jì)數(shù)據(jù) 項(xiàng)組合和預(yù)定義統(tǒng)計(jì)時長對接收的UDP報文進(jìn)行統(tǒng)計(jì)以產(chǎn)生統(tǒng)計(jì)結(jié)果,所述統(tǒng)計(jì)結(jié)果給出 了在當(dāng)前統(tǒng)計(jì)時長內(nèi)累計(jì)的包含有所述預(yù)定義統(tǒng)計(jì)數(shù)據(jù)項(xiàng)組合的UDP報文數(shù)量;發(fā)送部 分,根據(jù)匯總器的請求向其發(fā)送所述統(tǒng)計(jì)結(jié)果。
[0008] 根據(jù)本發(fā)明的系統(tǒng),其中所述預(yù)定義統(tǒng)計(jì)數(shù)據(jù)項(xiàng)組合包括下述之一:用戶名、客戶 端IP地址和通用資源標(biāo)示符;用戶名和通用資源標(biāo)示符;以及客戶端IP地址和通用資源 標(biāo)示符。
[0009] 根據(jù)本發(fā)明的系統(tǒng),其中所述統(tǒng)計(jì)結(jié)果以JSONS數(shù)據(jù)格式通過web頁形式被發(fā)送。
[0010] 根據(jù)本發(fā)明的系統(tǒng),其中,根據(jù)發(fā)送的所述統(tǒng)計(jì)結(jié)果,所述匯總器產(chǎn)生用于確定是 否放行相應(yīng)查詢請求的黑名單。
【附圖說明】
[0011] 下面將參考附圖詳細(xì)地描述本發(fā)明的實(shí)施例,其中:
[0012] 圖1是根據(jù)本發(fā)明的用于對來自網(wǎng)絡(luò)的訪問請求進(jìn)行限制的系統(tǒng)的結(jié)構(gòu)圖;
[0013] 圖2是根據(jù)接收的UDP報文產(chǎn)生針對特定統(tǒng)計(jì)數(shù)據(jù)項(xiàng)的統(tǒng)計(jì)結(jié)果的系統(tǒng)的示例性 框圖;
[0014] 圖3是根據(jù)本發(fā)明的對來自網(wǎng)絡(luò)的訪問請求產(chǎn)生黑名單的系統(tǒng)的示例性匯總器 的組成的示例性框圖。
【具體實(shí)施方式】
[0015] 根據(jù)本發(fā)明,提供一種根據(jù)接收的UDP報文產(chǎn)生針對特定統(tǒng)計(jì)數(shù)據(jù)項(xiàng)的統(tǒng)計(jì)結(jié)果 的系統(tǒng)以及包括多個這樣系統(tǒng)的聚集器。
[0016] -個訪問請求,如來自因特網(wǎng)的HTTP請求,包括如下數(shù)據(jù)項(xiàng):該訪問用戶要訪問 的目的域名(host);用戶請求的通用資源標(biāo)示符(uri);用戶名(Uid);客戶端IP地址 (cip)等。
[0017] 本發(fā)明的用于對來自網(wǎng)絡(luò)的訪問請求進(jìn)行限制的系統(tǒng)包括負(fù)載均衡器、聚集器和 匯總器。
[0018] 所述負(fù)載均衡器接收來自所述網(wǎng)絡(luò)的訪問請求,把所接收的每個訪問請求解析成 一個UDP報文,并且把UDP報文傳送給聚集器。
[0019] 所述聚集器根據(jù)預(yù)定義統(tǒng)計(jì)數(shù)據(jù)項(xiàng)組合和預(yù)定義統(tǒng)計(jì)時長對接收到的UDP報文 進(jìn)行統(tǒng)計(jì),并且根據(jù)匯總器的請求向其發(fā)送統(tǒng)計(jì)結(jié)果。所述統(tǒng)計(jì)結(jié)果給出了在當(dāng)前的預(yù)定 義統(tǒng)計(jì)時長內(nèi)累計(jì)的包含有所述預(yù)定義統(tǒng)計(jì)數(shù)據(jù)項(xiàng)組合的UDP報文數(shù)量。
[0020] 所述匯總器按照預(yù)定的請求時間間隔向所述聚集器請求統(tǒng)計(jì)結(jié)果,接收來自所述 聚集器的統(tǒng)計(jì)結(jié)果,根據(jù)所接收的統(tǒng)計(jì)結(jié)果和預(yù)定義規(guī)則生成訪問請求的黑名單,并且根 據(jù)所述負(fù)載均衡器的請求把黑名單發(fā)送給所述負(fù)載均衡器,其中所述黑名單定義了對相應(yīng) 訪問請求的處理動作。
[0021] 所述負(fù)載均衡器根據(jù)當(dāng)前黑名單確定對所接收的每個訪問請求的處理動作。
[0022] 下面結(jié)合具體實(shí)施例詳細(xì)描述根據(jù)本發(fā)明實(shí)施例的用于對來自網(wǎng)絡(luò)的訪問請求 進(jìn)行限制的系統(tǒng)。但應(yīng)該理解,具體實(shí)施例僅用于理解本發(fā)明的精神和具體實(shí)現(xiàn),但本發(fā)明 并不受限于特定的實(shí)施例。
[0023] 圖1示出根據(jù)本發(fā)明用于對來自網(wǎng)絡(luò)的訪問請求進(jìn)行限制實(shí)施例的系統(tǒng)100,該 系統(tǒng)100包括3個模塊:
[0024] 負(fù)載均衡器101,
[0025] 聚集器102,和
[0026] 匯總器 103。
[0027] 負(fù)載均衡器101接收來自網(wǎng)絡(luò)的訪問請求,如來自因特網(wǎng)的HTTP請求,并將接收 的訪問請求解析成UDP報文,再將UDP報文傳輸給聚集器。
[0028] UDP報文因其資源消耗小、處理速度快等優(yōu)勢可以大大減小負(fù)載均衡器的額外開 銷。UDP協(xié)議不屬于連接型協(xié)議,所以會存在一定的報文丟失現(xiàn)象。但這種丟失在可控誤差 范圍之內(nèi),對系統(tǒng)的健碩性影響可忽略。
[0029] 聚集器102可包括多臺聚集機(jī)20。多臺聚集機(jī)20水平獨(dú)立擴(kuò)展,即每臺聚集機(jī) 20是獨(dú)立部署和運(yùn)行的,它們相互之間沒有影響和依賴。如果聚集器處理能力不能滿足需 要,可以增加機(jī)器,再部署新的聚集機(jī)20。這樣可以較好地滿足大交通流量的需要。
[0030] 負(fù)載均衡器101把每個UDP報文傳輸至一臺選定的聚集機(jī)20。各臺聚集機(jī)20分 別進(jìn)行所述統(tǒng)計(jì)。
[0031] 根據(jù)本發(fā)明的一個實(shí)施例,負(fù)載均衡器101用逐個輪詢的方式向多臺聚集機(jī)20發(fā) m)P報文。例如,第一個UDP包發(fā)給第一臺聚集機(jī)20,第二個UDP包發(fā)給第二臺聚集機(jī)20, 依次把生成的m)P包按順序發(fā)給各聚集機(jī)20。當(dāng)給最后一臺聚集機(jī)20發(fā)送過過UDP包之 后,再重新向第一臺聚集機(jī)20發(fā)送。
[0032] 每臺聚集機(jī)20按照預(yù)定義統(tǒng)計(jì)規(guī)則或條件,如預(yù)定義的統(tǒng)計(jì)數(shù)據(jù)項(xiàng)組合、預(yù)定義 的統(tǒng)計(jì)時間間隔等,對接收到的UDP報文進(jìn)行統(tǒng)計(jì)分析。
[0033] 聚集機(jī)20接收UDP報文并且解析UDP報文。UDP報文中包含了用戶的HTTP訪問請 求的信息:用戶訪問的目的域名(host)、用戶請求的通用資源標(biāo)示符(uri)、用戶名(uid)、 客戶端IP地址(cip)等。
[0034] 然后,聚集機(jī)20針對同一個目的域名(相同的host)、同一來源(相同的uid,相 同的cip)的訪問請求數(shù)量作統(tǒng)計(jì),進(jìn)而可計(jì)算出此來源的訪問請求量。
[0035] 如果在限定的時間段,如最近60秒或最近5分鐘,考察上述統(tǒng)計(jì)訪問請求量,那么 可得出此來源的單位時間請求量,如通過訪問請求量除以該時間段的時長來獲得QPS值。 QPS是指每秒查詢率,是對一個特定的查詢服務(wù)器在規(guī)定時間內(nèi)所處理流量多少的衡量標(biāo) 準(zhǔn),在因特網(wǎng)上,作為域名系統(tǒng)服務(wù)器的機(jī)器的性能經(jīng)常用每秒查詢率來衡量。
[0036] 然后,聚集機(jī)20根據(jù)匯總器103的請求向其發(fā)送統(tǒng)計(jì)結(jié)果。
[0037] 匯總器103每隔一定時間,例如每隔10秒,向聚集器請求一次"統(tǒng)計(jì)結(jié)果",這種請 求例如以HTTP形式發(fā)出請求。
[0038] 當(dāng)聚集器102的各聚集機(jī)20收到來自匯總器103的請求后,則把當(dāng)前的統(tǒng)計(jì)結(jié)果 構(gòu)造成響應(yīng)報文,例如HTTP形式的響應(yīng)報文,并且把包含當(dāng)前統(tǒng)計(jì)結(jié)果的響應(yīng)報文發(fā)給匯 總器103。
[0039] 匯總器103接收來自各聚集機(jī)20的響應(yīng)報文,根據(jù)特定分類處理從所有聚集機(jī)20 接收的報文中包含的統(tǒng)計(jì)結(jié)果,產(chǎn)生匯總的統(tǒng)計(jì)分析結(jié)果,并根據(jù)預(yù)定義規(guī)則生成黑名單。
[0040] 根據(jù)本發(fā)明的一個實(shí)施例,黑名單中的一條黑名單記錄包含4個參數(shù):
[0041] 目的域名(host),
[0042] 源用戶名(uid),
[0043] 源客戶端 IP (Cip)JP
[0044] 處理動作(action)。
[0045] 該記錄的含義可理解為,對于發(fā)送給該目的域名(host)的一請求,如果用戶名和 客戶端IP等同于該記錄中對應(yīng)的值(源用戶名、源客戶端IP),則采取對應(yīng)的處理動作。處 理動作例如是對該請求進(jìn)行攔截或重定向或延時。當(dāng)一訪問請求的目的域名、用戶名、客戶 端IP地址與一黑名單記錄的目的域名、用戶名、客戶端IP地址,則稱該訪問請求匹配黑名