哦,天啊,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-dev
1
sudo apt-get install libconfig-dev
至此,Cbench就完整的安装完成了。开始做实验吧(哭脸)~