1.准备

确保jdk1.8及以上。并安装git、ant、mininet(均可直接sudo apt-get install git、ant或mininet安装)。

2.安装Floodlight

2.1下载源

git clone git://github.com/floodlight/floodlight.git 

2.2 编译安装

cd floodlight
ant

若jdk不是1.8版本,会报错。

2.3 运行

java -jar target/floodlight.jar

启动后,通过浏览器访问floodlight的管理界面,http://localhost:8080/ui/index.html结果出现管理界面无法访问。

解决方法如下:方法一:需要通过git Submodule命令进行一系列的设置,通过命令行(这边稍微解释下git Submodule命令,git Submodule 是一个很好的多项目使用共同类库的工具,他允许类库项目做为repository,子项目做为一个单独的git项目存在父项目中,子项目可以有自己的独立的commit,push,pull。而父项目以Submodule的形式包含子项目,父项目可以指定子项目header,父项目中会的提交信息包含Submodule的信息,再clone父项目的时候可以把Submodule初始化。)

# git pull origin master
# git submodule init
# git submodule update
# ant

方法二:用旧的版本0.91。

3.mininet连接Floodlight

安装控制器后,要与mininet构建拓扑结构,以数据中心网络为例,构建了一个脚本fattree.py。

 sudo mn --custom /home/lyx/fattree.py --topo mytopo --controller=remote,ip=218.193.113.249,port=6633 --switch ovsk,protocols=OpenFlow10 

根据实际情况将ip为floodlight所在服务器的ip,添加protocols参数指定OpenFlow协议版本。然后针对port,当6633web界面没有反应时,试着换着用6653,有可能6633被占用了,特别是floodlight version1.2 (特别提醒)

mn为mininet启动命令。

--mac指定虚拟主机的mac地址顺序编号,若不带此参数则随机编号

--controller指定of交换机的控制器

--switch指定虚拟交换机的类型,ovsk表示虚拟交换机为ovs Kernel mode

--custom指定自定义拓扑文件

--topo指定加载拓扑的名字

4.注意

做完试验后,需将floodlight和mininet关闭,别直接关机,否则端口被占用。