Mininet
1. Mininet简介
Mininet是由斯坦福大学研究开发的开源软件,是一个基于Linux Container虚拟化技术的轻量级网络模拟器。即可以在个人电脑上模拟出包括交换机、主机、和控制器等软件定义网络节点。
Mininet功能强大,支持学术研究、原型验证、调试和测试等多种网络研究需求,其支持的功能具体如下:
- 为openflow提供简单、免费的应用测试平台。
- 支持多用户独立的在同一张拓扑上进行并发操作。
- 支持系统级别的可重、可封装的回归测试。
- 无需启动物理网络就可以支持复杂的拓扑测试。
- 提供用于网络调试和运行测试的CLI,支持拓扑相关和Openflow相关命令。
- 支持任意的拓扑,包括设置拓扑的基本参数,比如网络带宽
- 提供Python API接口,用于编程拓展功能。
2.Mininet安装
1. VM镜像安装
1. 官网下载VM镜像
windows用户下载[Mininet 2.2.1 on Ubuntu 14.04 - 32 bit](http://downloads.mininet.org/mininet-2.2.1-150420-ubuntu-14.04-server-i386.zip)镜像,并利用VirtualBox进行导入安装。
2. 导入镜像
创建虚拟机后,导入ovf文件。
2. 源码安装
1. 下载官方源码
从Github上下载官方源码,Ubuntu下执行 git clone git://github.com/mininet/mininet
注意:执行此步骤前要保证Ubuntu已经安装了git,如果现实未安装,则先要执行sudo apt-get install git,sudo apt-get update,再重新执行下载。
2. 安装Mininet
下载完成后进入Mininet文件夹下的util文件夹,执行install.sh脚本,执行时有若干参数选择,参考Mininet安装参数表。
$ cd mininet/util
$./install.sh -h(查看参数)
$./install -n3V2.5.0
Mininet安装参数
-a 默认全部安装
-b 安装benchmark:oflops
-c安装核心之后清空已有配置
-d 删除某些敏感文件
-e 安装Mininet开发依赖
-f 安装OpenFolw协议支持
-h 打印帮助信息
-i 安装indigo Virtual Switch
-k 安装新的内核
-m 从源目录安装open vSwitch内核模块
-n 安装Mininet依赖和核心文件
-p 安装pox控制器
-r 删除已存在的open vSwitch包
-s 依赖源码
-t 完成其他的虚拟机创建任务
-v 安装Open switch
-V 指定Open vSwitch的版本
-w 安装Wireashark解析器
-x 安装NOX Classic控制器
-y 安装Ryu控制器
-0 安装openflow1.0
-3 安装openflow1.3
3.启动Mininet
安装完成后,通过sudo mn命令启动mininet,更多相关主要命令参考如下:
1. 主要网络构建启动命令
--topo 制定拓扑类型或文件
--custom 自建拓扑
--switch 设置交换机类型
--controller 设置控制器类型
--mac 自动设置主机mac
---
2. 内部交互主要命令
dump 输出节点信息
net 查看网络拓扑信息
nodes 查看全部节点信息
dpctl 操作datapath
iperf 制定节点之间的tcp
h1 ping h2 测试主机的连通性
4.Mininet简单示例
1. 单一拓扑
sudo mn --topo=single,3
其中3为主机数目的设定参数,可更换其他。
2. 线形拓扑
sudo mn --topo=linear,4
对于线性拓扑,数字代表交换机数目和主机数目。
3. 树形拓扑
sudo mn --topo=tree,depth=2,fanout=2
depth代表深度,fanout代表扇出,即深度代表交换机的深度,扇出代表每个交换机下挂载主机数目。
4. 自定义拓扑
sudo mn --custom file.py --topo mytopo
file.py代表自己编写的拓扑脚本文件