floodlight源码
1. 如何在linux下安装floodlight
一、安装VmwareWorkstation
附赠可用注册码5C4A7-6Q20J-6ZD58-K2C72-0AKPE
二、安装floodlight及mininet
1、安装floodlight
Ctrl+Alt+T打开控制台输入:
$sudo apt-get update
$sudo apt-get install build-essential default-jdk ant python-dev
$git clone git://github.com/floodlight/floodlight.git
$cd floodlight
$ant
$cd target
$java -jar floodlight.jar #运行Floodlight
打开浏览器输入:localhost:8080/ui/index.html进入如下界面则说明安装成功:
2、安装mininet
新建一个终端控制台,输入:
$sudo apt-get install mininet
注:如果之前安装过openvswitch将会报错,这是只需要输入以下命令删除ovs残存文件即可:
$sudo rm /usr/local/bin/ovs*
解决完错误之后再输入安装mininet的命令此时不再报错,但是使用mininet创建命令的时会在报错,提示6633端口已被占用。这是因为mininet安装完毕之后会自行启动,输入以下命令关闭服务:
$sudo service openvswitch-controller stop
Mininet同时也是开机自启动,关闭自启动:
$sudo update-rc.d openvswitch-controller disable
这是在用mininet的创建命令就没有任何问题了:
$sudo mn --controller=remote,ip=172.168.1.2,port=6633(此处的IP地址运行floodlight控制器的机器的IP地址,请根据自己的情况自行修改)
需要注意的是使用命令行安装的mininet的版本比较老,貌似只有1.4+,而通过源码安装则可以安装到最新版本(2.2+)。
源码编译安装:
$git clone git://github.com/mininet/mininet#下载源码
$git checkout -b 2.2.0 2.2.0#选择2.2版本
$./util/install.sh#编译安装
这里自带的脚本会帮你处理好一切的,安心好了。不过建议看一下mininet的INSTALL文件,看一下对系统有什么要求。
同样需要注意命令安装的情况,关闭自启动。
三、安装wireshark
新建终端控制台,输入:
$sudo apt-get install wireshark
这样全部的准备工作已经做完了
四、联机调试抓包
在进行抓包之前将之前运行的floodlight和mininet全部关闭
1、运行floodlight
$java -jar floodlight/target/floodlight.jar
2、运行wireshark
$sudo wireshark (一定要用root权限打开,否则无法检测网卡端口)
点击监测的端口,如果在同一台机器上测试,就选择lo环回端口,如果mininet链接练成控制器则监测eth0端口。
在开始对网卡端口监测之后在启动mininet,确保能抓到Hello包
3、启动mininet
$sudo mn --controller=remote,ip=202.119.167.224
这时你就能从wireshark中看到各种OFP的数据包了!
2. 如何去研究SDN&OpenFlow
建议如下: Nick McKeown主页上的教程ppt和演讲ppt。Nick的几篇关于OpenFlow的主要paper做精读。(2周?) OpenFlow官网上的Tutorial非常非常好,一步一步做下来,再做2遍,然后对着OpenFlow对应版本的Spec学习,知其然知其所以然。(2周?) 开源的那么多Controller和Switch(列表 http://www.ycwriters.com/~casado/of-sw.html),找一对学习源代码,个人觉得floodlight和open vswitch不错。(根据学习的深浅,2周到半年都有可能) 前沿的方向,比如P4,比如POF,比如ONOS,比如ODL……这些方向都有很多内容 每年的ONS会议,网站注册后可以看到视频和ppt,这都是最新的东东 如果你是学生,尤其是以此为研(bi)究(ye)方向的研究生,就需要考虑选啥方向做毕业选题了,比如可以有几个方向 做个APP实现...
3. 如何在centos安装floodlight
第一步,你需要下载QT源代码(4.8的编译比较容易),然后通过 ./configure (参数自己定,不懂看readme)接下来就是在QT CREATE里面配置了,如下:工具-->选项--->构建和运行1. 编译器: 点击添加: "名称"随意
4. 如何去研究SDN&OpenFlow
Nick McKeown主页上的教程ppt和演讲ppt。Nick的几篇关于OpenFlow的主要paper做精读。(2周?)
OpenFlow官网上的Tutorial非常非常好,一步一步做下来,再做2遍,然后对着OpenFlow对应版本的Spec学习,知其然知其所以然。(2周?)
开源的那么多Controller和Switch(列表 http://yuba.stanford.e/~casado/of-sw.html),找一对学习源代码,个人觉得floodlight和open vswitch不错。(根据学习的深浅,2周到半年都有可能)
前沿的方向,比如P4,比如POF,比如ONOS,比如ODL……这些方向都有很多内容
每年的ONS会议,网站注册后可以看到视频和ppt,这都是最新的东东
如果你是学生,尤其是以此为研(bi)究(ye)方向的研究生,就需要考虑选啥方向做毕业选题了,比如可以有几个方向
做个APP实现,比如做烂了的TE/LB算法、管理、可视化?混个毕业应该问题不大
修改下floodlight、openvswith搞点新特性啥的
做个前沿方向?比如P4、POF、ONOS、ODL、甚至OCP……每一条里面可研究的东西很多
如果是清华中科大的话,他们相关的实验室已经有自己探索的方向了,跟着老师走多干活多思考
多讨论、多练手、多思考、多笔记
5. 如何使用Floodlight连接并管理Open vSwitch
Open vSwitch(下面简称为 OVS)是由 Nicira Networks 主导的,运行在虚拟化平台(例如 KVM,Xen)上的虚拟交换机。在虚拟化平台上,OVS 可以为动态变化的端点提供 2 层交换功能,很好的控制虚拟网络中的访问策略、网络隔离、流量监控等等。
OVS 遵循 Apache 2.0 许可证, 能同时支持多种标准的管理接口和协议。OVS 也提供了对 OpenFlow 协议的支持,用户可以使用任何支持 OpenFlow 协议的控制器对 OVS 进行远程管理控制。
Open vSwitch 概述
在 OVS 中, 有几个非常重要的概念:
Bridge: Bridge 代表一个以太网交换机(Switch),一个主机中可以创建一个或者多个 Bridge 设备。
Port: 端口与物理交换机的端口概念类似,每个 Port 都隶属于一个 Bridge。
Interface: 连接到 Port 的网络接口设备。在通常情况下,Port 和 Interface 是一对一的关系, 只有在配置 Port 为 bond 模式后,Port 和 Interface 是一对多的关系。
Controller: OpenFlow 控制器。OVS 可以同时接受一个或者多个 OpenFlow 控制器的管理。
datapath: 在 OVS 中,datapath 负责执行数据交换,也就是把从接收端口收到的数据包在流表中进行匹配,并执行匹配到的动作。
Flow table: 每个 datapath 都和一个“flow table”关联,当 datapath 接收到数据之后, OVS 会在 flow table 中查找可以匹配的 flow,执行对应的操作, 例如转发数据到另外的端口。
Open vSwitch 实验环境配置
OVS 可以安装在主流的 Linux 操作系统中,用户可以选择直接安装编译好的软件包,或者下载源码进行编译安装。
在我们的实验环境中,使用的操作系统是 64 位 Ubuntu Server 12.04.3 LTS,并通过源码编译的方式安装了 Open vSwitch 1.11.0
$ lsb_release -a
No LSB moles are available.
Distributor ID:Ubuntu
Description:Ubuntu 12.04.3 LTS
Release:12.04
Codename:precise
OVS 的源码编译安装方式可以参考官方文档 How to Install Open vSwitch on Linux, FreeBSD and NetBSD。
安装完毕后,检查 OVS 的运行情况:
$ ps -ea | grep ovs
12533 ? 00:00:00 ovs_workq
12549 ? 00:00:04 ovsdb-server
12565 ? 00:00:48 ovs-vswitchd
12566 ? 00:00:00 ovs-vswitchd
查看 OVS 的版本信息, 我们安装版本的是 1.11.0
$ ovs-appctl --version
ovs-appctl (Open vSwitch) 1.11.0
Compiled Oct 28 2013 14:17:16
查看 OVS 支持的 OpenFlow 协议的版本
$ ovs-ofctl --version
ovs-ofctl (Open vSwitch) 1.11.0
Compiled Oct 28 2013 14:17:17
OpenFlow versions 0x1:0x4
基于 Open vSwitch 的 OpenFlow 实践
OpenFlow 是用于管理交换机流表的协议,ovs-ofctl 则是 OVS 提供的命令行工具。在没有配置 OpenFlow 控制器的模式下,用户可以使用 ovs-ofctl 命令通过 OpenFlow 协议去连接 OVS,创建、修改或删除 OVS 中的流表项,并对 OVS 的运行状况进行动态监控。
6. 如何去研究SDN&OpenFlow
习源代码,个人觉得floodlight和open vswitch不错。(根据学习的深浅,2周到半年都有可能)
前沿的方向,比如P4,比如POF,比如ONOS,比如ODL……这些方向都有很多内容
每年的ONS会议,网站注册后可以看到视频和ppt,这都是最新的东东
如果你是学生,尤其是以此为研(bi)究(ye)方向的研究生,就需要考虑选啥方向做毕业选题了,比如可以有几个方向
做个APP实现,比如做烂了的TE/LB算法、管理、可视化?混个毕业应该问题不大
修改下floodlight、openvswith搞点新特性啥的
做个前沿方向?比如P4、POF、ONOS、ODL、甚至OCP……每一条里面可研究的东西很多
如果是清华中科大的话,他们相关的实验室已经有自己探索的方向了,跟着老师走多干活多思考
多讨论、多练手、多思考、多笔记