Mininet 是由斯坦福大学研究开发的开源软件,是一个基于Linux Container虚拟化技术的轻量级网络模拟器。即可以在个人电脑上模拟出包括交换机、主机、和控制器等软件定义网络节点。
- 为openflow应用提供简单、免费的应用测试平台。
- 支持多用户独立的在同一张拓扑上进行并发操作。
- 支持系统级别的可重、可封装的回归测试。
- 无需启动物理网络就可以支持复杂的拓扑测试。
- 提供用于网络调试和运行测试的CLI,支持拓扑相关和Openflow相关命令。
- 支持任意的拓扑,包括设置拓扑的基本参数,比如网络带宽
- 提供Python API接口,用于编程拓展功能。
Mininet 是一个轻量级软件定义网络和测试平台;它采用轻量级的虚拟化技术使一个单一的系统看起来像一个完整的网络运行相关的内核系统和用户代码,也可简单理解为 SDN 网络系统中的一种基于进程虚拟化平台,它支持 OpenFlow、OpenvSwith 等各种协议,Mininet 也可以模拟一个完整的网络主机、链接和交换机在同一台计算机上且有助于互动开发、测试和演示,尤其是那些使用 OpenFlow 和 SDN 技术;同时也可将此进程虚拟化的平台下代码迁移到真实的环境中。
三种安装法,和一种更新方法 http://mininet.org/download/
官网镜像装完用户密码:
- mininet-vm login: mininet
- Password: mininet
用镜像装缺点是mac下的virtual box没有parallels好用,没法直接本机ssh连接到虚拟机。
可以用 doxpy 生成 HTML 和 PDF
sudo apt-get install doxypy help2man texlive texlive-latex-extra
cd ~/mininet
make doc
mininet 建议的 python 风格 https://github.com/mininet/mininet/wiki/Mininet-Python-Style
mininet 的 python API 手册(doxygen生成) http://mininet.org/api/annotated.html
demo:~/mininet/examples
,其中还有README.md
- baresshd.py 使用 medium-level API 创建一个sshd进程,不使用 OpenFlow
- bind.py 使用
mininet同时支持python2和python3
mininet 默认安装的是python2版本,如需安装python3版本,需关注和修改mininet/util/install.sh
中的版本信息。./insatll.sh -h
可以查看安装指令的帮助。
若是脚本创建mininet拓扑结构,需用sudo python2 xxx.py
来执行。
当然也可以增加对python3的支持,方法为,修改mininet/util/install.sh
中的PYTHON=${PYTHON:-python3}
。(此处笔者的ubuntu机器中python2和python3共存,python3代表的即3版本)。
./install.sh -h
可以查看安装指令帮助。
然后执行下面命令,即可在python3中安装mininet的支持包。
./install.sh -n