【实验报告1】实验1:SDN拓扑实践
实验1:SDN拓扑实践 实操记录报告
实验说明
(一)实验目的
- 1.能够使用源码安装Mininet;
- 2.能够使用Mininet的可视化工具生成拓扑;
- 3.能够使用Mininet的命令行生成特定拓扑;
- 4.能够使用Mininet交互界面管理SDN拓扑;
- 5.能够使用Python脚本构建SDN拓扑。
(二)实验要求
(一)基本要求
-
在Ubuntu系统的home目录下创建一个目录,目录命名为学号。
-
在创建的目录下,完成Mininet的源码安装。
-
使用Mininet可视化工具,生成下图所示的拓扑,并保存拓扑文件名为学号.py。
-
使用Mininet的命令行生成如下拓扑:
- a) 3台交换机,每个交换机连接1台主机,3台交换机连接成一条线。
- b) 3台主机,每个主机都连接到同1台交换机上。
-
在4 b)的基础上,在Mininet交互界面上新增1台主机并且连接到交换机上,再测试新拓扑的连通性。
-
编辑(一)中第3步保存的Python脚本,添加如下网络性能限制,生成拓扑:
- a) h1的cpu最高不超过50%;
- b) h1和s1之间的链路带宽为10,延迟为5ms,最大队列大小为1000,损耗率50。
(二)进阶要求
编写Python脚本,生成如下数据中心网络拓扑,要求:
- 编写.py拓扑文件,命名为“学号_fattree.py”;
- 必须通过Mininet的custom参数载入上述文件,不得直接使用miniedit.py生成的.py文件;
- 设备名称必须和下图一致;
- 使用Python的循环功能实现,不得在代码中手工直接添加设备和链路。
实验操作
(一)实验环境及源码安装
-
1.源码安装mininet
-
2.略(Mininet源码安装)
(二)可视化建立拓扑
- 3.使用Mininet可视化工具,生成下图所示的拓扑,并保存拓扑文件名为学号.py
- 进入可视化工具
- 进入可视化工具
说明:打开可视化工具,直接按照《实验1_sdn拓扑实践》.pdf文件内截图提示,直接输入“sudo ./mininet/examples/miniedit.py”后提示“command not found”。后通过在“mininet/example”文件内输入命令行:“sudo python3 ./miniedit.py”才可打开可视化工具。
- 设置拓扑
- 拓扑图
- 主机连通性测试等
- 保存py文件
- 拓扑图
(三)命令行生成特定拓扑
-
4.使用Mininet的命令行生成如下拓扑:
- a) 3台交换机,每个交换机连接1台主机,3台交换机连接成一条线。
- b) 3台主机,每个主机都连接到同1台交换机上。
- a) 3台交换机,每个交换机连接1台主机,3台交换机连接成一条线。
-
5.在4 b)的基础上,在Mininet交互界面上新增1台主机并且连接到交换机上,再测试新拓扑的连通性。
-
6.编辑(一)中第3步保存的Python脚本,添加如下网络性能限制,生成拓扑:
-
a) h1的cpu最高不超过50%;
-
b) h1和s1之间的链路带宽为10,延迟为5ms,最大队列大小为1000,损耗率50。
(四)心得
- 虚拟机按照老师的教程步骤执行,安装较为顺利,如果由存在不畅的地方,首先自己进行复查核对,主要核对步骤是否正确有无一楼,确保每一步的执行由相应的环境;再检查相对应的代码有无错误。在源码安装mininet的过程中,注意可能会出现因网络中断或目标网站方面缘故导致下载失败,按步骤再来即可。
- 由于没有代码基础,只能边照着样例边敲代码边尝试理解。在理解拓扑原型的基础上,主要碰到的问题在于代码方面不是很熟练,对于简单的创建、进入目录等代码比较好上手,而对于其他类型的长串指令代码,则只能根据英文来简单理解这些意思指令含义,但是对于代码为何是如此进行编写则上不理解。针对这一方面的不足,需要课后另外自学,来加强自身的代码写作能力。
- 第一次简单的参与到“代码”书写的过程,带有点新奇,又有点懵懂。设置是比较简单理解的,但是代码书写这一过程中还有很多不足,对不懂的地方请教学习是很有必要的,遇到不清楚不确定的,就可以跟舍友相互探讨交流,但这多少有一点点的依赖他人,还需要应用好网络信息查询工具,自己多动手。一开始刚接触这些是比较懵逼的,后面稍微有点感觉了,也开始会自己上百度或专业论坛去查看一些别人的分享。
- 博客后台里将默认编辑器设置为Markdown,这个有一点点好玩。之前由使用过的主流的编辑器主要是html这种形式的。但是在使用一些笔记类产品,如“幕布”、“石墨文档”这种,里面也可以通过“快捷键”操作来设置文本格式。特别是之前有用过“语雀”,有看到别人一些文本框设置的也是能展现很多默认自带所没有的格式,那时候还比较好奇这是怎么设置的。我去试了下语雀的插入代码块,但好像并不是这样的效果,有机会再多研究下,但我想这些通过代码来编辑效果的应该可能原理都差不多,那是如何能保证不同平台可以使用类似的代码来实现统一的效果,还要多学习。