环境:vmware中安装的ubuntu-16.04.2,在ubuntu16.04.2中安装mininet+opendaylight/floodlight+wireshark。
安装floodlight说明:ubuntu中java环境要求jdk1.8,在ubuntu-16.04.2中默认的java环境为jdk1.8,所以下述过程中直接通过git获取的安装包都是最新版本的。若ubuntu版本低,则会出现jdk版本达不到要求,即使在低版本ubuntu中手动安装jdk1.8,在安装floodlight过程中还是会出现各种问题,比如web界面访问不了;ant floodlight过程中出现问题;启动floodlight时报错,sudo module init命令执行不了等各种奇葩问题(注:这些问题LZ这几天很不幸都碰上过,所以最终选择安装了ubuntu-16.04.2结果之前的问题都没出现了。)
说明:Opendaylight和floodlight只需要安装一个就行,他们都是控制器。
1、 安装mininet
参考:http://mininet.org/download/
三种方式:
(1)虚拟机映像文件下载
在windows 7 操作系统中,从mininet官网http://mininet.org下载最新的虚拟机文件,解压、并导入到vmware workstation,启动虚拟机。关于虚拟机的配置不再赘述,请自行解决。(这种方式安装的mininet是server版的,没有桌面图形化界面,不好操作。)
(2)基于源码安装Mininet
最简单的方式是使用Mininet官网上的最新虚拟机大家Mininet环境。下面则基于源代码安装。
首先要安装git,代码如下:
sudo apt-get update
sudo apt-get install git
测试是否安装成功:git
1)获取最新的源码树:
输入命令:git clone git://github.com/mininet/mininet
上述命令会在当前目录下创建mininet文件夹。
选择安装版本:
进入mininet目录
git tag (可以查看版本)
git checkout -b 2.2.0 2.2.0
2)安装:
进入mininet//util下输入下述命令:
1. 在当前目录下安装所有Toinstall everything (using your home directory):
./install.sh -a
2. 在mydir下安装所有To installeverything (using another directory):
./install.sh -s mydir -a
3. 在当前目录下安装Mininet+ user switch + OVS To install Mininet + user switch + OVS (using your homedir):
./install.sh -nfv
4. 在当前mydir下安装Mininet +user switch + OVS To install Mininet + user switch + OVS (using another dir):
./install.sh -s mydir –nfv
这里我选择的第二个:
install.sh -s /usr/local –a
3)打开mininet
sudo mn
4)使用miniedit自定义拓扑/python脚本自定义拓扑
http://blog.sina.com.cn/s/blog_88125af10102wrdk.html
运行自定义拓扑命令:
sudo mn --custom XXX.py --topo classname --mac --controller=remote, ip=yourcontrollerIp,port=6633/6653
(pingall之后可以在opendaylight上看见host图形,否则只能看见交换机图形)
5)mininet常见命令
https://segmentfault.com/a/1190000000669218
http://www.sdnlab.com/11495.html
2、 安装opendaylight
(1)下载地址:http://www.opendaylight.org/software/downloads
(2)解压并进入
unzip distribution-karaf-0.2.0-Helium.zip
cd distribution-karaf-0.2.0-Helium
./bin/karaf
即可见到以下画面:
(3)安装组件
要让其显示webUI必须安装相关的DLUX 安装DLUX步骤:
1)Install L2switch and openflow plugin
feature:install odl-restconf-all
feature:install odl-l2switch-switch
feature:install odl-openflowplugin-all
2)Installbasic md-sal controller features on the Karaf console
feature:install odl-mdsal-all
3)Then,install dlux feature
feature:install odl-dlux-all
4)Installad-sal features on the Karaf console.
feature:install odl-adsal-northbound
一定要按照上述步骤安装,否则会出错。
如果安装出现问题和冲突,退出karaf console,执行./karaf clean
(4)web显示
安装完后等一段时间既可以访问你的OpenDaylight的webUI页面了,输入:http://<IP of your machine>:8181 /index.html
默认用户名和密码都为:admin
3、 安装floodlight
参考:https://floodlight.atlassian.net/wiki/display/floodlightcontroller/Installation+Guide#InstallationGuide-Floodlightv1.2andBelowCtrl+Alt+T打开控制台输入:
sudo apt-get update
sudo apt-get install build-essential default-jdk ant python-dev eclipse
git clone git://github.com/floodlight/floodlight.git
(如果要选择安装的版本的话,可做如下修改)
git clone -b v1.2.0 git://github.com/floodlight/floodlight.git
cd floodlight
git submodule init(首次执行该命令会有输出,之后执行结果见下图)
git submodule update(首次执行该命令会有输出,之后执行结果见下图)
ant
首次运行floodlight需要执行下述两个命令,以后不需要。
sudo mkdir /var/lib/floodlight
sudo chmod 777 /var/lib/floodlight
打开浏览器输入:localhost:8080/ui/index.html进入如下界面则说明安装成功:
4、 安装wireshark
新建终端控制台,输入:
sudo apt-get install wireshark
这样全部的准备工作已经做完了
(注意打开wireshark要用root权限打开,输入命令:su root)
5、 联机调试
在进行抓包之前将之前运行的floodlight和mininet全部关闭
(1)运行floodlight
java -jar floodlight/target/floodlight.jar
(2)运行wireshark
sudo wireshark (一定要用root权限打开,否则无法检测网卡端口)
点击监测的端口,如果在同一台机器上测试,就选择lo环回端口,如果mininet链接练成控制器则监测eth0端口。
在开始对网卡端口监测之后在启动mininet,确保能抓到Hello包
(3)启动mininet
sudo mn --custom XXX.py --topo classname --mac --controller=remote,ip=yourcontrollerIp,port=6653(注意端口号不是6633,而是6653)
pingall
这时你就能从wireshark中看到各种OFP的数据包了!
That’sall