# 基于SDN的云计算环境DDoS动态防御系统
**Repository Path**: lynki_Ray/ddos-AWD-system
## Basic Information
- **Project Name**: 基于SDN的云计算环境DDoS动态防御系统
- **Description**: 本项目旨在构建一个基于 软件定义网络(SDN) 与 云计算架构 的 动态DDoS检测与防御系统,通过结合开源组件与轻量级检测算法,建立高弹性、高可视化的网络安全防护体系。
系统整合了 SDN 控制器、流量分析模块、DDoS 检测引擎与动态响应机制,并通过可视化面板与日志系统实现实时监控与取证支持。适用于科研、教学、企业云平台等多种场景。
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2025-06-12
- **Last Updated**: 2025-08-07
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 基于SDN的云计算环境DDoS动态防御系统
## —— 面向高弹性云平台的安全防护体系设计与实现
---
## 一、项目简介
本项目旨在构建一个基于 **软件定义网络(SDN)** 与 **云计算架构** 的 **动态DDoS检测与防御系统**,通过结合开源组件与轻量级检测算法,建立高弹性、高可视化的网络安全防护体系。
系统整合了 SDN 控制器、流量分析模块、DDoS 检测引擎与动态响应机制,并通过可视化面板与日志系统实现实时监控与取证支持。适用于科研、教学、企业云平台等多种场景。
---
## 二、技术架构与模块划分
| 模块 | 技术选型 | 功能说明 |
| ------------ | ------------------------------------------ | ----------------------------- |
| **网络拓扑模拟器** | `Mininet` | 构建网络实验拓扑,支持 CLI 与 Python 脚本控制 |
| **SDN 控制器** | `Ryu` + `Docker`
*(解决 Python 2 兼容性问题)* | 负责流表管理、流量决策、攻击响应等 |
| **流量采集模块** | `sFlow`
*(需配置 JDK 11)* | 实时采集网络流量特征,如包速率、流量大小等 |
| **检测引擎** | 信息熵分析(IP/端口熵)+ 轻量级机器学习算法 | 精确识别潜在的 DDoS 攻击模式 |
| **可视化与日志分析** | `Bomo` + `Wireshark` | 实时展示网络状态,保存攻击日志,辅助后续审计 |
| **服务器管理面板** | `1Panel` | 现代化 Web 面板,快速部署后端服务,管理系统资源 |
---
## 三、环境配置指南
### 1. Mininet 安装与运行拓扑脚本
安装 Mininet:
```bash
sudo apt update
sudo apt install mininet
```
执行拓扑脚本 `topo.py`:
```bash
sudo python3 topo.py
```
系统将自动进入 Mininet CLI 控制台,模拟网络环境。
---
### 2. 配置并运行 Ryu 控制器(基于 Docker)
#### 拉取官方镜像:
```bash
docker pull osrg/ryu
```
> 镜像地址:[https://hub.docker.com/r/osrg/ryu](https://hub.docker.com/r/osrg/ryu)
> (如无法访问,可通过其他镜像源或科学上网)
#### 启动 Docker 并挂载本地项目目录:
```bash
cd /home/ubuntu/DDOS_defender
docker run -it --rm \
-v $(pwd):/app \
-w /app \
osrg/ryu bash
```
#### 启动控制器脚本:
运行官方示例:
```bash
ryu-manager ryu.app.simple_switch_13
```
或运行自定义防御控制器:
```bash
ryu-manager simple_switch.py
```
---
### 3. 启动防御逻辑脚本
打开另一个终端运行 DDoS 防御主程序:
```bash
ryu-manager --verbose simple_ddos_defense.py
```
**功能简介:**
* 监听交换机连接,安装 Table-Miss 默认流表;
* 捕获 ARP 报文,建立合法主机白名单;
* 对未学习的 IP 地址自动安装高优先级丢弃规则;
* 合法主机流量则下发正常转发表项。
---
### 4. 模拟 DDoS 攻击流量
#### 安装攻击工具 hping3:
```bash
sudo apt install hping3
```
#### 在 Mininet CLI 中启动攻击脚本:
```bash
h2 hping3 -S -p 80 -i u100 h1 &
h3 hping3 -S -p 80 -i u100 h1 &
h4 hping3 -S -p 80 -i u100 h1 &
h5 hping3 -S -p 80 -i u100 h1 &
```
> 模拟多个主机以高频发送 SYN 报文至目标主机,造成资源消耗攻击。
---
### 5. 流量监控与日志分析
#### 使用 Wireshark:
```bash
wireshark
```
* 选择虚拟接口(如 `s1-eth1`, `lo`, `docker0` 等)监控特定主机端口;
* 可视化流量分布与异常流速。
#### 配合 sFlow 工具与 Bomo 前端面板:
* 实现流量曲线、连接数、协议类型等信息展示;
* 可输出攻击日志,支持事件追踪与报表生成。
---
## 四、项目特点
* 🔧 **轻量部署:** 基于 Docker + Mininet,环境可快速复现;
* 🧠 **智能检测:** 基于信息熵与机器学习的混合型识别机制;
* 🌐 **动态响应:** SDN 控制器可实时响应异常流量并调整策略;
* 📊 **可视化强:** 实时监控系统状态,兼顾教学与生产场景;
* ☁️ **云原生兼容:** 系统设计可向 OpenStack、Kubernetes 拓展部署。
---
## 五、参考与扩展方向
* 增加特征提取维度:如 TCP 标志位、连接持续时间等;
* 接入深度学习模型:提升变种攻击的检测精度;
* 联动 WAF/IPS 等安全组件,形成多层防护体系;
* 云平台部署方案优化(如接入 OpenStack Neutron 插件)。