編者按:最近涉及的乙個實驗,需要獲取鏈路介面的實時資訊,比如頻寬、流量統計等。起初打算從openflow協議中的計數器入手,openflow交換機對每乙個流維護乙個計數器,控制器可以從這些計數器上查詢每條鏈路的實時流量資訊。隨著網路規模增大,流量增加,對計數器管理會變得越來越消耗系統資源,如floodlightfaq
所提到對控制器而言這樣的監控很難準確的,所以否定了在控制器上實現流量監控的想法,轉而考慮通過第三方平台監控每條鏈路的實時流量資訊。sflow可以提供週期性的網路介面統計取樣和資料報取樣,能夠提供各界面的流量資訊,且幾乎不會對被統計裝置造成任何負擔,管理成本極低。sflow的部署分為兩部分:sflow agent和sflow collector。sflow agent內嵌入網路裝置中獲取裝置的實時資訊並封裝成sflow報文傳送給sflow collector。sflow collector彙總後得出統計資料。初次使用sflow監控流量,做了乙個ddos防禦及佇列調整實驗。
一、sflow監控之ddos防禦實驗
1.1
實驗環境
本實驗是在一台物理主機上完成實驗拓撲,主要工作是進行控制器部署和sflow部署。通過mininet模擬乙個switch、三颱host。控制器使用floodlight,由於mininet已經部署了sflow agent,所以只需要部署sflow collector。
實驗拓撲如下圖:
基於mininet
的網路流量監控
》);2.解壓安裝:
$tar-zxvf sflow.tar.gz
$cdsflow/sflow-rt
$./start.sh
在ovs交換機上還要配置sflow agent,輸入以下命令:
$sudoovs-vsctl -- --id=@sflow create sflow agent=eth0target=\"192.168.2.233:6343\" header=128 sampling=10 polling=1 -- setbridge s1 sflow=@sflow
注意:agent是要監聽的網絡卡,這個網絡卡一定要能監聽到我們所需的交換機的流量,target是sflow collector所在的ip位址,bridge設定需要監聽的交換機。
sflow-rt
統計到的每個介面的流量資訊,可以通過sflow-rt的rest api獲取json資料並對json資料進行解析獲得。對解析到的資料進行判斷分析後即可實施策略。本次實驗原理如下: 1.
首先對sflow-rt進行配置,設定metric=ddos,並設定它的閾值,當監測到的流量超過這個閾值時即判斷為ddos;
定義位址組:
定義流 :
定義閾值: 2.
若判斷為ddos,即呼叫floodlight的staticflowentrypusher對ddos攻擊包進行丟棄;
由於sflow獲取的的openflow資訊是使用snmp中定義的ifindex對各界面進行標記,而openflow有它自己的標記方式,所以應該對openflow埠號和ifindex埠號進行對映。本次實驗採用nodejs作為應用語言。
流量監控模組的邏輯
流量監控模組的邏輯 dao框架 摘抄 1 如何做到流量監控 流量分為 receive和send兩部分。同時總的需要區分wifi和gprs 2 監控資料邏輯 記錄標記 區分 wifi 和gprs 將資料記錄到 t tmp record wap 中,開啟t tmp status wap 中的標記位 記錄...
基於流量的協議分析
做了差不多兩個星期的流量分析,以為後面可以安穩的做research,結果組裡來了乙個專案,就把我扔過去做專案了。這就是實驗室的本質,缺人,你就去 填坑 這也是國內碩士生教育的現狀吧,廉價勞動力,不用白不用。雖然說僅僅是兩個星期的research,怎麼說呢,對research還是有了比較感觀的認識吧。...
Linux下監控網絡卡流量的軟體iftop
系統 centos 5.5 官網上說使用iftop需要libpcap和libcurses這兩個包。yum install y gcc flex byacc libpcap ncurses ncurses devel libpcap devel tcpdump 安裝iftop cd opt wget ...