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