当前位置: 首页 > news >正文

基于SDN环境下的DDoS异常攻击的检测与缓解

参考以下两篇博客,最后成功:

基于SDN的DDoS攻击检测和防御方法_基于sdn的ddos攻击检测与防御-CSDN博客

利用mininet模拟SDN架构并进行DDoS攻击与防御模拟(Ryu+mininet+sflow+postman)_mininet模拟dos攻击-CSDN博客

需求

H2 模拟flood攻击H1

解决:

H2不能ping H1,但H2可以访问H1的HTTP服务

实施步骤

一、基本环境配置

1. 安装sflow flow-trend app

下载flow-trend,下载到与sflow-rt同级

git clone https://github.com/sflow-rt/flow-trend
 

安装flow-trend

sflow-rt/get-app.sh sflow-rt flow-trend

2. 开启sflow-rt

cd sflow-rt
./start.sh

浏览器访问:

http://localhost:8008/html/index.html

点击页面上的 【Apps】选项, 再点击【flow-trend】选项

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

即会开始进行采样

二、运行网络

1.开启ryu

/opt/sdn/ryu/ryu/app$ ryu-manager ofctl_rest.py simple_switch.py

(此处最开始使用FLOODLIGHT,但后来发现下发流表的时候不好用,后改为RYU)

2.创建星型拓扑

sudo mn --controller=remote,ip=127.0.0.1,port=6653 -topo=single,3

3.使用如下指令,打开 Host1,和Host2的终端,在 Host1 上启动一个 http 服务:

三、配置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

在 Host2 上 ping Host1,观察flow trend

四、DDoS攻击检测

在h2中停止ping操作。进行DDoS 模拟攻击,在 mininet 终端中执行,h2 ping -f h1 ,-f 参数的意思就是 Ping Flood ,模拟 Flood Attack。

再去观察交换机流量

mininet> h2 ping -f h1

五、DDoS 攻击防御

使用postman,查询流表,目前H1与H2可以互通

GET :   http://localhost:8080/stats/flow/1

1. 添加流表操作

使用postman,添加流表

POST:  http://localhost:8080/stats/flowentry/add

body->raw->json

{"dpid":1,"cookie":1,"cookie_mask":1,"table_id":0,"priority":35268,"flags":1,"match":{"in_port":1},"actions":[]
}

从1口进入的数据流都被drop

但是如果此时,从h1对h3进行http访问,会发现h1对h3正常进行的http访问也无法进行,因为流表是把从1口的流量都给down掉了,所以正常的访问也无法进行。

2. 修改流表

首先,将刚才的流量进行删除,使用的url:http://localhost:8080/stats/flowentry/delete,功能post,流表项依然为刚才使用的,点击send后,返回值200OK证明删除完成。

改造需要下发的流表,让OpenFlowSwitch 只Drop掉 ICMP的流量,不影响正常的HTTP服务。在之前的流表的基础之上,加上dl_type字段和nw_proto字段,其中,dl_type字段代表ip协议,其中2048的16进制0x0800代表ipv4协议,nw_proto代表:ip协议上搭载的协议类型,其中1代表icmp协议。改造完成的流表通过postman进行流表下发之后,再次进行测试,发现h1对h3的ping泛洪攻击失效,而h1对h3的正常的http访问是得到了正常的回应。

相关文章:

  • Matlab回归预测大合集又更新啦!新增2种高斯过程回归预测模型,已更新41个模型!性价比拉满!
  • AIGC学习笔记(9)——AI大模型开发工程师
  • 2025.6.3总结
  • python中的并发/并行与多线程/多进程/异步的关系
  • ArrayList和LinkedList(深入源码加扩展)
  • Python----循环神经网络(BiLSTM:双向长短时记忆网络)
  • Facebook 隐私保护的优劣势分析
  • Java数据校验:确保数据完整性和正确性
  • Elasticsearch | 如何将修改已有的索引字段类型并迁移数据
  • 深入解析C++引用:从别名机制到函数特性实践
  • 前端下载文件,文件打不开的问题记录
  • Rust 学习笔记:Cargo 工作区
  • 使用 HTML + JavaScript 实现文章逐句高亮朗读功能
  • nginx+Tomcat负载均衡群集
  • 3步在小米13手机跑DeepSeek R1
  • java-springboot文件上传校验之只允许上传excel文件,且检查不能是脚本或者有害文件或可行性文件
  • 013旅游网站设计技术详解:打造一站式旅游服务平台
  • 【设计模式-4.7】行为型——备忘录模式
  • EtherCAT背板方案:方芯半导体工业自动化领域的高速、高精度的通信解决方案
  • 深入理解 JSX:React 的核心语法
  • 关于网站建设的电话销售话术/电商运营公司
  • 济南做网站推广有哪些公司/app推广代理平台
  • 电子商务网站软件建设的/杭州网站优化方案
  • 网站上文章分享的代码怎么做的/西安分类信息seo公司
  • 佛山专业的网站建设公司/百度网络营销中心app
  • 长沙网站建设设计/苹果被曝开发搜索引擎对标谷歌