哦,天啊,SDN实验,永远滴痛。
今天折腾SDN的实验,使用SDN的Controller Benchmark测试工具Cbench来测试SDN控制器的性能。众所周知(也许只我一菜逼知道),由于一些文档的缺乏,加上各种工具版本的更迭导致的各工具之间不兼容问题,SDN的实验环境极其难以部署(吧)。今天在Ubuntu16.04LTS环境下搭建了该测试环境,费了不少功夫,不过也算是完成了。
实验环境
- 操作系统:Ubuntu16.04LTS
- SDN控制器:Floodlight(github master)最新版(https://github.com/floodlight/floodlight)
- 测试工具:Cbench(https://github.com/mininet/oflops)
- OpenFlow:1.0(https://github.com/mininet/openflow)
搭建步骤
一. 安装Floodlight控制器
1. 安装jdk8
由于最新版Floodlight控制器依赖Java8版本,所以操作系统中需要配置jdk8环境。
我一开始使用命令行安装的openjdk-1.8,但是导致Floodlight安装过程出现了问题,所以从jdk官网下载了jdk1.8,通过.bashrc配置系统变量,解决了Floodlight安装错误问题。
- 从oracle官网下载jdk1.8-linux-x64版1 我下载的版本是 jdk-8u251-linux-x64.tar.gz 
- 解压到/opt/java文件夹中(这里其实可以随意,只要后面配对系统环境变量就行)1 sudo tar -zxvf jdk-8u251-linux-x64.tar.gz -C /opt/java/ 
- 配置环境变量,在~/.bashrc中添加下列两行1 
 2cd ~ 
 vim .bashrc1 
 2export JAVA_HOME=/opt/java/jdk1.8.0_251 
 export PATH=${JAVA_HOME}/bin:${PATH}
- 使.bashrc生效1 source ~/.bashrc 
2. 安装Floodlight控制器
- 安装依赖1 sudo apt-get install build-essential ant maven python-dev 
- 进入~目录
- 操作如下1 
 2
 3
 4
 5
 6
 7
 8git clone git://github.com/floodlight/floodlight.git 
 cd floodlight
 git submodule init
 git submodule update
 ant
 sudo mkdir /var/lib/floodlight
 sudo chmod 777 /var/lib/floodlight
二. 安装OpenFlow
- 进入~目录
- 操作如下1 git clone git://github.com/mininet/openflow.git 
- 这里得到OpenFlow的目录是你用户目录下的openflow目录,等会需要用到,直接进入该目录输入pwd即可获取完整绝对路径
三. 安装Cbench
- 安装必要的依赖1 sudo apt-get install autoconf automake libtool libpcap-dev 
- 注意这里我没有按照官网上安装libsnmp-dev,因为我安装的时候出错了。用如下方法安装:(aptitude可以帮助你安装需要的依赖,或者帮助你选择降级部分依赖来使得能够正确安装与使用)1 
 2sudo apt-get install aptitude 
 sudo aptitude install libsnmp-dev
- 安装Cbench,在~目录下,这里的/home/funny/openflow是我之前OpenFlow安装的目录1 
 2
 3
 4
 5
 6git clone git://github.com/mininet/oflops.git 
 cd oflops/
 sh boot.sh
 ./configure --with-openflow-src-dir=/home/funny/openflow
 make
 sudo make install
- 如果在make过程中出现libconfig.h: No such file or directory的错误,则安装libconfig-dev1 sudo apt-get install libconfig-dev 
至此,Cbench就完整的安装完成了。开始做实验吧(哭脸)~
