cbench安装与使用说明
cbench用来测试OpenFlow控制器或是OpenFlow网络虚拟化平台实在是太合适了。它的原理是不断循环产生“新的”流(注意是新的),从而用大量的packet-in消息检验控制器或是平台的抗压能力。通过发送packet-in消息和查看flow-mod消息下发的统计消息,将性能指标呈现给用户。
cbench毕竟不是mininet,它的着眼点在调试。所以,虽然cbench也能虚拟出许多多台交换机和大批主机,但是开放的参数很少。不过,这对于测试已经足够了。
安装配置过程如下,官网上的过程可以照搬。
1 | #第一步:安装依赖包 无脑apt-get即可 |
以上的步骤中容易出两种情况的错误:
- 权限不够,make报错 “xxxxxx Permission denied”,/usr/local/lib,include,share会出现
- 依赖包补全,make报错“xxx: command not found”,笔者的错误是g++不识别,sudo apt-get install g++ 再次make就好了
至此,cbench安装完成。可以使用cbench的各种参数完成你的仿真了。下面这行代码即可执行仿真命令(前提是本机上6633端口得有控制器),由于cbench有默认参数,所以这也是可以执行的。cbench的参数就都能看到了。参数的详细介绍可以见SDNAP1
2$ ./cbench
$ ./cbench -h
要想进行测试,还需要安装控制器。如POX或者Floodlight等。这比较简单,POX:
1 | $ cd pox |
Floodlight要稍复杂一点:
1 | # 先安装操作环境,Floodlight是用Java写的所以要有标准JDK和构建工具ant Eclipse可选 |
根据个人经验,如果之前做个SDN的相关实验,有可能报错端口6633已被占用。这很可能是ovs-controller的开机启动导致的。
1 | $ ps -aux | grep controller //杀干净吧 |
不过Floodlight的服务器可能还会启动不成功,不过并不影响实验。在Floodlight/src/main/resources/Floodlightdefault.properties中可以更改Floodlight的默认配置。
控制器也安好后,可以根据你的需要来启动测试了。cbench存储了范例,便是如下一行代码的结果。
1 | ./cbench -c localhost -p 6633 -m 10000 -l 10 -s 16 -M 1000 -t |
-M 后的参数是不同MAC地址的主机数。根据个人体验,主机数较多点仿真出来的效果会比较好。