基於sFlow流量監控的DDOS防禦和佇列調整

2021-07-03 15:35:24 字數 1710 閱讀 1415

編者按:最近涉及的乙個實驗,需要獲取鏈路介面的實時資訊,比如頻寬、流量統計等。起初打算從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 ...