mn:启动mininet
sudo mn -- topo single , 3 -- mac -- switch ovsk -- controller remote
(1)--topo:指定openflow网络拓扑,四种类型的openflow网络拓扑:tree,single,linear,minimal
①缺省情况下,创建的是minimal拓扑包括四个元素:one OpenFlow kernel switch connected to two hosts, plus the OpenFlow reference controller
②—topo single,3则是1个openflow switch加上3个主机
③--topo linear,4 则表示four OpenFlow switches, each switch has one host, and all switches connect in a line
④--topo tree, depth=2,fanout=8则表示a network with a tree topology of depth 2 and fanout 8 (i.e. 9 switches connecting 64 hosts)
(2)--custom:在上述已有拓扑的基础上,MiniNet支持自定义拓扑,使用一个简单的Python API即可,例如导入自定义的mytoposudo mn --custom ~/mininet/custom/topo-2sw-2host.py --topomytopo --test pingall
(3)--switch:可以有三类openflow交换机:kernel内核状态、user用户态以及ovsk是Open vSwith状态。当然kerner和ovsk的性能和吞吐量会高一些,通过运行sudo mn --switch ovsk --test iperf进行iperf的测试得知。
(4)—controller:可以是参考控制器,NOX或者虚拟机之外的远端控制器,一个指定远端控制器的方法:sudo mn --controller=remote --ip=[controller IP] --port=[controllerlistening port]
(5) –mac: 作用是让MAC地址易读,即 setsthe switch MAC and host MAC and IP addrs to small, unique, easy-to-read IDs
s1 ifconfig | 查看s1网络信息 |
h2 ping -c 3 h3 | 用ping3个包的形式测试h2和h3之间的连通情况 |
intfs | 列出网络接口 |
iperf | 两个节点之间进行简单的iperfTCP测试 |
iperfudp | 两个节点之间用制定带宽udp进行测试 |
net | 显示网络链接情况 |
noecho | 运行交互式窗口,关闭回应(echoing) |
pingpair | 在前两个主机之间互ping测试 |
source | 从外部文件中读入命令 |
dpctl | 在所有交换机上用dptcl执行相关命令,本地为tcp127.0.0.1:6634 |
link | 禁用或启用两个节点之间的链路 |
nodes | 列出所有的节点信息 |
pingall | 所有host节点之间互ping |
py | 执行python表达式 |
sh | 运行外部shell命令 |
xterm h1 | 打开h1终端 |
quit/exi | 退出 |
sudo mn -c | clean up清理 |
s1 arp | 区别显示host的网络是隔离的 |
s1 route | |
h1 ps -a | |
node cmd | 对某个节点进行操作 |
sudo mn -x | 在每个节点上自动打开一个Xterm |
xterm s1 h2 | 启动某个节点的xterm |
关于流表的操作:
dpctl show tcp:127.0.0.1:6634 | 可以查看交换机的端口等基本情况,tcp端口6634是默认的交换机监听端口 |
dpctl dump-flows tcp:127.0.0.1:6634 | 可以看到更详细的流表信息,若流表为空,可以手动添加流表 |
dpctl del-flows tcp:127.0.0.1:6634 | 删除流表 |
dpctl add-flow tcp:127.0.0.1:6634 in_port=2,idle_timeout=360,actions=output:3
