实验1:SDN拓扑实践

实验1:SDN拓扑实践

实验目的

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

实验环境

Ubuntu 22.04.01 LTS Desktop amd64

实验要求

基本要求

1.使用Mininet可视化工具,生成下图所示的拓扑,并保存拓扑文件名为学号.py。

运行结果截图

2.使用Mininet的命令行生成如下拓扑:
a)3台交换机,每个交换机连接1台主机,3台交换机连接成一条线。
运行结果截图

b) 3台主机,每个主机都连接到同1台交换机上。
运行结果截图

3.在2 b)的基础上,在Mininet交互界面上新增1台主机并且连接到交换机上,再测试新拓扑的连通性。
运行结果截图

4.编辑基本要求第1步保存的Python脚本,添加如下网络性能限制,生成拓扑:
a) h1的cpu最高不超过50%;
b) h1和s1之间的链路带宽为10,延迟为5ms,最大队列大小为1000,损耗率50。

采用命令行方式
运行结果截图

进阶要求

编写Python脚本,生成如下数据中心网络拓扑,要求:

  • 编写.py拓扑文件,命名为“学号_fattree.py”;
  • 必须通过Mininet的custom参数载入上述文件,不得直接使用miniedit.py生成的.py文件;
  • 设备名称必须和下图一致;
  • 使用Python的循环功能实现,不得在代码中手工直接添加设备和链路。

    运行结果截图

个人总结

实验难度

从操作复杂度与自我检错来看,上次实验比这次实验要复杂许多,遇到的问题及其解决方案都各不相同,且途中可能会遇到版本不兼容等问题需要重新配置环境,又如因从外网下载速度受限制导致无法下载等;而本次实验的易错点则集中在个人的应用程序使用上,几乎甚至无需考虑是否因软件导致的一系列问题,然而,我在操作途中也遇到了版本不兼容的问题,通过更新UbuntuOS的Python版本很好地解决了这种问题。因此,我们在遇到问题的时候要先确定一个大的方向,是个人因素还是系统因素抑或是网络等其他纷繁多样的缘故,然后再具体到细枝末节的点,而在此过程中,我们也能逐渐培养起较好的耐心及解决问题的热情。

所遇困难及其解决方案

运行进阶实验时发生报错,截图如下

根据命令行提示,起初以为是TAB与空格格式出错,毕竟Python严格的代码格式规范摆在那,然而尝试修改了数番无疾而终,便转头思考是否是Python版本的问题,然后便更新了一下Python后运行直接成功。

个人感想

Mininet可以简单、迅速地创建一个支持用户自定义的网络拓扑,缩短开发测试周期;可以运行真实的程序,在Linux上运行的程序基本上可以都可以在Mininet上运行,如Wireshark;Mininet支持Openflow,在Mininet上运行的代码可以轻松移植到支持OpenFlow的硬件设备上;Mininet可以在自己的电脑,或服务器,或虚拟机,或者云(例如Amazon EC2)上运行;Mininet提供python API,简单易用
加深了对Mininet工作模式的理解,对其使用方式也更熟练。

posted @ 2022-09-14 21:16  Thehone897  阅读(29)  评论(0编辑  收藏  举报