实验1:SDN拓扑实验
一、实验目的
- 能够使用源码安装Mininet;
- 能够使用Mininet的可视化工具生成拓扑;
- 能够使用Mininet的命令行生成特定拓扑;
- 能够使用Mininet交互界面管理SDN拓扑;
- 能够使用Python脚本构建SDN拓扑。
二、实验环境
- 下载虚拟机软件Oracle VisualBox 或 VMware;
- 在虚拟机中安装Ubuntu 20.04 Desktop amd64;
三、实验要求
(一)基本要求
- 在Ubuntu系统的home目录下创建一个目录,目录命名为学号。
- 在创建的目录下,完成Mininet的源码安装。
- 使用Mininet可视化工具,生成下图所示的拓扑,并保存拓扑文件名为学号.py
4.使用Mininet的命令行生成如下拓扑:
- a) 3台交换机,每个交换机连接1台主机,3台交换机连接成一条线。
- 代码:sudo mn --topo linear,3
- b) 3台主机,每个主机都连接到同1台交换机上。
- 代码:sudo mn --topo single,3
5.在4 b)的基础上,在Mininet交互界面上新增1台主机并且连接到交换机上,再测试新拓扑的连通性。
- 所需要代码
- py net.addHost(‘h4’) //增加主机h4
- py net.addLink (h4,s1,0,4) //将主机连接到交换机上,增加链路 h4-eth0 <->s1-eth4
- links //连接
- pingall //测试连通性
6.编辑(一)中第3步保存的Python脚本,添加如下网络性能限制,生成拓扑:
- a) h1的cpu最高不超过50%;
- b) h1和s1之间的链路带宽为10,延迟为5ms,最大队列大小为1000,损耗率50。
- 测试连通性
四、个人总结
- 由于之前较少接触python,所以在各个环节都出现了一定的问题。对我个人来说难度适中。
- 实验过程中基本上所有出现的错误都被我踩到了,具体如下:
- 1.执行 mininet 报错:NO module named pip。解决办法:检查是否安装了python2和3,发现安装了,然后在/usr/bin目录中查找是否有python这个目录,发现不存在,然后直接添加新的软链,指向python3。代码:sudo ln -s/usr/bin/python3 /usr/bin/python 目的是默认为python3。
- 2.实验最开始是安装虚拟机和mininet软件,其中我为了图方便把Ubuntu系统的语言设置为中文,导致后续在终端输入命令的过程中路径查询不到,之后将系统语言更改为英语之后实验顺利进行。
- 3.添加网络性能限制,生成拓扑时,由于之前将文件保存为了只读的格式,不能进行修改。解决办法:输入命令代码:sudo chmod -R 777 //这样就可以改为可编辑模式。
- 个人感想
- 自己欠缺很多Ubuntu的基本知识,在语法、命令、文件设置中,对整个操作系统欠缺认识。应该多去学习各种命令,以防在下次实验中出现更多的错误。还有就是常用的英语单词还是记得不熟悉,当因为中文报错时,为了解决问题,将整个系统语言改为了英语,然后在进行操作时不能很快高效的进行问题的处理。由于欠缺python的语法知识,能力差强人意,所以没有做实验的进阶任务,会尽快补救知识盲区,在下次实验应用。