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

1、概述

1.1 什么是SDN

软件定义网络(英语:software-defined networking,缩写作 SDN)是一种新型网络架构。它利用OpenFlow协议将路由器的控制平面(control plane)从数据平面(data plane)中分离,改以软件方式实现。该架构可使网络管理员在不更动硬件设备的前提下,以中央控制方式用程序重新规划网络,为控制网络流量提供了新方案,也为核心网络和应用创新提供了良好平台。Facebook与Google都在他们的数据中心中使用OpenFlow协议,并成立了开放网络基金会来推动这个技术。

1.2 什么是mininet

Mininet是一个强大的网络仿真平台,通过这个平台,我们可以很方便的模拟真实环境中的网络操作与架构。特别是SDN,在真实网络中进行相关的网络实验有一定难度,自然需要一个仿真平台可以学习这种新型的网络架构,而Mininet就应运而生,承担了这个光荣而艰巨的使命。
Mininet自带交换机(switchs)、主机(hosts)、控制器(controllers),同时,在mininet上可以安装OpenvSwitch、多种控制器(NOX\POX\RYU\Floodlight\OpenDaylight等),同时,Mininet可以运行在多种操作系统上(windows\linux\Mac OS),具有很强的系统兼容性。最令人兴奋的一点是:在Mininet上进行的实验,可以无缝的移到真实的环境中去

在这里插入图片描述

1.3 什么是RYU

RYU是一款基于python的控制器,你可用Ryu实现各种想要实现的网络功能,它可以下发或接收流表进行各种路由运算。

2 实验流程

2.1 构建拓扑

构建的拓扑图

在这里插入图片描述
实验代码进行解决

在这里插入图片描述

命令解释

sudo:以管理员权限运行,因为mininet要调用内核的东西
mn:就是mininet的命令简写
--controller=remote:使用远程的控制器
ip,port:控制器的ip和端口
--topo:指定拓扑类型,single 就是单一拓扑,就是最简单的交换机下面接主机,后面的3 表示,三台主机。

当你看到 mininet> 标识符,表示拓扑创建完成,我们可以输入一些指令查看网络拓扑。
nodes 指令显示节点信息:
links 指令显示节点信息:
在这里插入图片描述

2.2 ryu控制器配置

通过ryu-manager命令启动ryu控制器,并且打开ofctl_rest.py和simple_switch.py,作为交换机的转发规则,因为之后要用到restAPI,即控制器的北向接口(postamn连接使用),所以需要打开ofctl_rest.py。

在这里插入图片描述

2.3 sFlow-RT 使用

安装sFlow-RT,命令wget http://www.inmon.com/products/sFlow-RT/sflow-rt.tar.gz,然后解压到当前目录下,输入命令cd sflow-rt,然后启动:./start.sh,看到下列信息证明启动成功。其中 6343 是sFlow Collector 的默认端口,8008 则是 sFlow 的WebUI端口。(注意:执行sflow-rt需要先配置好jdk,否则会报Java不存在的错误)

在这里插入图片描述
其中 6343 是sFlow Collector 的默认端口,8008 则是 sFlow 的WebUI端口
在这里插入图片描述

其中sFlow-RT的ddos-blackhole(https://github.com/sflow-rt/ddos-blackhole

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

在这里插入图片描述
指令说明:

1)agent:监控 eth0 网卡产生的流量;
2)target:sFlow-RT的IP,默认端口6343;
3)bridge:需要开启sFlow的网桥;
4)sampling:采样率,表示每隔N个Packet就取样一次
5)polling:轮询时间,每隔N秒polling一次
提示:如果有N个网桥,就需要执行N次部署 sFlowAgent
的指令,我们本次实验中只有一个网桥,所以执行一次就可以了。

通过如下指令可以查看已经配置的 sFlow Agent信息:

在这里插入图片描述
使用命令ip link,可以查看虚拟交换机端口与端口编号的映射,可以看见s1 交换机对应的编号是7:在这里插入图片描述
接下来,查看sFlow Agent 是否配置成功,我们可以通过其WebUI进行查看,在浏览器中输入网址localhost:8008/html/index.html,可以看见各项监控状态。
在这里插入图片描述

  • 5
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值