mininet在SDN网络实验中可以用来快速、方便的创建网络拓扑,SDNLAB网站上有mininet相关的实验课程,请自行查看。
什么是Mininet
Mininet是由一些虚拟的终端节点(end-hosts)、交换机、路由器连接而成的一个网络仿真器,它采用轻量级的虚拟化技术使得系统可以和真实网络相媲美。
Mininet可以很方便地创建一个支持SDN的网络:host就像真实的电脑一样工作,可以使用ssh登录,启动应用程序,程序可以向以太网端口发送数 据包,数据包会被交换机、路由器接收并处理。有了这个网络,就可以灵活地为网络添加新的功能并进行相关测试,然后轻松部署到真实的硬件环境中。
Mininet特性
可以简单、迅速地创建一个支持用户自定义的网络拓扑,缩短开发测试周期
可以运行真实的程序,在Linux上运行的程序基本上可以都可以在Mininet上运行,如Wireshark
Mininet支持Openflow,在Mininet上运行的代码可以轻松移植到支持OpenFlow的硬件设备上
Mininet可以在自己的电脑,或服务器,或虚拟机,或者云(例如Amazon EC2)上运行
Mininet提供python API,简单易用
Mininet安装
关于Mininet的安装,参见SDNLAB文章:
https://www.sdnlab.com/15138.html
Mininet 是一个开源项目,简单好用成本低,代码托管在github上:https://github.com/mininet/mininet
Linux系统上将mininet源码git到本地:
git clone git://github.com/mininet/mininet
cd mininet
git tag 查看可安装的版本
git checkout <release tag> # 这里的release tag就是你想选取的版本
安装方式有几种可选:
#mininet/util/install.sh [options]
# install.sh –a ##完整安装(默认安装在home目录下)
# install.sh -s mydir –a ##完整安装(安装在其他目录)
# install.sh –nfv ##安装Mininet+用户交换机+OVS(安装在home目录下)
# install.sh -s mydir –nfv ##安装Mininet+用户交换机+OVS(安装在其他目录下)
# mininet/util/install.sh -a
Mininet使用
安装完成后使用命令:sudo mn --test pingall 进行测试mininet是否安装正确
图形化页面构建拓扑结构
cd /mininet/mininet/examples
./miniedit.py
图形化页面创建好拓扑后可以自行保存,或者另存为python文件。
mininet常用命令
创建简单拓扑并连接到远程SDN控制器:
sudo mn --topo single,3 --mac --switch ovsk--controller=remote,ip=10.109.33.232,port=6633 -x
当然命令行创建拓扑还有其他种类,请自行查阅。
pingall
nodes
net
dump
启动与关闭拓扑中主机的web服务
mininet> h1 python -m SimpleHTTPServer 80 & #在主机 h1 开启 Web 服务
mininet> h2 wget -O - h1 #主机 h2 上下载 h1 web 站点内容
mininet> h1 kill %python # 杀掉 web 进程
在服务器上安装好Mininet之后就可以自行模拟创建SDN拓扑了。
Mininet安装后默认安装了SDN控制器POX和软件交换机Openvswitch(OVS),可以单独使用OVS进行实验
网友评论