1 Floodlight概述html
Floodlight是目前主流的SDN控制器之一,它的穩定性、易用性已經獲得SDN專業人士以及愛好者們的一致好評,並因其徹底開源,這讓SDN網絡世界變得更加有活力。控制器做爲SDN網絡中的重要組成部分,能集中地靈活控制SDN網絡,爲核心網絡及應用創新提供了良好的擴展平臺,本文檔主要介紹基於Java語言的開源SDN控制器Floodlight的安裝部署。git
2 安裝前準備工做web
若是不是專業人士,咱們建議在虛擬機中搭建環境並安裝。json
Linux:本文基於Ubuntu12.04版本安裝api
■系統需求:Ubuntu 10.04(Natty)及以上版本(運行Ant1.8.1及如下版本)微信
■安裝JDK,Ant。(可在Eclipse上安裝)網絡
安裝圖形化Eclipse(非必須)eclipse
■安裝gitui
3 安裝Floodlightspa
(1)從Github下載並編譯Floodlight。
(2)運行Floodlight。
稍等一會Floodlight就會開始運行,並在控制檯打印debug信息。
若是Floodlight運行不正常能夠查看Floodlight的主進程是否正在運行。
(3)Eclipse設置
若是是桌面版帶圖形化界面的Ubuntu而且以前已經安裝了Eclipse,那麼咱們就能夠經過圖形化界面的Eclipse運行、開發、配置Floodlight:
上述命令將建立多個文件:Floodlight.launch,Floodlight_junit.launch,classpath和.project。打開Eclipse軟件,能夠經過下面這些來設置新的Eclipse項目。
■打開eclipse建立一個新的工程
■File -> Import -> General -> Existing Projects into Workspac ,點擊下一步
■點擊「Browse」。選擇以前放置Floodlight的路徑
■點擊Floodlight
■點擊「Finish」
如今就產生了一個Floodlight的Eclipse工程。因爲咱們是使用靜態模塊加載系統運行Floodlight,咱們必須配置Eclipse來正確的運行Floodlight。建立Floodlight目標文件:
■點擊Run->Run Configurations
■右擊Java Application,選擇 New
■「Name」使用「FloodlightLaunch」
■「Project」使用「Floodlight」
■「Main」使用「net.floodlightcontroller.core.Main」
■點擊「Apply」
■點擊「Run」,Floodlight就開始運行了
(4)運行Floodlight後能夠經過登陸http://localhost:8080/ui/index.html使用Floodlight提供的web管理界面查看裏面的信息,包括交換機、主機等等,由於咱們沒有接什麼設備,頁面沒有什麼信息。
4 配置Floodlight
Floodlight提供了兩個配置文件:floodlightdefault.properties和learningswitch.properties,路徑都位於floodlight/src/main/resources/。經過這兩個配置文件能夠查看Floodlight已經加載的子模塊以及控制器的偵聽端口、web端口,默認的偵聽端口是6633,web端口是8080。若有必要用戶能夠自定義加載子模塊和修改偵聽端口,經過vi命令修改配置文件後,在Floodlight目錄下執行ant編譯後重啓Floodlight便可。配置參數以下兩圖a)、圖b)所示:
圖a) floodlightdefault.properties配置信息
圖b) learningswitch.properties配置信息
5 經常使用Floodlight命令
Floodlight將本身的API經過Rest Api的形式向外暴露,關於Rest Api,就是將程序的API封裝成爲通用的http GET/PUT的形式,這樣的話無需關注程序實現細節,經過發送http請求便可完成API操做。因此用戶能夠經過Floodlight的Restful api來向Floodlight請求各類信息,包括交換機狀態、能力、拓撲等。須要注意,經過Floodlight的Restful api返回的信息以json格式封裝。REST Api信息用戶訪問http://www.projectfloodlight.org/floodlight/來得到。
(1)請求該控制器上全部的switch的DPID,能夠參考以下命令,其中localhost:8080要換成控制器的ip和port。
(2)加入流表項
(3)讀取流表項
注:這種方式是經過static flow pusher來獲取流表項。
(4)刪除流表項
假如要刪除全部的流表項,使用以下命令:
其它常見操做同Open vSwitch。
6 Floodlight可兼容交換機
下面列出了能夠和Floodlight控制器兼容的交換機:
虛擬交換機
■Open vSwitch(OVS)
硬件交換機
■Arista 7050
■Brocade MLXe
■Brocade CER
■Brocade CES
■Dell S4810
■Dell Z9000
■Extreme Summit x440, x460, x670
■HP 3500, 3500yl, 5400zl, 6200yl, 6600, and 8200zl (the old-style L3 hardware match platform)
■HP V2 line cards in the 5400zl and 8200zl (the newer L2 hardware match platform)
■Huawei openflow-capable router platforms
■IBM 8264
■Juniper (MX, EX)
■NEC IP8800
■NEC PF5240
■NEC PF5820
■NetGear 7328SO
■NetGear 7352SO
■Pronto (3290, 3295, 3780) - runs the shipping pica8 software
本文來源於SDNLAB,可點擊此閱讀原文。若是您對本文感興趣,可參與如下互動方式與做者近距離交流。 (1) 微博(http://weibo.com/sdnlab/)
(2) 微信(帳號:SDNLAB)
(3) QQ羣
SDN研究羣(214146842)
OpenDaylight研究羣(194240432)