• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于Netfilter的內(nèi)網(wǎng)流量監(jiān)控系統(tǒng)應(yīng)用研究

    2012-08-29 13:27:28張文盛侯整風(fēng)
    關(guān)鍵詞:重定向內(nèi)網(wǎng)網(wǎng)絡(luò)流量

    張文盛,侯整風(fēng)

    (1.合肥工業(yè)大學(xué) 計算機與信息學(xué)院,安徽 合肥 230009;2.安徽廣播電視大學(xué) 網(wǎng)絡(luò)中心,安徽 合肥 230022)

    隨著Internet迅速普及,用戶數(shù)不斷擴大,各種網(wǎng)絡(luò)應(yīng)用層出不窮,使得網(wǎng)絡(luò)流量的持續(xù)增長和固定帶寬之間的矛盾成為內(nèi)網(wǎng)的重要問題[1-2].進而,用戶有意或無意(病毒)發(fā)送大量數(shù)據(jù)包,占用過高網(wǎng)絡(luò)帶寬,甚至堵塞網(wǎng)絡(luò),造成對資源的不公平使用現(xiàn)象越來越頻繁[3-4].如何有效控制每個用戶的帶寬占用,使得大家公平有效使用帶寬便成為一個很現(xiàn)實和緊迫的課題.

    對用戶的流量監(jiān)控可量化為三個指標:連接數(shù),字節(jié)流量和包流量[5-6].連接是指,內(nèi)網(wǎng)用戶都是通過網(wǎng)關(guān)的NAT功能上網(wǎng),為了實現(xiàn)NAT,網(wǎng)關(guān)需要跟蹤和維持每個連接,建立連接數(shù)據(jù)庫,每個連接包括如下信息:源地址,目的地址,協(xié)議(TCP,UDP等),源端口,目的端口,網(wǎng)關(guān)轉(zhuǎn)換使用的地址,網(wǎng)關(guān)轉(zhuǎn)換使用的端口等.一個用戶建立太多的連接,網(wǎng)關(guān)會創(chuàng)建相同數(shù)量的這樣表項,占用大量內(nèi)存,檢索更耗時間.極端情況下,會導(dǎo)致內(nèi)存耗盡,系統(tǒng)死機,顯然需要控制每個用戶的連接數(shù).字節(jié)流量很好理解,就是我們通常說的流量,例如多少MB/s.包流量是指,用戶可發(fā)送大量的小包,總體的流量雖然不大,但每個包都會觸發(fā)網(wǎng)卡中斷來處理,導(dǎo)致中斷太多,系統(tǒng)疲于應(yīng)付處于癱瘓狀態(tài),因此有必要限制用戶的包速.這三個指標當(dāng)中,除連接數(shù)外,字節(jié)流量和包流量是有方向的,分成發(fā)送方向和接收方向,對應(yīng)內(nèi)網(wǎng)用戶的上傳和下載.

    Linux內(nèi)置的Netfilter框架非常優(yōu)秀,眾所周知的iptabes包過濾防火墻就是建立Netfilter框架之上[7-11].目前iptables功能已經(jīng)非常強大,被廣泛應(yīng)用于內(nèi)外網(wǎng)網(wǎng)關(guān),完成地址轉(zhuǎn)換和包過濾等任務(wù).其提供的模塊如Limit,Connbytes,Connlimit,Hashlimit,Recent等涉及對每個IP的帶寬管理,但不成系統(tǒng).Linux還內(nèi)置了鏈路層Sched框架,提供TBF,HTB,SFQ等隊列規(guī)程,可實現(xiàn)QOS和流量控制功能.能部分實現(xiàn)對每個IP的帶寬管理,但是應(yīng)用起來很復(fù)雜.我們利用Netfilter和Sched框架,建立一套基于IP的內(nèi)網(wǎng)流量監(jiān)控系統(tǒng),統(tǒng)計每個內(nèi)網(wǎng)IP地址的連接數(shù)、字節(jié)流量和包流量,檢測惡意流量,按照管理員設(shè)置的策略進行限制,使每個內(nèi)網(wǎng)用戶都能公平合理地利用網(wǎng)絡(luò)資源[12-13].

    1 系統(tǒng)設(shè)計

    本系統(tǒng)部署時的拓撲圖如圖1所示.本系統(tǒng)主要由三個部分組成:網(wǎng)關(guān),管理服務(wù)器和用戶.內(nèi)網(wǎng)用戶通過網(wǎng)關(guān)提供的NAT功能上網(wǎng),網(wǎng)關(guān)應(yīng)該部署在網(wǎng)絡(luò)出口處并接入主交換機,網(wǎng)關(guān)配置兩塊網(wǎng)卡,一塊配外網(wǎng)地址接互聯(lián)網(wǎng),一塊配內(nèi)網(wǎng)地址接主交換,主交換下接匯聚層或接入層交換機,接入層交換機直接接入用戶終端,形成樹形結(jié)構(gòu).管理服務(wù)器直接接入主交換機,和網(wǎng)關(guān)進行通訊,管理數(shù)據(jù)存放在數(shù)據(jù)庫中.

    圖1 系統(tǒng)部署拓撲圖

    詳細的系統(tǒng)功能和系統(tǒng)間連接及功能交互如圖2所示.

    圖2 系統(tǒng)功能及連接圖

    網(wǎng)關(guān)是系統(tǒng)核心,網(wǎng)關(guān)的主要功能分三個部分,流量統(tǒng)計、流量控制和訪問重定向.流量統(tǒng)計是記錄為每個用戶建立的連接數(shù)、轉(zhuǎn)發(fā)的字節(jié)數(shù)和包數(shù),設(shè)計內(nèi)容見表1.

    統(tǒng)計內(nèi)容按協(xié)議、數(shù)據(jù)方向、數(shù)據(jù)超限否進行分類.協(xié)議分TCP、UDP、ICMP和其他四種.數(shù)據(jù)方向分內(nèi)到外和外到內(nèi).每個連接上也計數(shù),統(tǒng)計內(nèi)容和上面基本相同.

    流量控制是根據(jù)管理員設(shè)置的策略對用戶的連接數(shù)、字節(jié)速和包速進行限制.限制策略有兩種,直接丟棄數(shù)據(jù)和執(zhí)行QOS,執(zhí)行QOS是指不丟棄數(shù)據(jù),但是降低數(shù)據(jù)包的優(yōu)先級,在滿足正常流量的情況下再處理,這里用到Sched框架和Prio隊列規(guī)程.除了連接數(shù),字節(jié)速和包速的限速算法采用經(jīng)典的令牌桶算法.

    表1 流量統(tǒng)計

    訪問重定向是對未認證的用戶,只開放DNS查詢和對于80端口的HTTP訪問,并全部重定向到本機,由應(yīng)用層的的Bind進程完成DNS服務(wù),由Nginx進程完成URL重定向到管理服務(wù)器的登錄驗證頁面,引導(dǎo)用戶先驗證,驗證通過后才開放全部訪問權(quán)限.

    除了主要功能外,網(wǎng)關(guān)還需要一個控制服務(wù)器進程,完成和管理服務(wù)器的通訊和服務(wù).控制服務(wù)器根據(jù)接收到的命令,使用系統(tǒng)調(diào)用接口從內(nèi)核模塊接收統(tǒng)計數(shù)據(jù)或者向內(nèi)核模塊設(shè)置參數(shù).管理服務(wù)器運行在B/S模式下,使用基于MVC的PHP語言和MySQL數(shù)據(jù)庫開發(fā),需要專用的通訊協(xié)議和PHP擴展完成控制服務(wù)器和服務(wù)器間的通訊.B/S模式是無狀態(tài)的,而流量監(jiān)視任務(wù)需要計算兩次計數(shù)的差值,解決方法是將PHP Session ID的MD5值作為會話鍵值傳給控制服務(wù)器,在控制服務(wù)器上進行會話綁定,由控制服務(wù)器完成計算,返回計算結(jié)果.

    2 系統(tǒng)實現(xiàn)

    本系統(tǒng)的實現(xiàn)分成四個部分:網(wǎng)關(guān)內(nèi)核模塊、控制服務(wù)器、PHP擴展和管理系統(tǒng).

    2.1 網(wǎng)關(guān)內(nèi)核模塊

    根據(jù)系統(tǒng)功能,內(nèi)核模塊需要在Netfilter架構(gòu)中注冊兩個鉤子:重定向鉤子和流量監(jiān)控鉤子,如圖3所示.

    重定向鉤子的優(yōu)先級在Mangle表的PREROUTING鏈和Nat表的PREROUTING鏈之間.此時連接已經(jīng)建立,我們?yōu)槊總€內(nèi)網(wǎng)IP地址建立信息數(shù)據(jù)庫和連接隊列,將這些連接掛入對應(yīng)隊列.重定向鉤子查詢對應(yīng)內(nèi)網(wǎng)IP是否驗證過,如果沒有,給到53端口的UDP包和到80端口的TCP包打上Mark n,其他包全部丟棄.在PREROUTING鏈中加入一條規(guī)則,

    圖3 網(wǎng)關(guān)內(nèi)核模塊

    這條規(guī)則將數(shù)據(jù)包重定向到本機,交由Bind和Nginx去處理域名查詢和HTTP重定向,使用用戶層應(yīng)用程序處理而不是內(nèi)核的好處是極大降低實現(xiàn)的復(fù)雜性.Nginx只需要建立一個默認站點,完成重定向到驗證頁面:

    用戶驗證通過后,管理系統(tǒng)通過PHP擴展和網(wǎng)關(guān)通訊,設(shè)置用戶的IP為驗證狀態(tài).

    流量監(jiān)控鉤子的優(yōu)先級低于Filter表的FORWARD鏈,讓包先經(jīng)過FORWARD鏈過濾.流量監(jiān)控的算法是:

    根據(jù)包找到對應(yīng)的連接;

    如果配置為執(zhí)行QOS策略,還要在內(nèi)外網(wǎng)網(wǎng)卡上綁定Prio隊列規(guī)程:

    2.2 控制服務(wù)器

    內(nèi)核模塊提供系統(tǒng)接口供用戶層程序訪問,分別是:

    1)SO_GET_TC_COUNTER_INFO查詢內(nèi)核模塊版本和各主要數(shù)據(jù)結(jié)構(gòu)大小,控制服務(wù)器用于檢查是否是自己支持的內(nèi)核模塊;

    2)SO_GET_TC_COUNTER_COUNT查詢有多少個內(nèi)網(wǎng)IP控制信息,從而知道多少內(nèi)網(wǎng)IP正在上網(wǎng),也為了方便后面的操作,例如為獲取全部控制信息分配多大內(nèi)存;

    3)SO_GET_ALL_TC_COUNTERS獲取全部的內(nèi)網(wǎng)IP控制信息,可以提取其中的統(tǒng)計數(shù)據(jù),進行流量分析;

    4)SO_GET_TC_COUNTER_BY_IP獲取指定IP的控制信息,監(jiān)控特定IP的流量;

    5)SO_GET_ALL_CONNS_BY_IP獲取指定IP的全部連接信息,監(jiān)控特定IP的各個連接上的流量;

    6)SO_SET_TC_COUNTER_BY_IP設(shè)置指定IP的控制信息,例如令牌桶大小,超限策略是執(zhí)行QOS還是直接丟棄,正常Mark和超限Mark的值是多少,設(shè)置驗證狀態(tài),空閑時間等等.

    控制服務(wù)器完成對以上接口的包裝,并通過定制TCP協(xié)議對外提供服務(wù).另外一個好處是這個接口一般只有root能訪問,經(jīng)過控制服務(wù)器中轉(zhuǎn),采用口令的方式驗證,在取消限制的同時不降低安全性.

    2.3 PHP擴展

    PHP擴展使用定制的協(xié)議完成和控制服務(wù)器的通訊,協(xié)議接口除了上面所有的功能外,增加:

    1)登錄驗證服務(wù),只有授權(quán)的用戶名和密碼可以訪問控制服務(wù)器;

    2)流量查詢服務(wù),通過控制服務(wù)器提供的計算服務(wù)解決B/S無狀態(tài)問題.

    PHP擴展到控制服務(wù)器的連接使用長連接技術(shù),優(yōu)化查詢性能.

    2.4 管理系統(tǒng)

    管理系統(tǒng)主要管理用戶數(shù)據(jù)庫,通過PHP擴展執(zhí)行用戶登錄驗證,監(jiān)控用戶流量狀態(tài),設(shè)置用戶流量控制參數(shù)等操作.

    系統(tǒng)可以設(shè)置是否允許用戶登錄,是否綁定登錄IP,空閑時間等,并記錄用戶登錄信息.空閑時間是指,用戶沒有退出登錄而直接關(guān)機,系統(tǒng)無法知曉,使用超時機制檢測用戶一段時間內(nèi)沒有任何流量就銷毀用戶的控制結(jié)構(gòu),節(jié)省內(nèi)存,提高查找效率.

    3 結(jié)束語

    通過構(gòu)建基于Netfilter的流量控制系統(tǒng),可以有效控制客戶端經(jīng)過網(wǎng)關(guān)的流量,監(jiān)控用戶上網(wǎng)行為,提升內(nèi)網(wǎng)安全和管理水平.另一方,其缺點也顯而易見,只能在流量通過網(wǎng)關(guān)時執(zhí)行控制,無法從源頭限制,如果發(fā)生惡意的流量攻擊,系統(tǒng)將無能為力.

    [1]周中偉.校園網(wǎng)絡(luò)流量控制的應(yīng)用研究[J].湖南工業(yè)職業(yè)技術(shù)學(xué)院學(xué)報,2009,9(5):26-28.

    [2]馮淑媛,趙明,鄭志凌.校園網(wǎng)絡(luò)流量控制策略的研究[J].湖南工業(yè)職業(yè)技術(shù)學(xué)院學(xué)報,2011,11(6):13-14.

    [3]張連成,王振興,苗甫.網(wǎng)絡(luò)流量偽裝技術(shù)研究[J].計算機應(yīng)用研究,2011,28(7):2418-2423.

    [4]鄭黎明,鄒鵬,賈焰,等.網(wǎng)絡(luò)流量異常檢測中分類器的提取與訓(xùn)練方法研究[J].計算機學(xué)報,2012,35(4):719-730.

    [5]張藝瀕,張志斌,趙詠,等.TCP與UDP網(wǎng)絡(luò)流量對比分析研究[J].計算機應(yīng)用研究,2010,27(6):2192-2197.

    [6]蔣海,劉淑芬.流量監(jiān)測MRTG的改進及其實現(xiàn)[J].計算機應(yīng)用研究,2006(2):201-202.

    [7]樂艷輝,李之棠,柳斌.基于Netfilter的P2P流量測量系統(tǒng)[J].計算機應(yīng)用研究,2008,25(4):1224-1226.

    [8]王振宇,鄧錦福.基于Netfilter的DNS實時監(jiān)控統(tǒng)計系統(tǒng)的設(shè)計[J].計算機應(yīng)用研究,2009,26(4):1487-1496.

    [9]王裕邦,盧顯良,段翰聰,等.BT流量控制系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機應(yīng)用研究,2007,24(9):214-220

    [10]劉羅仁,羅金玲.一種控制網(wǎng)關(guān)流量的控制器設(shè)計[J].重慶科技學(xué)院學(xué)報:自然科學(xué)版,2008,10(2):73-76

    [11]黃文焱,褚偉.網(wǎng)絡(luò)流量控制系統(tǒng)在開源路由器上的實現(xiàn)[J].計算機技術(shù)與發(fā)展,2010,20(8):225-228

    [12]張五生,鄭靈翔.基于Linux的流量控制系統(tǒng)研究[J].廈門大學(xué)學(xué)報:自然科學(xué)版,2010,49(1):38-42

    [13]梁根,郭小雪,秦勇,等.基于Linux的流量控制機制研究[J].微計算機應(yīng)用,2008,29(12):87-92

    猜你喜歡
    重定向內(nèi)網(wǎng)網(wǎng)絡(luò)流量
    基于多元高斯分布的網(wǎng)絡(luò)流量異常識別方法
    基于神經(jīng)網(wǎng)絡(luò)的P2P流量識別方法
    解決安卓文件夾亂象
    重復(fù)壓裂裂縫重定向的措施研究
    AVB網(wǎng)絡(luò)流量整形幀模型端到端延遲計算
    4G偽基站的監(jiān)測定位與規(guī)避協(xié)同分析
    移動通信(2017年13期)2017-09-29 16:30:11
    企業(yè)內(nèi)網(wǎng)中的數(shù)據(jù)隔離與交換技術(shù)探索
    科技資訊(2017年5期)2017-04-12 15:24:45
    地下車庫柱網(wǎng)布置設(shè)計思路
    山西建筑(2016年20期)2016-11-22 03:10:21
    QoS技術(shù)在企業(yè)內(nèi)網(wǎng)實踐探索
    科技資訊(2016年19期)2016-11-15 08:17:44
    網(wǎng)絡(luò)流量監(jiān)控對網(wǎng)絡(luò)安全治理的重要性
    河南科技(2014年23期)2014-02-27 14:18:43
    启东市| 皮山县| 宁都县| 扶风县| 永修县| 和硕县| 探索| 乌拉特中旗| 靖远县| 惠安县| 晋州市| 临沧市| 铁力市| 漠河县| 隆安县| 普陀区| 紫阳县| 松滋市| 乌兰察布市| 乐至县| 嘉兴市| 南平市| 黔南| 丹棱县| 秦皇岛市| 广州市| 萝北县| 天津市| 富顺县| 黄大仙区| 鄂托克前旗| 张家港市| 柞水县| 萝北县| 泽州县| 平泉县| 屏边| 原平市| 本溪| 林周县| 尖扎县|