实验1:SDN拓扑实践
实验1:SDN拓扑实践
一、实验目的
能够使用源码安装Mininet;
能够使用Mininet的可视化工具生成拓扑;
能够使用Mininet的命令行生成特定拓扑;
能够使用Mininet交互界面管理SDN拓扑;
能够使用Python脚本构建SDN拓扑。
二、实验环境
下载虚拟机软件Oracle VisualBox 或 VMware;
在虚拟机中安装Ubuntu 20.04 Desktop amd64;
三、实验要求
(一)基本要求
1.在Ubuntu系统的home目录下创建一个目录,目录命名为学号。
2.在创建的目录下,完成Mininet的源码安装。
3.使用Mininet可视化工具,生成下图所示的拓扑,并保存拓扑文件名为学号.py。
利用Mininet的miniedit.py进行绘制,进入相关目录后,指令python3 miniedit.py(这里未设置默认python为python3)
4.使用Mininet的命令行生成如下拓扑:
a) 3台交换机,每个交换机连接1台主机,3台交换机连接成一条线。
因为进行su root指令后,获得了管理员权限,故直接mn --topo=linear,3进行创建
b) 3台主机,每个主机都连接到同1台交换机上。
mn --topo=single,3进行创建
5.在4 b)的基础上,在Mininet交互界面上新增1台主机并且连接到交换机上,再测试新拓扑的连通性。
指令如下:
py net.addHost('h4')
py s1.attach('s1-eh4')
py net.addLink(s1,h4,4,0)
py h4.setIP('10.0.0.4') (设置主机IP)
links (测试新拓扑的连通性)
pingall
6.编辑(一)中第3步保存的Python脚本,添加如下网络性能限制,生成拓扑:
a) h1的cpu最高不超过50%;
如图所示,代码中增加(cpu=0.5)
b) h1和s1之间的链路带宽为10,延迟为5ms,最大队列大小为1000,损耗率50。
如图所示,代码中增加(bw=10,delay='5ms',max_queue_size=1000,loss=50,use_htb=True)
检验如下:
四.个人总结
实验难度
本次实验对于我来说是第一次使用Linux系统和博客,所以费了不少时间,主要是在安装mininet实验环境上较为困难,下载安装效果受网络波动影响较大,通过多次安装解决
实验过程遇到的困难及解决办法
1.执行 miniedit.py 报错/usr/bin/env: ‘python’: No such file or directory
添 加 新 的 软 链 ,指向 python3 : sudo ln -s
/usr/bin/python3 /usr/bin/python,即默认 python 版本为 python3
2.在三.实验要求(6)时费了不少时间,找不到截图中配置的相关代码
原因是因为点击miniedit左上角的File菜单保存时,错误地选择了save选项,实际上应该选择Export Level2 Script,保存py文件。
个人感想
在本次实验中发现自己在软件配置环境方面不够熟练,进行实验步骤时也较为粗心,导致浪费了不少时间,以后应该多加注意。
另外在mininet环境下,先进行su root获取管理员权限,后面便无需再每条指令输入sudo,会方便许多。虚拟机中生成拓扑作为网络的模拟还是挺有意思的,但是自己实在是太不熟练了,因此在学习过程中还是借鉴了不少同学的思路。
相信在以后的进一步学习中我可以更好地了解Linux系统的使用,体会SDN的魅力。