在软件定义网络中使用机器学习的方法进行 DDOS 攻击检测与缓解--实验

在软件定义网络中使用机器学习的方法进行 DDOS 攻击检测与缓解--实验

  • 〇、拉取代码
  • 一、 配置环境
  • 二、 正常流量收集
  • 三、攻击流量数据
  • 四、DDoS攻击检测与缓解
    • 4.1 正常流量的检测
    • 4.2 攻击流量的检测与缓解
  • 五,精准度和检测率

申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址。 全文共计3077字,阅读大概需要3分钟
更多学习内容, 欢迎关注我的个人公众号:不懂开发的程序猿

关于该实验的详细介绍请查阅我的这篇博客:在软件定义网络中使用机器学习的方法进行 DDOS 攻击检测与缓解

〇、拉取代码

https://github.com/Jerry-jy/SDN-DDOS-Detection

在软件定义网络中使用机器学习的方法进行 DDOS 攻击检测与缓解--实验_第1张图片

一、 配置环境

先升级

sudo apt-get update
sudo apt-get upgrade

再安装如下环境

sudo apt-get install openvswitch-switch
apt-get install mininet
sudo pip3 install ryu
sudo apt install python3-pip
sudo apt-get install iperf
sudo apt-get install hping3
sudo pip3 install numpy
sudo pip3 install sklearn
ovs-vsctl --version

在这里插入图片描述

ryu-manager --version

在这里插入图片描述

mn --version

在这里插入图片描述

iperf --version

在这里插入图片描述

hping3 --version

在这里插入图片描述

二、 正常流量收集

在topo.py中修改流量的测试类型 TEST_TYPE = “normal” TEST_TIME = 600

在软件定义网络中使用机器学习的方法进行 DDOS 攻击检测与缓解--实验_第2张图片

启动控制器ryu-manager controller.py

在软件定义网络中使用机器学习的方法进行 DDOS 攻击检测与缓解--实验_第3张图片

启动网络拓扑sudo python topo.py

在软件定义网络中使用机器学习的方法进行 DDOS 攻击检测与缓解--实验_第4张图片

控制器接受到正常流量:
在软件定义网络中使用机器学习的方法进行 DDOS 攻击检测与缓解--实验_第5张图片

三、攻击流量数据

在controller.py文件中修改APP TYPE=0TEST TYPE=1

在这里插入图片描述

在topo.py文件中修改TEST TYPE=attackTEST TIME=600

在软件定义网络中使用机器学习的方法进行 DDOS 攻击检测与缓解--实验_第6张图片

清理网络拓扑sudo mn -c

在软件定义网络中使用机器学习的方法进行 DDOS 攻击检测与缓解--实验_第7张图片

启动控制器ryu-manager controller.py

在软件定义网络中使用机器学习的方法进行 DDOS 攻击检测与缓解--实验_第8张图片
启动拓扑sudo python topo.py

在软件定义网络中使用机器学习的方法进行 DDOS 攻击检测与缓解--实验_第9张图片

控制器接收到的异常流量

在软件定义网络中使用机器学习的方法进行 DDOS 攻击检测与缓解--实验_第10张图片

四、DDoS攻击检测与缓解

4.1 正常流量的检测

在controller.py文件中修改APP TYPE=1

在软件定义网络中使用机器学习的方法进行 DDOS 攻击检测与缓解--实验_第11张图片

在topo.py文件中修改TEST TYPE= normalTEST TIME=300

在这里插入图片描述

清理拓扑sudo mn -c

在软件定义网络中使用机器学习的方法进行 DDOS 攻击检测与缓解--实验_第12张图片

启动控制器ryu-manager controller.py
在软件定义网络中使用机器学习的方法进行 DDOS 攻击检测与缓解--实验_第13张图片

启动拓扑sudo python topo.py

在软件定义网络中使用机器学习的方法进行 DDOS 攻击检测与缓解--实验_第14张图片

控制器和SVM进行预测:为正常流

在软件定义网络中使用机器学习的方法进行 DDOS 攻击检测与缓解--实验_第15张图片

4.2 攻击流量的检测与缓解

在topo.py文件中修改TEST TYPE= attackTEST TIME=300

在这里插入图片描述
清理拓扑sudo mn -c

在软件定义网络中使用机器学习的方法进行 DDOS 攻击检测与缓解--实验_第16张图片
启动控制器ryu-manager controller.py

在软件定义网络中使用机器学习的方法进行 DDOS 攻击检测与缓解--实验_第17张图片

启动拓扑sudo python topo.py

在软件定义网络中使用机器学习的方法进行 DDOS 攻击检测与缓解--实验_第18张图片

控制器和SVM进行预测:为异常流,就会阻塞该端口防止异常流的攻击,其余流量就会被预测为正常流,端口的阻塞时间为2分钟,2分钟后不再阻塞,如果该端口继续检测到异常流的攻击,就再次阻塞

在软件定义网络中使用机器学习的方法进行 DDOS 攻击检测与缓解--实验_第19张图片

五,精准度和检测率

在软件定义网络中使用机器学习的方法进行 DDOS 攻击检测与缓解--实验_第20张图片

图形化显示

pip3 install mlxtend

在软件定义网络中使用机器学习的方法进行 DDOS 攻击检测与缓解--实验_第21张图片

在软件定义网络中使用机器学习的方法进行 DDOS 攻击检测与缓解--实验_第22张图片

在软件定义网络中使用机器学习的方法进行 DDOS 攻击检测与缓解--实验_第23张图片

–end–

你可能感兴趣的:(SDN,网络,ddos)