簡要介紹在沒有OpenFlow硬件設備下如何搭建一個OpenFlow環境。控制器使用OpenDaylight(如下簡寫爲ODL),是如今主流的控制器項目,功能比較完善。模擬OpenFlow設備使用Mininet,遠比基於KVM的虛擬機應用更高效、更簡潔,且更容易理解。php
主要的最簡單的環境準備是:一臺PC及安裝VMware station(或VirtualBox)工做站用來承載VM。html
可直接經過地址連接下載ODL的VM鏡像:
http://archive.openflow.org/wk/index.php?title=OpenDayLight_Tutorial,下載此鏡像後,可用VMware station直接打開此VM,使用並啓動ODL。如想具體瞭解ODL的安裝詳情,可搜索有關ODL的文檔,會在技術文檔中更新ODL的具體安裝。linux
打開VM後,先進入OpenDaylight目錄:git
cd opendaylight/opendaylight/distribution/opendaylight/
Shell再進入OpenDaylight啓動目錄:瀏覽器
cd target/distribution.opendaylight-package/opendaylight
執行:微信
Shell網絡
run.sh
在瀏覽器中(VM環境或本地環境)輸入http://[VM_IP]:8080可轉到以下登陸界面,其中[VM_IP]替換爲控制器IP。登陸用戶名:admin,密碼:admin,登陸進入ODL的Web界面查看並可對ODL操做。測試
Mininet主要是虛擬出OpenFlow交換機以及host主機節點,而且能經過自定義來構造用戶想要的拓撲。虛擬OpenFlow交換機主要是使用基於Open vSwitch的應用。ui
從http://mininet.org/download/下載Mininet的VM鏡像,打開此鏡像後,用戶名爲mininet,密碼爲mininet。登陸進入Mininet虛擬機,以後便可經過 mn命令來建立拓撲。後續也會提供Mininet的源碼編譯安裝方法。spa
建議wireshark安裝在ODL的VM上,由於ODL的VM是桌面版,可直接顯示wireshark的抓包數據。1.6版本的wireshark要支持OpenFlow,須要作以下操做(注:此文檔配置只支持1.6版本)。
$ sudo apt-get install git-core automake m4 pkg-config libtool $ git clone git://openflow.org/openflow.git或git clone git://gitosis.stanford.edu/openflow.git $ cd openflow $ ./boot.sh
4.2 安裝編譯命令
在openflow目錄下執行
$ sudo apt-get install gcc $ ./configure $ make $ sudo make install
4.3 安裝Wireshark Dissector(掃描器)
在openflow目錄下,獲取wireshark
$ sudo apt-get install wireshark libgtk2.0-dev
安裝並編譯:
$ cd utilities/wireshark_dissectors/openflow
修改utilities/wireshark_dissectors/openflow/packet-openflow.c文件的769行(注:「:set nu」 命令可顯示行數)
dissector_add(TCP_PORT_FILTER, global_openflow_proto, openflow_handle)
改成:
dissector_add_uint(TCP_PORT_FILTER,global_openflow_proto,openflow_handle)
修改保存後編譯:
$ make $ sudo make install
將編譯好的庫packet-openflow.so放入wireshark插件目錄,命令以下:
$ scp packet-openflow.so /usr/lib/x86_64-linux-gnu/wireshark/plugins/2.2.6/
查看目錄/usr/lib/wireshark/libwireshark1/plugins/的文件,含有packet-openflow.so文件。
在root用戶權限下執行命令,打開wireshark:
$ wireshark &
進入wireshark界面,在Help菜單下的「About Wireshark」中查看插件裏是否有packet-openflow,下圖表示插件添加成功。
在Filter中輸入of可被識別(注:綠色表示輸入正確),便可支持OpenFlow協議!
因爲SDN的快速發展,wireshark官網更新的wireshark已有專門的版本(Stable Release (1.12.1)版本)支持OpenFlow協議,且支持of協議的多個版本,包括of1.0、1.一、1.二、1.3,有助於後續的多版本協議研究,因此可直接下載,進行安裝使用,連接地址爲:https://www.wireshark.org/download.html。
注意:
(1)其實ODL的VM中有支持OpenFlow協議的wireshark,可是,經測試,VM中自帶的wireshark解析器抓包有問題,因此從新安裝支持OpenFlow協議的wireshark。
(2)也可在Mininet所在的VM中安裝wireshark,因Mininet虛擬機是server版,因此使用wireshark時,可以使用Xming與Putty相結合,將X11中的轉發功能勾選,遠程登陸此VM,經過執行wireshark抓包獲取數據,使用putty以下圖所示。
本文主要是爲後續瞭解ODL及Mininet作準備,經過ODL和Mininet的安裝獲取熟悉它們的基本概念。具體的關於SDN OpenFlow協議的瞭解能夠閱讀本專題後續文章—— OpenFlow協議分析,將對搭建OpenFlow環境的基礎操做及協議分析進行詳細輸出。