实验1:SDN拓扑实验

一、实验目的

  • 能够使用源码安装Mininet;
  • 能够使用Mininet的可视化工具生成拓扑;
  • 能够使用Mininet的命令行生成特定拓扑;
  • 能够使用Mininet交互界面管理SDN拓扑;
  • 能够使用Python脚本构建SDN拓扑。

二、实验环境

  • 下载虚拟机软件Oracle VisualBox 或 VMware;
  • 在虚拟机中安装Ubuntu 20.04 Desktop amd64;

三、实验要求

(一)基本要求

  1. 在Ubuntu系统的home目录下创建一个目录,目录命名为学号。
  2. 在创建的目录下,完成Mininet的源码安装。

  1. 使用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的语法知识,能力差强人意,所以没有做实验的进阶任务,会尽快补救知识盲区,在下次实验应用。
posted @ 2021-09-14 21:55  AKAJC  阅读(39)  评论(0编辑  收藏  举报