自学内容网 自学内容网

基于SDN的ddos攻击检测与防御

本项目依赖mininet, floodlight, sFlow-RT

1,启动floodlight

cd floodlight

java -jar target/floodlight.jar

浏览器访问http://localhost:8080/ui/pages/index.html 或者http://localhost:8080/ui/index.html

2,创建 mininet拓扑

sudo mn --topo=single,4 --controller=remote,ip=127.0.0.1,port=6654                                                          

此时浏览器8080中可以在topology菜单中查看到 相关拓扑

3,DDoS 攻击检测 

(1)启动sFlow-RT
保持Mininet 运行的终端,再新开一个终端窗口,输入如下指令,启动sFlow-RT。

cd sflow-rt

./start.sh

(2)配置sFlow Agent
我们需要在虚拟交换机配置sFlow Agent,这样sFlow Collector 才能收集到流量信息进行分析和呈现。
键入以下指令部署sFlow Agent :

sudo ovs-vsctl -- --id=@sflow create sflow agent=eth0 target=\"127.0.0.1:6343\" sampling=10 polling=20 -- -- set bridge s1 sflow=@sflow

查询已经配置的 sFlow Agent信息

sudo ovs-vsctl list sflow

(3)查看流量可视化

访问 http://localhost:8008/html/index.html#status

点击上面的apps,然后再点击flow-trend进入到流量图

然后分别在Keys,Value,Filter列填入:ipsource,ipdestination,stack;bytes;留空 ,然后点击右面的 Submit (√)提交-------,之后,将自动转到图形化流量监控页面

之前的mininet命令窗口中执行h2 ping h1 可以查看流量 ,可以看到流量较小

然后执行h2 ping -f h1 来模拟ddos攻击,可以看到流量明显增大

4,ddos防御(通过下发流表方式来操作)

(1)查询当前流表

curl -X GET  http://127.0.0.1:8080/wm/staticflowpusher/list/00:00:00:00:00:00:01/json

(2)下发下面的流表(ddos.json)

{
  "switch": "00:00:00:00:00:00:00:01",
  "name": "flow-mod-dropt",
  "cookie": "0",
  "in_port": "1",
  "eth_type": "0x0800",
  "ip_proto": "0x01",
  "priority": "100",
  "active": "true",
  "actions": "output=no-forward"
}

执行命令:

curl -X POST -d @ddos.json http://127.0.0.1:8080/wm/staticflowpusher/json

可以明显看到流量下降了

删除流表:

curl -X DELETE -d '{"name":"flow-mod-dropt"}' http://127.0.0.1:8080/wm/staticflowpusher/json

发现流量又激增了


原文地址:https://blog.csdn.net/wjd1994/article/details/145061963

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!