2022-01-30 SDN下DDoS攻击模拟(ubuntu18.04+Mininet-Ryu-sFlow)-待完善

1、安装mininet

1.1 python环境

1.2 安装git

sudo apt-get install git

1.3 源码安装mininet

#clone mininet到当前目录
git clone git://github.com/mininet/mininet
#切换目录至/mininet/util
cd mininet/util
#安装
sudo ./install.sh -a
#测试是否安装成功(图片晚些放)
sudo mn

1.4 mininet可视化使用

#在/mininet/examples目录下输入如下可打开图形化界面
sudo python ./miniedit.py

使用方法及视频安装教程可以参考bilibili:https://www.bilibili.com/video/BV1ft4y1a7ip?p=12&spm_id_from=pageDriver

2、安装Ryu(非必需,本文尚不完全,后续需要)

2.1 pip3安装

pip3 install ryu

2.2 源码安装

#clone到当前目录
git clone git://github.com/osrg/ryu.git
#进入ryu文件夹
cd ryu
# 安装包
sudo pip3 install -r tools/pip-requires
# 安装Ryu
sudo python3 setup.py install

2.3 检验是否安装成功

#输入如下命令,如果不为图1所示,则需要安装一些配套工具
ryu-manager
图1

2.4 如果安装失败

我遇到的问题是:pkg_resources.DistributionNotFound: The 'oslo.config>=1.2.0' distribution wa......
一般在最后几行就能找到关键字:'oslo.config>=1.2.0',这里提示oslo.config需要大于1.2.0,就使用pip3安装即可:

sudo pip3 install oslo.config

举例:如果提示为'webob==1.0.4',则只能安装1.0.4版本的webob,对应命令为:

sudo pip3 install webob==1.0.4

直至输入ryu-manager显示正确。

3、安装sFlow-rt

3.1 配置jdk

我推荐直接:

sudo apt-get install openjdk-8-jdk

也可以自行搜索其他方法。

3.2 安装sFlow-rt

#下载压缩文件
wget [http://www.inmon.com/products/sFlow-RT/sflow-rt.tar.gz](http://www.inmon.com/products/sFlow-RT/sflow-rt.tar.gz)
#解压至当前目录
tar  -zxvf   sflow-rt.tar.gz
#进入文件夹
cd sflow-rt
#启动
./start.sh

出现如图2则成功:


图2

4、开始实验

4.1 在mininet中搭建网络

交换机DPID为16位:0000 0000 0000 0001
三主机IP地址分别为:10.0.0.1-10.0.0.3
网络拓扑图如图3:


图3

在mininet菜单栏Edit-Preferences中勾选Start CLI,如图4:


图4

点击左下角“Run”,如图5:


图5

切换至终端应为图6:
图6

如果没有进入CLI,可以尝试“Stop”,退出mininet,在终端输入如下命令后重新“Run”:

#在非mininet终端下,执行该命令,可以clear上一次topo所遗留的文件,参考连接:https://www.cnblogs.com/lance-haha/p/13637316.html
sudo mn -c

4.2 启动Ryu(非必需,本文尚不完全,后续实验需要)

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

ryu-manager ofctl_rest.py simple_switch.py

配置sFlow Agent

#新开一终端,输出命令:
sudo ovs-vsctl -- --id=@sflow create sflow agent=s1-eth0 \
target=\"127.0.0.1:6343\" sampling=10 polling=20 -- -- set bridge s1 \
sflow=@sflow

上述命令的主要意思如下:

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

     查看已经配置的 sFlow Agent信息,通过命令:sudo ovs-vsctl list sflow
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容