一、实验目的
掌握 Mininet 的源码安装方法和 miniedit 可视化拓扑生成工具。
二、实验任务
使用源码安装 Mininet 的 2.3.0d6 版本,并使用可视化拓扑工具生成一个最简拓扑(1 台交换机连接 2 台主机)。
三、实验步骤
1. 实验环境
安装 Ubuntu 16.04.7 Desktop amd64 的虚拟机
2. 实验过程
(1)源码安装
源码安装过程中可能使用到的命令
$ mkdir sdn //新建 sdn 目录(名称可自定义),所有的应用安装在该目录下
$ sudo apt-get install git //安装 git
$ cd sdn //进入 sdn 目录
$ git clone git://github.com/mininet/mininet //下载 mininet 源码
$ cd mininet
$ sudo util/install.sh -a //在 mininet 目录下执行,-a 表示完整安装
$ sudo mn --version //查看版本
遇到的问题
输入$ sudo apt-get install git
时出现如下错误
![](https://img2020.cnblogs.com/blog/2146109/202009/2146109-20200910183459478-1741526990.png)
出现这样的问题的原因是有进程占用了apt
,找到他们把进程结束就可以解决。
![](https://img2020.cnblogs.com/blog/2146109/202009/2146109-20200910183637000-1506740885.png)
最终结果
![](https://img2020.cnblogs.com/blog/2146109/202009/2146109-20200910194955120-8926258.png)
使用 Mininet 的 CLI 命令行测试基本功能:$ sudo mn --test pingall
![](https://img2020.cnblogs.com/blog/2146109/202009/2146109-20200910195118394-2016041063.png)
(2)使用可视化工
使用到的命令
$ sudo ./mininet/examples/miniedit.py
在 Mininet 安装目录下执行 执行界面如下,可以拖动左侧边栏的主机 Host、交换机 Switch、路由器 Router、网络链路 NetLink、控制器 Controller 等组件到右侧空白处,实现网络拓扑的可视化仿真。
![](https://img2020.cnblogs.com/blog/2146109/202009/2146109-20200910200332239-2058459126.png)
![](https://img2020.cnblogs.com/blog/2146109/202009/2146109-20200910200403330-1063524580.png)
将 4台Host、2台 Switch和1台Controller拖出,并用 NetLink 连接,形成下图所示的网络拓扑
![](https://img2020.cnblogs.com/blog/2146109/202009/2146109-20200910200629654-265676851.png)
鼠标右键点击 Host 和 Controller,选择设置属性(Properties): Host 部分主要是设置主机 ip,以及 VLAN 等扩展设置。每台主机逐台操作;Controller 部分主要是设置控制器类型,此处可按默认设置,如果是外部控制器,要选择 Remote Controller,之后填上 Controller 的 ip,如果是本机则按照默认的 127.0.0.1 即可。
![](https://img2020.cnblogs.com/blog/2146109/202009/2146109-20200910203302829-1612899349.png)
![](https://img2020.cnblogs.com/blog/2146109/202009/2146109-20200910205646741-2141188135.png)
点击左上角的 Edit,进行全局设置,此时在默认设置的基础上,勾选“Start CLI”,将 OpenFlow 1.1 1.2 1.3 全部勾选。 系统的 Terminal 上会显示当前确认的设置。
![](https://img2020.cnblogs.com/blog/2146109/202009/2146109-20200910205937790-1378480259.png)
点击左下角的 Run,运行拓扑,由于开启了 CLI,可使用 pingall 命令测试主机的连通性,并做其他扩展操作。
![](https://img2020.cnblogs.com/blog/2146109/202009/2146109-20200910210504845-960669980.png)
拓扑生成并确认无误之后,可以点击 miniedit 左上角的 File 菜单,选择 Export Level 2 Script,将拓扑保存为 Python 脚本,方便之后执行脚本一键生成。
![](https://img2020.cnblogs.com/blog/2146109/202009/2146109-20200910210804679-745265260.png)
四、实验心得
在这个实验中我学到了很多,学会了如何在虚拟机中正确安装 ubuntu ,如何通过网上的各大论坛查找安装中遇到的问题,解决了apt被占用的问题,基本了解了如何构建网络拓扑结构。