Mininet是什么
Mininet是一个网络模拟器,可以创建虚拟主机,交换机,控制器和连接的网络。
Mininet的交换机支持OpenFlow,可实现高度灵活的自定义路由和SDN,为开发和测试SDN提供实验环境
Mininet用途
为开发OpenFlow应用程序提供简单而廉价的网络测试平台 允许多个并发开发人员在同一拓扑上独立工作 支持系统级回归测试,这些测试可重复且易于打包 支持复杂的拓扑测试,无需连接物理网络 包括具有拓扑感知和OpenFlow感知的CLI,用于调试或运行网络范围的测试 支持任意自定义拓扑,并包括一组基本的参数化拓扑 可以在没有编程的情况下开箱即用 提供了一个简单易用的Python API,用于网络创建和实验
安装
Ubuntu16.04
1 | apt install mininet |
测试
1 | sudo mn --test pingall |
使用
常用命令
进入mininet命令行模式
1 | root@mininet:~# mn |
查看节点
1 | mininet> nodes |
可以看到当前包含3个节点,包括两个host,一个switch
查看连接状况
1 | mininet> net |
h1的eth0与s1的eth1相连
h2的eth0与s1的eth2相连
查看详细信息
1 | mininet> dump |
环境清理
1 | # mn -c |
节点命令
1 | mininet> h1 ifconfig |
Run http server
1 | mininet> h1 python -m SimpleHTTPServer 80 & |
Http client
1 | mininet> h2 wget h1 |
拓扑
mininet自带topo
通过mn -h
可以看到Mininet自带的几种topo类型,分别有Linear, minimal, reversed, single, torus和tree类型,但有时候这些类型无法满足需求,需要自定义topo
1 | $ mn --help |
获取示例
Mininet提供了topo-2sw-2host的示例,可以通过Mininet github的custom目录下获取
1 | """Custom topology example |
自定义topo
如要创建如下topo
1 | +------------+ |
代码
1 | from mininet.topo import Topo |
使用自定义topo
1 | root@mininet:~# mn --custom ./testtopo.py --topo mytopo --controller=remote,ip=127.0.0.1,port=6633 |
查看连接状态
1 | mininet> links |
文章转载自Simble的小站,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




