本發(fā)明涉及計算機網(wǎng)絡數(shù)據(jù)
技術(shù)領(lǐng)域:
:,特別涉及一種流量引導方法和裝置。
背景技術(shù):
::隨著互聯(lián)網(wǎng)技術(shù)的高速發(fā)展,對客戶端流量的疏導需求日益膨脹,透明代理是用于流量疏導的常用技術(shù)之一。透明代理是指客戶端根本不需要知道有代理服務器的存在,即用戶不用做任何設置,客戶端請求的流量在通過透明代理的設備,比如路由器之類的,能夠獲取客戶端訪問的目的網(wǎng)際協(xié)議地址(ip)和端口,然后回源,多用于路由器的網(wǎng)絡地址轉(zhuǎn)換(nat)轉(zhuǎn)發(fā)?,F(xiàn)有的透明代理技術(shù)存在有以下一些問題:(1)現(xiàn)有技術(shù)在流量轉(zhuǎn)發(fā)方面只能進行回源處理;(2)現(xiàn)有的透明代理功能過于單一,沒有流量識別和流量疏導功能。技術(shù)實現(xiàn)要素:為了解決現(xiàn)有技術(shù)的問題,本發(fā)明實施例提供了一種流量引導方法和裝置。所述技術(shù)方案如下:一方面,一種流量引導方法,包括以下步驟:導入流量至第一代理服務器的代理服務模塊;所述代理服務模塊對所述流量進行識別,并根據(jù)識別結(jié)果選擇對應的引導規(guī)則對所述流量進行引導;其中所述引導規(guī)則包含引導所述流量直接回源,引導所述流量到流量處理服務器,引導所述流量到第二代理服務器,以及丟棄所述流量進一步的,當所述第一代理服務器的運行模式為本地代理服務模式時,所述導入流量至第一代理服務器的代理服務模塊包含通過交換機或網(wǎng)橋?qū)⒖蛻舳税l(fā)送的流量引導到本地,再通過所述第一代理服務器的流量劫持模塊將所述流量導入至所述代理服務模塊;當所述第一代理服務器的運行模式為遠端代理服務模式時,所述導入流量至第一代理服務器的代理服務模塊包含根據(jù)所述引導規(guī)則引導所述流量至所述代理服務模塊。具體的,流量劫持模塊將流量導入至代理服務模塊的具體方法包括:對于傳輸控制協(xié)議流量,通過配置iptables規(guī)則,重定向所述傳輸控制協(xié)議流量到所述代理服務模塊;對于用戶數(shù)據(jù)報協(xié)議流量,通過配置iptables規(guī)則,并使用透明代理和配置路由規(guī)則引導所述用戶數(shù)據(jù)報協(xié)議流量到所述代理服務模塊;對于網(wǎng)絡控制報文協(xié)議流量或通用路由封裝協(xié)議流量,通過配置iptables規(guī)則,并設置標記和配置路由規(guī)則引導所述網(wǎng)絡控制報文協(xié)議流量或通用路由封裝協(xié)議流量到本地還回接口,并被所述代理服務模塊獲取。進一步的,所述代理服務模塊對所述流量進行識別之前更包括步驟:對所述流量進行前置引導規(guī)則匹配,若匹配成功,所述流量則按照前置引導規(guī)則對應的流量引導規(guī)則進行引導;若匹配不成功,則對所述流量進行識別。具體的,前置引導規(guī)則包括:網(wǎng)際協(xié)議地址引導規(guī)則,端口引導規(guī)則和冷熱網(wǎng)際協(xié)議地址規(guī)則。具體的,第一代理服務器和第二代理服務器通過私有多路復用協(xié)議進行通信。具體的,第二代理服務器的運行模式為遠端代理服務模式。具體的,所述第二代理服務器接收到所述流量后,對其進行識別,并根據(jù)識別結(jié)果對應的流量引導規(guī)則對所述流量進行引導。具體的,所述第一代理服務器和所述第二代理服務器的運行系統(tǒng)內(nèi)核為linux內(nèi)核。另一方面,一種流量引導裝置,包括:第一代理服務器,第二代理服務器,源站服務器和流量處理服務器,所述第一代理服務器和所述第二代理服務器相互連接,并且分別連接于源站服務器和流量處理服務器,其中,所述第一代理服務器包含流量劫持模塊和代理服務模塊,所述流量劫持模塊導入所述流量至所述代理服務模塊,所述代理服務模塊對所述流量進行識別和引導。進一步的,所述第一代理服務器與客戶端之間通過交換機或網(wǎng)橋連接。進一步的,所述交換機或所述網(wǎng)橋?qū)碜运隹蛻舳说牧髁繉胫了龅谝淮矸掌?,所述流量劫持模塊將所述流量導入至所述代理服務模塊。進一步的,所述代理服務模塊包含流量識別單元、協(xié)議規(guī)則單元和流量引導單元,所述代理服務模塊獲取所述流量后,所述流量識別單元對所述流量進行識別,所述流量引導單元根據(jù)識別結(jié)果從所述協(xié)議規(guī)則單元獲取對應的流量引導規(guī)則,并按照所述流量引導規(guī)則對所述流量進行引導。進一步的,所述流量識別單元包含http子單元、p2p子單元、game子單元和pptp子單元,所述流量經(jīng)過所述子單元的識別得出識別結(jié)果。進一步的,所述協(xié)議規(guī)則單元中保存有針對各種流量識別結(jié)果對應的流量引導規(guī)則,所述流量引導規(guī)則包含引導所述流量直接回源,引導所述流量到流量處理服務器,引導所述流量到第二代理服務器,以及丟棄所述流量。進一步的,所述代理服務模塊更包含前置引導單元,所述代理服務模塊獲取所述流量后,所述前置引導單元對所述流量進行前置引導規(guī)則匹配,若匹配成功,所述流量則進入所述流量引導單元進行引導處理;若匹配失敗,所述流量進入所述流量識別單元進行識別,所述流量引導單元根據(jù)識別結(jié)果對所述流量進行引導。進一步的,所述第一代理服務器與所述第二代理服務器之間通過私有多路復用協(xié)議進行通信。本發(fā)明實施例提供的技術(shù)方案帶來的有益效果是:本發(fā)明使用iptables截獲流量并用重定向和透明代理的方法把客戶端發(fā)出的流量引導到本地代理服務中;本地代理服務可對截獲的流量做流量識別,并根據(jù)配置規(guī)則對識別出的不同流量做相應的疏導,可疏導到不同的代理服務器上、在本地直接回源或直接丟棄。本發(fā)明基于透明代理技術(shù),并在此基礎(chǔ)上實現(xiàn)了流量的智能疏導,不僅無需客戶端進行任何額外的配置,而且解決傳統(tǒng)透明代理中只能做網(wǎng)絡地址轉(zhuǎn)換回源,功能單一、無法對流經(jīng)的流量做識別以及智能疏導的問題。附圖說明為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明一較佳實施例提供的流量引導方法流程圖;圖2為本發(fā)明另一較佳實施例提供的流量引導方法流程圖;圖3是本發(fā)明一較佳實施例提供的流量引導裝置結(jié)構(gòu)圖;圖4是圖3所示實施例中代理模塊的一種結(jié)構(gòu)圖;圖5是圖3所示實施例中代理模塊的另一種結(jié)構(gòu)圖;具體實施方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明實施方式作進一步地詳細描述。本領(lǐng)域技術(shù)人員可由本說明書所揭露的內(nèi)容輕易地了解本發(fā)明的其他優(yōu)點與功效。本發(fā)明還可以通過另外不同的具體實施方式加以實施或應用,本說明書中的各項細節(jié)也可以基于不同觀點與應用,在沒有背離本發(fā)明的精神下進行各種修飾或改變。需說明的是,在不沖突的情況下,以下實施例及實施例中的特征可以相互組合。以下實施例中所提供的圖示僅以示意方式說明本發(fā)明的基本構(gòu)想,遂圖式中僅顯示與本發(fā)明中有關(guān)的組件而非按照實際實施時的組件數(shù)目、形狀及尺寸繪制,其實際實施時各組件的型態(tài)、數(shù)量及比例可為一種隨意的改變,且其組件布局型態(tài)也可能更為復雜。首先,對本發(fā)明說明書中的技術(shù)詞匯進行解釋說明。以下說明是對本發(fā)明技術(shù)的解釋,但本發(fā)明并不以此為限。ip地址,是指互聯(lián)網(wǎng)協(xié)議地址(英語:internetprotocoladdress,又譯為網(wǎng)際協(xié)議地址)。ip地址是ip協(xié)議提供的一種統(tǒng)一的地址格式,它為互聯(lián)網(wǎng)上的每一個網(wǎng)絡和每一臺主機分配一個邏輯地址,以此來屏蔽物理地址的差異。iptables是與linux內(nèi)核集成的ip信息包過濾系統(tǒng),該系統(tǒng)有利于在linux系統(tǒng)上更好地控制ip信息包過濾和防火墻配置。iptables是工作在用戶空間中,定義規(guī)則的工具,本身并不算是防火墻。它定義的規(guī)則,可以讓在內(nèi)核空間當中的netfilter(網(wǎng)絡過濾器)來讀取,并且實現(xiàn)讓防火墻工作。iptables工作在內(nèi)核當中,用來設置、維護和檢查linux內(nèi)核的ip包過濾規(guī)則,可以將規(guī)則組成一個列表,實現(xiàn)絕對詳細的訪問控制功能。iptables可以定義不同的表,每個表都包含幾個內(nèi)部的鏈,也能包含用戶定義的鏈。每個鏈都是一個規(guī)則列表,對對應的包進行匹配:每條規(guī)則指定應當如何處理與之相匹配的包,也可以跳向同一個表內(nèi)的用戶定義的鏈。透明代理,是指客戶端根本不需要知道有代理服務器的存在,它改變你的requestfields(報文),并會傳送真實ip。target,指的是通過iptables注冊到netfilter的規(guī)則所對應的操作,也就是要對規(guī)則匹配到的數(shù)據(jù)包進行的操作,比如accept(接受)、drop(丟棄)等。rawsocket,即原始套接字,可以接收本機網(wǎng)卡上的數(shù)據(jù)幀或者數(shù)據(jù)包,用于監(jiān)聽網(wǎng)絡的流量和分析。如圖1所示,圖1繪示本發(fā)明一較佳實施例所提供的流量引導方法,該流量引導方法包括以下步驟:步驟s101,導入流量至第一代理服務器的代理服務模塊。具體而言,本發(fā)明實施例中的第一代理服務器包含兩種運行模式,分別為本地代理服務模式和遠端代理服務模式。在本地代理服務模式下,導入至第一代理服務器的流量是通過交換機策略路由、ospf動態(tài)路由或網(wǎng)橋直連的方式將客戶端的流量引導至本地,第一代理服務器的的流量劫持模塊把流量引導到第一代理服務器的代理服務模塊,具體而言,流量劫持模塊將截獲的流量轉(zhuǎn)發(fā)至代理服務模塊監(jiān)聽的端口,再由代理服務模塊通過其監(jiān)聽端口接收。在本發(fā)明的實施例中,流量劫持模塊根據(jù)不同的流量類型,采用相應方法將流量導入至代理服務模塊:對于傳輸控制協(xié)議(transmissioncontrolprotocol,tcp)流量,通過配置iptables規(guī)則,重定向tcp流量到本地理服務模塊。具體而言,通過對本地linux系統(tǒng)中的iptables規(guī)則進行配置,將協(xié)議類型為tcp的流量的目的網(wǎng)際協(xié)議地址(internetprotocoladdress,ip)和目的端口重定向為代理服務模塊監(jiān)聽的ip地址和tcp端口,從而實現(xiàn)導入本地的tcp流量被代理服務模塊監(jiān)聽并接收。對于用戶數(shù)據(jù)報協(xié)議(userdatagramprotocol,udp)流量,通過配置iptables規(guī)則,并使用透明代理引導udp流量到代理服務模塊。具體而言,通過對本地linux系統(tǒng)中的iptables規(guī)則進行配置,將協(xié)議類型為udp的流量通過透明代理來建立與代理服務模塊的聯(lián)系,并對該udp流量進行標記,并配置本地策略路由,通過指定被標記請求所要查找的路由表,再配置本地路由,在路由表中添加默認路由規(guī)則,把被標記udp流量往本地還回接口,從而被代理服務模塊接收。對于網(wǎng)絡控制報文協(xié)議(internetcontrolmessageprotocol,icmp)流量和通用路由封裝協(xié)議(genericroutingencapsulation,gre)流量,通過配置iptables規(guī)則,并設置標記和配置路由規(guī)則引導icmp流量或gre流量到本地還回接口,并被代理服務模塊獲取。具體而言,通過對本地linux系統(tǒng)中的iptables規(guī)則進行配置,對協(xié)議類型為icmp或gre的流量進行標記,同時配置本地策略路由和路由規(guī)則,指定被標記的流量所要查找的路由表,把被標記的流量發(fā)往本地還回接口,從而被本地代理服務模塊接收。由于icmp流量或gre流量使用的是rawsocket,只要把icmp流量或gre流量路由到本地還回接口以后,本地還回接口被本地代理服務模塊所監(jiān)聽,代理服務模塊就能夠通過rawsocket接收到這個流量。由此可見,當?shù)谝淮矸掌魈幱诒镜卮矸者\行模式時,第一代理服務器接收到的流量是由本地流量劫持模塊轉(zhuǎn)發(fā)客戶端流量到相應監(jiān)聽端口的流量。當?shù)谝淮矸掌鞯倪\行模式為遠端代理服務模式時,導入遠端第一代理服務器的代理服務模塊的流量則是由其他代理服務器引導而來的流量,代理服務模塊是通過對相應端口的監(jiān)聽,來接收該些流量。遠端代理服務模式和本地代理模式的區(qū)別在于,代理服務器所接收的流量來源不同,本地代理代理服務模式中,代理服務器接收到的是由客戶端直接發(fā)出的流量,而在遠端代理服務模式中,代理服務器接收到的流量,則是經(jīng)過其他代理服務器進行處理過的流量,所以當代理服務模塊處于不同的運行模式時,其所監(jiān)聽的端口是不同的。在本實施例的流量引導方法中,第一代理服務器的運行模式可能是本地代理服務模式,也可能是遠端代理服務模式,而第二代理服務器的運行模式一定為遠端代理服務模式。步驟s102,代理服務模塊對流量進行識別,并根據(jù)識別結(jié)果選擇對應的引導規(guī)則對流量進行引導。代理服務模塊收到導入的流量后,識別流量為http流量、p2p流量、game流量或pptp流量或默認流量,根據(jù)識別結(jié)果,選擇對應的引導規(guī)則,根據(jù)引導規(guī)則對流量進行引導,包括引導流量直接回源、引導流量到流量處理服務器、引導流量到第二代理服務器或丟棄流量。本實施例中,將流量識別為http流量、p2p流量、game流量、pptp流量或默認流量,每種識別結(jié)果都有對應的引導規(guī)則,該些引導規(guī)則是預先設定好的,也是根據(jù)實際需求進行設置的,如此一來,代理模塊不僅可對流量進行識別區(qū)分,還能根據(jù)不同的流量類型進行分類引導,從而更加智能化的對流量進行疏導,不僅如此,不同流量類型對應的引導規(guī)則也可以分別進行設置,從而可以更加清晰準確的對流量進行疏導,并根據(jù)實際需求進行相應調(diào)整。值得注意的是,本發(fā)明的實施例中,對流量進行識別的規(guī)則是可以實際需求調(diào)整的,例如在某些實施例中,僅對http流量和game流量進行識別,并設置相應的引導規(guī)則,其他流量則按照設置的規(guī)則進行統(tǒng)一引導,不僅如此,還可以對識別的類型進行設置,例如可將流量識別為tcp流量、udp流量等,從其他維度對流量進行識別,從而更好的滿足應用場景的實際需求。本發(fā)明的實施例中,第一代理服務器與第二代理服務器中間通過私有多路復用協(xié)議進行通信,從而可以實現(xiàn)多個請求在單個tcp通道中傳輸,節(jié)省端口的使用。流量處理服務器包含但不限于squid服務器和p2pcs緩存服務器。由此可見,本發(fā)明提供的流量引導方法,不僅可以對流量進行識別,還能對識別后的流量分別進行引導,而且引導的方式也可以按需設置,解決了傳統(tǒng)透明代理中只能做網(wǎng)絡地址轉(zhuǎn)換回源,功能單一、無法對流經(jīng)的流量做識別以及智能疏導的問題。在本發(fā)明的另一較佳實施例中,如圖2所示,與圖1所示的實施例區(qū)別在于步驟s102前,還包括:步驟s103,對流量進行前置引導規(guī)則匹配。當流量通過步驟s101導入到第一代理服務器的代理服務模塊后,根據(jù)預設的前置引導規(guī)則對流量進行匹配,若匹配成功,則進入步驟s104,若匹配不成功,則進入步驟s102。具體而言,對流量進行前置引導規(guī)則匹配可以對一些特定的流量進行預先過濾處理,例如,對所訪問的ip為熱度ip的流量可直接進行引導,而無需經(jīng)過識別,或者對一些錯誤的訪問或攻擊性的流量,可通過前置引導規(guī)則匹配預先進行攔截,并對其進行相應的處理,簡而言之,前置引導規(guī)則匹配步驟的設定,是為了進一步完善流量的疏導方法,使得一些特定的流量可以直接進行特定處理,從而提升整體性能和智能性。其中,前置引導規(guī)則為預先設置在代理服務模塊中的規(guī)則,主要包括包括:ip地址引導規(guī)則,端口引導規(guī)則和冷熱ip地址規(guī)則,其中,ip地址引導規(guī)則是通過流量請求的源ip地址或是目的ip地址進行引導;端口引導規(guī)則是通過請求的目的端口來引導;冷熱ip地址規(guī)則是通過歷史數(shù)據(jù)計算出客戶流量的行為,比如訪問哪些目的ip地址最頻繁,從而形成一套冷熱ip地址的引導方案??梢岳斫獾氖牵爸靡龑б?guī)則可以按照實際需求進行設定,并不受限于本說明書中的描述。步驟s104,按照前置引導規(guī)則對應的流量引導規(guī)則進行引導。流量經(jīng)過前置引導規(guī)則匹配成功后,將根據(jù)預設的前置引導規(guī)則對應的流量引導規(guī)則進行引導,引導的方式主要包括引導流量直接回源、引導流量到流量處理服務器、引導流量到第二代理服務模塊或丟棄流量。可以理解的是,該流量引導規(guī)則是預先設定在代理服務模塊中的,并且是可以根據(jù)實際需求進行設定的,并不受限于本說明書中的描述。在本較佳實施例中,步驟s101與步驟s102的及其他內(nèi)容與圖1所示實施例相同,故不再贅述。本較佳實施例中,通過增設了前置引導規(guī)則配合,可對一些特定的流量進行特別處理,從而更進一步的提升了流量引導方法的智能性,從而更好的滿足應用場景的實際需求。此外,本發(fā)明還提供的一種流量引導裝置1,如圖3所示,包括:第一代理服務器10、第二代理服務器20、源站服務器30和流量處理服務器40。第一代理服務器10和第二代理服務器20相互連接,并且分別連接于源站服務器30和流量處理服務器40。第一代理服務器10包含流量劫持模塊11和代理服務模塊12。第一代理服務器10包含兩種運行模式,分別為本地代理服務模式和遠端代理服務模式。在本地代理服務模式下,流量劫持模塊11引導流量到代理服務模塊12,該些流量是通過交換機策略路由、ospf動態(tài)路由或網(wǎng)橋直連的方式將客戶端的流量引導至第一代理服務器10,并被流量劫持模塊11截獲的流量。具體而言,流量劫持模塊11將截獲的流量轉(zhuǎn)發(fā)至代理服務模塊12監(jiān)聽的端口,代理服務模塊12通過其監(jiān)聽端口接收。在本發(fā)明的實施例中,流量劫持模塊11根據(jù)不同的流量類型,采用不同的方法將流量導入至代理服務模塊12:對于傳輸控制協(xié)議(transmissioncontrolprotocol,tcp)流量,通過配置iptables規(guī)則,重定向tcp流量到代理服務模塊12。具體而言,通過對本地系統(tǒng)中的iptables規(guī)則進行配置,將協(xié)議類型為tcp的流量的目的網(wǎng)際協(xié)議地址(internetprotocoladdress,ip)和目的端口重定向為代理服務模塊12監(jiān)聽的ip地址和tcp端口,從而實現(xiàn)導入本地的tcp流量被代理服務模塊12監(jiān)聽并接收。對于用戶數(shù)據(jù)報協(xié)議(userdatagramprotocol,udp)流量,通過配置iptables規(guī)則,并使用透明代理引導udp流量到代理服務模塊12。具體而言,通過對本地系統(tǒng)中的iptables規(guī)則進行配置,將協(xié)議類型為udp的流量通過透明代理來建立與代理服務模塊12的聯(lián)系,并對該udp流量進行標記,并配置本地策略路由,通過指定被標記請求所要查找的路由表,再配置本地路由,在路由表中添加默認路由規(guī)則,把被標記udp流量發(fā)往本地還回接口,從而被代理服務模塊12接收。對于網(wǎng)絡控制報文協(xié)議(internetcontrolmessageprotocol,icmp)流量和通用路由封裝協(xié)議(genericroutingencapsulation,gre)流量,通過配置iptables規(guī)則,并設置標記和配置路由規(guī)則引導icmp流量或gre流量到本地還回接口,并被代理服務模塊12獲取。具體而言,通過對本地系統(tǒng)中的iptables規(guī)則進行配置,對協(xié)議類型為icmp或gre的流量進行標記,同時配置本地策略路由和路由規(guī)則,指定被標記的流量所要查找的路由表,把被標記的流量發(fā)往本地還回接口,從而被代理服務模塊12接收。由于icmp流量或gre流量使用的是rawsocket,只要把icmp流量或gre流量路由到本地還回接口以后,本地還回接口被代理服務模塊12所監(jiān)聽,代理服務模塊12就能夠通過rawsocket接收到這個流量。由此可見,當?shù)谝淮矸掌?0處于本地代理服務運行模式時,代理服務模塊12接收到的流量是由流量劫持模塊11轉(zhuǎn)發(fā)客戶端流量到相應監(jiān)聽端口的流量。當?shù)谝淮矸掌?0的運行模式為遠端代理服務模式時,第一代理服務器10也可稱為遠端代理服務器,導入代理服務模塊12的流量則是由其他本地或遠端代理服務器引導而來的流量,代理服務模塊12也是通過對相應端口的監(jiān)聽,來接收該些流量。由此本發(fā)明的實施例中,代理服務器在不同的運行模式下,代理服務模塊12所監(jiān)聽端口也會相應進行調(diào)整。如圖3所示,本實施例中,第一代理服務器10通過交換機策略路由或ospf動態(tài)路由或網(wǎng)橋直連的方式(圖未視)連接于客戶端2,客戶端2發(fā)出的流量由第一代理服務器10接收;而第二代理服務器20所接收到的流量則是來自第一代理服務器10,而不是直接來自于客戶端2,故本實施例中,第一代理服務器10的當前運行模式為本地代理服務模式,第二代理服務器20的當前運行模式為遠端代理服務模式。值得注意的是,本實施例中的代理服務器的運行模式可以隨實際需求進行調(diào)整,而不限于某一固定運行模式。如圖4所示,圖4繪示了本實施例中第一代理服務器10的代理服務模塊12的具體結(jié)構(gòu)圖。第一代理服務模塊12包含流量識別單元121a、流量引導單元122a和協(xié)議規(guī)則單元123a,第一代理服務模塊12接收到流量后,識別單元121a對流量進行識別,并將流量及識別結(jié)果發(fā)送至流量引導單元122a,流量引導單元122a接收流量,并根據(jù)識別結(jié)果從協(xié)議規(guī)則單元123a獲取對應的引導規(guī)則,對流量進行引導。具體而言,流量識別單元121a包含http子單元1211a、p2p子單元1212a、game子單元1213a和pptp子單元1214a,流量識別單元121a在對流量進行識別時,是經(jīng)過該些子單元對流量進行識別而得出的結(jié)果,例如http子單元1211a先對流量進行識別,識別其是否符合http流量特征,若符合,則識別該流量為http流量,并將該流量及識別結(jié)果發(fā)送至流量引導單元122a;若不符合,則傳入其他子單元進行識別;若該些子單元都無法對流量給出識別結(jié)構(gòu),則給定該流量的識別結(jié)果為默認流量,并發(fā)送至流量引導單元122a。在本發(fā)明的實施例中,可根據(jù)實際需求對該些子單元分別進行開啟和關(guān)閉的設置,例如只開啟http子單元和game子單元,關(guān)閉p2p子單元和pptp子單元,那么流量識別單元121a給定的識別結(jié)果則包含http流量、或game流量、或默認流量。協(xié)議規(guī)則單元123a中包含各流量識別結(jié)果對應的流量引導規(guī)則,該些流量引導規(guī)則包含:引導流量直接回源(即轉(zhuǎn)發(fā)至源站服務器40)、引導流量到流量處理服務器30、引導流量到第二代理服務模塊20或丟棄流量。舉例而言,若流量的識別結(jié)果為http流量,那么根據(jù)流量引導規(guī)則,該可能會對該流量直接回源,或者將該流量引導至流量處理服務器,或引導到第二代理服務模塊或丟棄,具體的引導結(jié)果也是根據(jù)設置的規(guī)則進行選定的,例如,設置目的ip是訪問百度網(wǎng)址的,則直接進行回源??梢岳斫獾氖?,協(xié)議規(guī)則單元123a中的流量引導規(guī)則可根據(jù)實際需求進行設定,也就是說,各識別結(jié)果的流量對應的引導規(guī)則相互之間是相互獨立設定的,并無關(guān)聯(lián),而且每種識別結(jié)果對應的具體引導規(guī)則所包含的內(nèi)容也并非一定是統(tǒng)一的,例如,識別結(jié)果為http流量的,對應的引導規(guī)則可包含上述四種,而識別結(jié)果為默認流量的,對應的引導規(guī)則可僅為丟棄流量。由此可見,本發(fā)明實施例中,針對不同的流量識別結(jié)果對應的流量引導規(guī)則可按實際需求分別設定,從而更進一步的提升了流量疏導的智能性,使其更加貼合實際需求。圖5繪示圖3所示實施例中代理服務模塊的另一種具體結(jié)構(gòu)圖。如圖5所示,代理服務模塊12包含流量識別單元121b,流量引導單元122b,協(xié)議規(guī)則單元123b和前置引導單元124,代理服務模塊12獲取流量后,先由前置引導單元124對流量進行前置引導規(guī)則匹配,若匹配成功,流量則進入流量引導單元122b進行引導處理;若匹配失敗,流量進入流量識別單元121b進行識別,并將流量及識別結(jié)果發(fā)送至流量引導單元122b,流量引導單元122b接收流量,并根據(jù)識別結(jié)果從協(xié)議規(guī)則單元123b獲取對應的引導規(guī)則,對流量進行引導。具體而言,前置引導單元124通過對流量進行前置引導規(guī)則匹配,并將匹配成功的流量直接發(fā)送給流量引導單元122b,流量引導單元122b根據(jù)協(xié)議規(guī)則123b中對應的流量引導規(guī)則對流量進行引導,而匹配不成功的流量則進入識別單元121b進行流量識別。前置引導單元124對流量進行前置引導規(guī)則匹配是為了能對一些特定的流量進行預先過濾并直接發(fā)送給流量引導單元122b進行流量引導,例如,對所訪問的ip為熱度ip的流量可直接進行引導,而無需經(jīng)過識別,或者對一些錯誤的訪問或攻擊性的流量,可通過前置引導規(guī)則匹配預先進行攔截,并對其進行相應的處理,簡而言之,前置引導規(guī)則單元124的設定,是為了進一步完善流量引導裝置對流量的疏導,使得一些特定的流量可以直接進行特定處理,從而提升整體性能和智能性。其中,前置引導規(guī)則為預先設置在代理服務模塊中的規(guī)則,主要包括包括:ip地址引導規(guī)則,端口引導規(guī)則和冷熱ip地址規(guī)則,其中,ip地址引導規(guī)則是通過流量請求的源ip地址或是目的ip地址進行引導;端口引導規(guī)則是通過請求的目的端口來引導;冷熱ip地址規(guī)則是通過歷史數(shù)據(jù)計算出客戶流量的行為,比如訪問哪些目的ip地址最頻繁,從而形成一套冷熱ip地址的引導方案??梢岳斫獾氖?,前置引導規(guī)則可以按照實際需求進行設定,并不受限于本說明書中的描述。在本發(fā)明的實施例中,對于前置引導單元124匹配成功的流量,其前置引導規(guī)則匹配結(jié)果可包含進一步的匹配結(jié)果,例如匹配該流量為熱門ip請求流量,或為攻擊性流量,該些匹配結(jié)果會一并發(fā)送至流量引導單元122b,流量引導單元122b將根據(jù)匹配結(jié)果相應的引導規(guī)則對該流量進行引導。流量識別單元121b包含http子單元1211b、p2p子單元1212b、game子單元1213b和pptp子單元1214b,流量識別單元121b接收由前置引導單元124發(fā)送來的匹配不成功的流量,并對該流量進行識別,在對流量進行識別時,是經(jīng)過該些子單元對流量進行識別而得出的結(jié)果,例如http子單元1211b先對流量進行識別,識別其是否符合http流量特征,若符合,則識別該流量為http流量,并將該流量及識別結(jié)果發(fā)送至流量引導單元122b;若不符合,則傳入其他子單元進行識別;若該些子單元都無法對流量給出識別結(jié)構(gòu),則給定該流量的識別結(jié)果為默認流量,并發(fā)送至流量引導單元122b。在本發(fā)明的實施例中,可根據(jù)實際需求對該些子單元分別進行開啟和關(guān)閉的設置,例如只開啟http子單元和game子單元,關(guān)閉p2p子單元和pptp子單元,那么流量識別單元121b給定的識別結(jié)果則包含http流量、或game流量、或默認流量。協(xié)議規(guī)則單元123b中包含前置引導規(guī)則匹配結(jié)果對應的流量引導規(guī)則,和各流量識別結(jié)果對應的流量引導規(guī)則,該些流量引導規(guī)則包含:引導流量直接回源(即轉(zhuǎn)發(fā)至源站服務器40)、引導流量到流量處理服務器30、引導流量到第二代理服務模塊20或丟棄流量。舉例而言,若流量的識別結(jié)果為http流量,那么根據(jù)流量引導規(guī)則,可能會對該流量直接回源,或者將該流量引導至流量處理服務器,或引導到第二代理服務模塊或丟棄,具體的引導結(jié)果也是根據(jù)設置的規(guī)則進行選定的,例如,設置目的ip是訪問百度網(wǎng)址的,則直接進行回源??梢岳斫獾氖?,協(xié)議規(guī)則單元123b中的流量引導規(guī)則可根據(jù)實際需求進行設定,也就是說,匹配結(jié)果和各識別結(jié)果的流量對應的引導規(guī)則相互之間是相互獨立設定的,并無關(guān)聯(lián),而且每種識別結(jié)果對應的具體引導規(guī)則所包含的內(nèi)容也并非一定是統(tǒng)一的,例如,識別結(jié)果為http流量的,對應的引導規(guī)則可包含上述四種,而識別結(jié)果為默認流量的,對應的引導規(guī)則可僅為丟棄流量。在本實施例中,通過增設前置引導單元124對流量進行前置引導規(guī)則匹配可對一些特定的流量進行特別處理,從而更進一步的提升了流量引導方法的智能性,從而更好的滿足應用場景的實際需求。本發(fā)明的實施例中,第一代理服務器、第二代理服務器所包含的結(jié)構(gòu)是相同的,所能實現(xiàn)的功能也相同,區(qū)別在于,在當前場景中的運行模式不同,圖3所示實施例中,第一代理服務器10的運行模式為本地代理服務模式,故其直接接收來自客戶端2的流量,而第二代理服務器20則接收的是來自第一代理服務器10轉(zhuǎn)發(fā)而來的流量。而在不同運行模式下,第一代理服務器10和第二代理服務器20的具體規(guī)則設置不同,例如流量識別單元中的識別規(guī)則、協(xié)議規(guī)則單元中的流量引導規(guī)則可能會存在差異。本發(fā)明的實施例中,第一代理服務器10與第二代理服務器20中間通過私有多路復用協(xié)議進行通信,從而可以實現(xiàn)多個請求在單個tcp通道中傳輸,節(jié)省端口的使用。流量處理服務器30包含但不限于squid服務器和p2pcs緩存服務器。本發(fā)明使用iptables截獲流量并用重定向和透明代理的方法把流量引導到本地代理服務中;對截獲的流量做流量識別,并根據(jù)配置規(guī)則做相應的疏導,可疏導到不同的代理服務器上、在本地直接回源或直接丟棄。本發(fā)明解決傳統(tǒng)透明代理中只能做網(wǎng)絡地址轉(zhuǎn)換回源,功能單一、無法對流經(jīng)的流量做識別以及智能疏導的問題。上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本實施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性的勞動的情況下,即可以理解并實施。通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到各實施方式可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當然也可以通過硬件?;谶@樣的理解,上述技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品可以存儲在計算機可讀存儲介質(zhì)中,如rom/ram、磁碟、光盤等,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網(wǎng)絡設備等)執(zhí)行各個實施例或者實施例的某些部分所述的方法。以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。當前第1頁12當前第1頁12