作者:鄒立,單位:中國移動智慧家庭運(yùn)營中心
近年來,隨著用戶需求的多樣化和網(wǎng)絡(luò)應(yīng)用的日益豐富,網(wǎng)絡(luò)新業(yè)務(wù)層出不窮,比如:P2P、VoIP、流媒體、Web TV和虛擬現(xiàn)實(shí)等。這些新業(yè)務(wù)吸納了大量的客戶資源,但由于一些新業(yè)務(wù)數(shù)據(jù)流量過于龐大,比如P2P和流媒體等業(yè)務(wù),在網(wǎng)絡(luò)中消耗帶寬資源較多,打破了傳統(tǒng)IP 網(wǎng)絡(luò)“高帶寬、低負(fù)載”的? QoS 提供模式,在一定程度上加重了網(wǎng)絡(luò)擁塞,帶來帶寬管理、內(nèi)容計(jì)費(fèi)、信息安全、輿論管控等一系列新的問題。同時(shí),當(dāng)網(wǎng)絡(luò)中某種業(yè)務(wù)流量過大時(shí),很有可能導(dǎo)致其他業(yè)務(wù)流量帶寬被擠占,造成鏈路傳輸?shù)挠行幚砟芰档?,從而影響整個(gè)鏈路的正常傳輸能力,降低了網(wǎng)絡(luò)的整體轉(zhuǎn)發(fā)性能。
因此,網(wǎng)絡(luò)設(shè)備亟需一種有效的技術(shù)監(jiān)管手段,能對具體業(yè)務(wù)進(jìn)行感知和識別,從而實(shí)現(xiàn)對業(yè)務(wù)的運(yùn)行情況進(jìn)行有效管理。
為了解決上述問題,智慧家庭運(yùn)營中心基于云網(wǎng)關(guān)設(shè)計(jì)和自研了一種深度報(bào)文檢測(Deep Packet Inspection,簡稱DPI)系統(tǒng)來提高網(wǎng)絡(luò)對業(yè)務(wù)報(bào)文信息的感知和識別能力,從而實(shí)現(xiàn)對網(wǎng)絡(luò)中各類應(yīng)用的業(yè)務(wù)流量行為進(jìn)行管控。
1、系統(tǒng)架構(gòu)
DPI系統(tǒng)架構(gòu)采用轉(zhuǎn)控分離的思想進(jìn)行設(shè)計(jì),主要包括數(shù)據(jù)轉(zhuǎn)發(fā)面和控制管理面,控制管理面主要完成對規(guī)則的配置管理工作,數(shù)據(jù)轉(zhuǎn)發(fā)面主要完成對報(bào)文應(yīng)用層協(xié)議的解析和轉(zhuǎn)發(fā)等工作。通過將數(shù)據(jù)轉(zhuǎn)發(fā)面和控制管理面分離開來,對業(yè)務(wù)進(jìn)行更好地維護(hù)和管理,從而提高系統(tǒng)的可維護(hù)性和可擴(kuò)展性。
從控制管理層面上看,DPI各個(gè)業(yè)務(wù)模塊的需求都可以抽象化成“規(guī)則”,基于這些規(guī)則定義可以生成不同的“分類”對象;規(guī)則同時(shí)具有“使能狀態(tài)、報(bào)文動作”等屬性,內(nèi)部還設(shè)置有特征、選項(xiàng)等關(guān)鍵字部件。 控制管理層面的工作在用戶態(tài)完成,主要工作包括:
統(tǒng)一開放格式的規(guī)則管理;
統(tǒng)一開放格式的特征庫加載和文件解析;
配置變更和下發(fā)流程管理,包括引擎的編譯和下發(fā)、規(guī)則的下發(fā),以及它們的板間同步。
從數(shù)據(jù)轉(zhuǎn)發(fā)層面上看,DPI各個(gè)業(yè)務(wù)需求都需要對應(yīng)用層協(xié)議進(jìn)行解析、解碼和搜索。為了保證高效轉(zhuǎn)發(fā)和單次報(bào)文處理,有別于傳統(tǒng)防火墻的設(shè)計(jì)思路,在新一代安全產(chǎn)品的實(shí)現(xiàn)過程中必須有并行的檢測引擎,盡可能保證只對報(bào)文進(jìn)行一次處理。數(shù)據(jù)轉(zhuǎn)發(fā)層面的需求主要在內(nèi)核態(tài)進(jìn)行處理,涉及到的幾個(gè)功能模塊如下:
協(xié)議解析器;
搜索算法引擎;
檢測結(jié)果處理模塊(又稱報(bào)文動作處理模塊),一般是在I/O 接口的處理流程中。
圖1 DPI系統(tǒng)框架
DPI系統(tǒng)架構(gòu)如圖1所示,這種將控制管理層和數(shù)據(jù)轉(zhuǎn)發(fā)層相互獨(dú)立的設(shè)計(jì)模型,使得CPU密集型的引擎預(yù)處理(編譯和下發(fā))和高性能的搜索算法過程分離在用戶態(tài)和內(nèi)核態(tài),也可以使得我們的預(yù)處理和匹配在不同的單板甚至不同的設(shè)備上進(jìn)行,易于保證轉(zhuǎn)發(fā)流程的檢測持續(xù)性和穩(wěn)定性,匹配也易于由軟件查表擴(kuò)展成硬件處理器來完成。
2、報(bào)文檢測
DPI即深度包檢測,所謂的“深度”是相對于傳統(tǒng)的IP數(shù)據(jù)包檢測技術(shù)而言的,如圖2所示,傳統(tǒng)的IP數(shù)據(jù)包檢測僅僅分析IP報(bào)文應(yīng)用層以下的內(nèi)容,例如,根據(jù)接收到的IP報(bào)文的五元組信息(包括源地址、目的地址、源端口、目的端口以及協(xié)議類型)對數(shù)據(jù)報(bào)文進(jìn)行分類處理,而DPI則對報(bào)文進(jìn)行更深層次的檢測,包括對報(bào)文進(jìn)行應(yīng)用層的分析或基于流量特征的檢測,識別出報(bào)文對應(yīng)的應(yīng)用層業(yè)務(wù)類型或提取其中的應(yīng)用層關(guān)鍵信息用于后續(xù)業(yè)務(wù)處理。
圖2 普通報(bào)文檢測和深度報(bào)文檢測區(qū)別
普通報(bào)文檢測是通過端口號來識別應(yīng)用類型的,比如:當(dāng)檢測到端口號為80時(shí),就默認(rèn)此應(yīng)用協(xié)議為HTTP協(xié)議;當(dāng)檢測到端口號為443時(shí),則默認(rèn)此應(yīng)用協(xié)議為HTTPS協(xié)議。但實(shí)際上,出于對應(yīng)用安全性的考慮,通常不會使用默認(rèn)端口來暴露業(yè)務(wù)能力,此時(shí)采用L2~L4層的傳統(tǒng)檢測方法就無能為力了。而DPI 技術(shù)能高效識別出網(wǎng)絡(luò)上的各種應(yīng)用類型,前提是后臺需要維護(hù)一個(gè)龐大的應(yīng)用特征數(shù)據(jù)庫,當(dāng)流量經(jīng)過時(shí),DPI通過將解包后得到的應(yīng)用信息與后臺的特征數(shù)據(jù)庫進(jìn)行匹配來確定應(yīng)用類型。因此,當(dāng)有新的應(yīng)用出現(xiàn)時(shí),后臺的應(yīng)用特征數(shù)據(jù)庫也需要更新才能對具有新型應(yīng)用的識別和控制能力。
3、特征識別
基于特征字的識別技術(shù)是現(xiàn)網(wǎng)DPI 解析中命中流量最主要的DPI 技術(shù),其原理就是不同的業(yè)務(wù)或應(yīng)用通常有特殊的“指紋”,這些指紋可能是特定的字符串或者比特流,例如URL就是典型的特征字?;谶@些特征字,通過對數(shù)據(jù)流中特定數(shù)據(jù)報(bào)文中的“指紋”信息進(jìn)行檢測來確定業(yè)務(wù)流承載的應(yīng)用類型。此外,還可以基于荷載的特征進(jìn)行識別,通過對應(yīng)用層協(xié)議交互過程中報(bào)文的內(nèi)容進(jìn)行分析,找出不同于其他協(xié)議的模式特征,根據(jù)各種協(xié)議特有的模式特征來確定所屬協(xié)議類型。基于負(fù)載的協(xié)議識別一般采用固定字符串和正則表達(dá)式來表示特征,正則表達(dá)式比固定字符串具有更強(qiáng)的表達(dá)能力和更好的靈活性,已成為研究DPI技術(shù)的熱點(diǎn)。本文介紹的基于云網(wǎng)關(guān)的深度報(bào)文檢測系統(tǒng)也是基于正則表達(dá)式來實(shí)現(xiàn)的,由正則表達(dá)式組成的應(yīng)用特征庫如圖3所示。
圖3 應(yīng)用特征庫
DPI根據(jù)自身的應(yīng)用特征庫與數(shù)據(jù)報(bào)文進(jìn)行匹配,當(dāng)DPI接收到數(shù)據(jù)報(bào)文時(shí),先對數(shù)據(jù)報(bào)文進(jìn)行解析,提取報(bào)文的五元組信息和特征字信息。 如圖4所示,從報(bào)文應(yīng)用層提取的特征字信息為Host信息,根據(jù)此Host信息依次與應(yīng)用特征庫中的特征信息進(jìn)行匹配,并獲取相應(yīng)的標(biāo)記結(jié)果。
圖4 Wireshark抓取報(bào)文信息
如若從報(bào)文應(yīng)用層獲取的特征字信息與應(yīng)用特征庫中的特征信息成功匹配,則可在應(yīng)用特征庫中查找到該特征信息對應(yīng)的業(yè)務(wù)類型,并給該報(bào)文流打上相應(yīng)的業(yè)務(wù)標(biāo)記;如若未能成功匹配,就給報(bào)文打上一個(gè)未知標(biāo)記,并將報(bào)文特征字信息及其標(biāo)記結(jié)果更新到特征表中,后續(xù)云網(wǎng)關(guān)將根據(jù)特征表對報(bào)文流進(jìn)行策略分流處理,特征表部分特征信息如表1所示。
表1 特征表
4、策略分流
特征匹配完成后,業(yè)務(wù)報(bào)文都會被打上一層應(yīng)用類型的標(biāo)記結(jié)果,云網(wǎng)關(guān)根據(jù)標(biāo)記結(jié)果對報(bào)文進(jìn)行策略路由選路,打上未知標(biāo)記的報(bào)文都統(tǒng)一被送到公網(wǎng)服務(wù)器進(jìn)行卸載,而打上其他標(biāo)記結(jié)果的業(yè)務(wù)報(bào)文被分別送往不同的業(yè)務(wù)服務(wù)器進(jìn)行分流處理。報(bào)文內(nèi)部轉(zhuǎn)發(fā)過程如圖5所示,上述QQ業(yè)務(wù)類型的報(bào)文經(jīng)過特征識別后會打上標(biāo)記tag8,云網(wǎng)關(guān)根據(jù)標(biāo)記結(jié)果配置相應(yīng)的策略路由指定下一跳轉(zhuǎn)發(fā),這樣QQ業(yè)務(wù)報(bào)文就被送到IP為192.168.2.10的業(yè)務(wù)服務(wù)器進(jìn)行業(yè)務(wù)處理了。
圖5 報(bào)文內(nèi)部轉(zhuǎn)發(fā)過程
5、總結(jié)
基于云網(wǎng)關(guān)的深度報(bào)文檢測系統(tǒng)通過對報(bào)文的應(yīng)用信息進(jìn)行感知和識別,實(shí)現(xiàn)了對網(wǎng)絡(luò)中各項(xiàng)具體業(yè)務(wù)運(yùn)行情況的有效管理,主要包括業(yè)務(wù)識別、業(yè)務(wù)控制以及業(yè)務(wù)統(tǒng)計(jì)功能。
1) 業(yè)務(wù)識別:主要分為對運(yùn)營商開通的合法業(yè)務(wù)和運(yùn)營商需要進(jìn)行監(jiān)管的業(yè)務(wù)進(jìn)行識別,第一類業(yè)務(wù)可以通過IP五元組來進(jìn)行識別,第二類業(yè)務(wù)需要通過DPI技術(shù)來進(jìn)行深度檢測,通過解析數(shù)據(jù)包來確定業(yè)務(wù)具體內(nèi)容和信息。
2)業(yè)務(wù)控制:可以根據(jù)既定的策略對網(wǎng)絡(luò)進(jìn)行配置,從而對業(yè)務(wù)流實(shí)現(xiàn)控制,主要包括轉(zhuǎn)發(fā)流向、限制帶寬、阻斷、整形、丟棄等處理。
3)業(yè)務(wù)統(tǒng)計(jì):根據(jù)DPI的識別結(jié)果對一定時(shí)間內(nèi)的流量行為進(jìn)行統(tǒng)計(jì),包括:流量流向、業(yè)務(wù)占比、訪問網(wǎng)站TOPN等。統(tǒng)計(jì)應(yīng)用類型的使用比率調(diào)整該業(yè)務(wù)的服務(wù)優(yōu)先級,統(tǒng)計(jì)用戶正在使用哪種業(yè)務(wù)進(jìn)行視頻播放、即時(shí)通訊、購物支付以及游戲娛樂,也可以統(tǒng)計(jì)出消耗網(wǎng)絡(luò)帶寬的非法P2P、VOIP等業(yè)務(wù)。
參考文獻(xiàn)
[1]?https://www.cnblogs.com/qingchen1984/p/6482961.html, 2017.3.1.