⚠申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址。 全文共计3077字,阅读大概需要3分钟
🌈更多学习内容, 欢迎👏关注👀【文末】我的个人微信公众号:不懂开发的程序猿
个人网站:https://jerry-jy.co/

❗️❗️❗️知识付费,🈲止白嫖,有需要请后台私信或【文末】个人微信公众号联系我

实验原理与步骤

在基于SDN的网络环境中,DDoS攻击的防御通常涉及到实时监测网络流量以及智能地更新流表项以过滤掉恶意流量。以下是步骤和原理:

1、实时流量监测:首先,需要实时监测网络流量以识别出DDoS攻击的特征。这可以通过分析流表项数据来完成,例如检查数据包的源地址、目的地址、端口号以及流量模式等。

2、特征提取与分析:一旦监测到异常流量,系统需要提取与DDoS攻击相关的关键特征,如流表匹配成功率、流表项速率等。

3、分类与检测:利用机器学习算法,如梯度决策树(XGBoost)、支持向量机(SVM)、K近邻(KNN)等,对流量进行分类,区分正常流量和恶意流量。

4、流表项更新:根据检测结果,SDN控制器会更新流表项,增加新的规则或修改现有规则,以阻断恶意流量。这些规则会特别针对ICMP协议或特定的异常流量特征。

5、保证HTTP服务:在设计流表项规则时,需要确保HTTP服务(通常使用TCP协议,端口80或443)不受影响。这可以通过设置流表项优先级和匹配条件来实现,例如,可以设置高优先级的规则允许HTTP流量通过,而低优先级的规则则用于拦截ICMP流量。

6、应急响应:一旦检测到DDoS攻击,SDN控制器可以迅速响应,通过下发新的流表项来阻断攻击流量,同时保持正常业务的连续性。

7、反馈与自适应:系统可能还需要一个反馈机制,以根据攻击的变化自适应地调整流表项规则,提高防御的准确性和效率。

本节实验需要用到的工具:

  • floodlight控制器(SDN控制器的一种)
  • mininet(仿真网络拓扑环境)
  • sflow-RT(流量监控设备)
  • curl 命令

第一步,启动floodlight控制器

floodlight控制器运行窗口,一直保持开启状态

java -jar target/floodlight.jar

在这里插入图片描述

启动网络拓扑

sudo mn --controller=remote,ip=127.0.0.1,port=6633 --topo=single,10

在这里插入图片描述

访问floodlight管理界面:http://localhost:8080/ui/index.html

在这里插入图片描述

第二步骤,进行DDoS攻击

启动主机1、主机2 的终端窗口

xterm h1 h2

在主机1 上启动http服务

在这里插入图片描述

在主机2上面对主机1 进行DDoS攻击

hping3 --rand-source 10.0.0.1

第三步 转到sflow监控页面

观察流量的变化趋势图

在这里插入图片描述

第四步,下发流表项过滤DDoS恶意攻击流量

网络中存在DDoS攻击流量时候,无法正常访问http服务,因为目标服务器无法同时请求大量的服务

通过curl 命令下发请求http服务,发现受害主机h1无法响应

在这里插入图片描述

此时,通过下发流表,过滤DDoS恶意攻击流量而不影响正常的http服务

在这里插入图片描述
可以看到流表下发成功了,返回状态码 200

再次通过通过curl 命令下发请求http服务,发现受害主机h1可以进行正常的http服务响应

在这里插入图片描述

我们尝试删除流表项,

在这里插入图片描述

发现http服务又无法正常工作

在这里插入图片描述

总结

通过上述步骤,SDN网络能够有效地过滤掉DDoS恶意攻击流量,同时保证正常的HTTP服务不受影响。这种方法利用了SDN的灵活性和集中控制的优势,提高了网络的安全性和可靠性。

再次申明:

❗️❗️❗️知识付费,🈲止白嫖,有需要请后台私信或【文末】个人微信公众号联系我

–end–

更多推荐