原生支持OpenFlow1.3協議的Mininet安裝與驗證



pt-原生支持openflow1.3協議的Mininet安裝與驗證--2014-12-16

Mininet可以用一個命令在一臺主機上(虛擬機、雲或者本地)以秒級創建一個虛擬網絡,並在上面運行真正的內核、交換機和應用程序代碼。之前已經有很多文章介紹過Mininet的安裝使用,但是很可惜之前介紹的Mininet版本並不支持或需要修改相應配置文件才能支持OpenFlow1.3協議,這給我們用戶在使用過程中增加了不必要的麻煩。高興的是Mininet2.1.0p1及以後的版本可以原生支持OpenFlow1.3啦!但是這些新版本暫時還不能通過apt-get(Ubuntu環境下)命令獲取到,筆者今天就整理了一份文檔教大家如何安裝並驗證支持OpenFlow1.3協議的Mininet。

1 準備工作

本文基於Ubuntu13.10實現,在正式安裝Mininet之前我們需要安裝一些所需的環境依賴:包括git等。

我們要安裝的Mininet版本是2.2.0b0版本,該版本目前還是測試版本,其中加入了一些新特性,當然也會存在一些bug,有經驗的用戶也可以將測出的bug提交至github。那麼截稿前,原生支持OpenFlow1.3協議的Mininet總共就有了三個版本,分別是2.1.0p1、2.1.0p2和2.2.0b0。

Mininet 2.2.0b0版本在修復一些BUG的同時提供了一些新特性,包括了:

(1)提供OpenFlow1.3的支持

  • “mn --switch ovs,protocols=openflow13”:用OF1.3模式啓動OVS
  • “install.sh –w”:用Loxigen安裝兼容OF1.3的Wireshark
  • “install.sh –y”:安裝兼容OF1.3的Ryu控制器

(2)提供一個新的nodelib.py節點庫,和新的節點類型,包括LinuxBridge,OVSBridge,LinuxRouter和NAT

(3)提供一個改進的MiniEdit GUI(示例/miniedit.py)

(4)實驗集羣的支持,可以通過mn --cluster localhost,server1,server2命令實現

注意:示例包含的實驗特性在未來可能會被植入Mininet成爲它的一部分,但他們不能被認爲是穩定的Mininet API的一部分。

2 Mininet 2.2.0b0版本安裝

此安裝方法適用於本地虛擬機,EC2遠程和本地安裝,並適合在一個乾淨的Ubuntu(或者Fedora的)上進行安裝。不適用於從舊版本的Mininet或OVS升級。

官方強烈建議安裝最新的Ubuntu發行版,因爲它們支持新版本的Open vSwitch。Fedora也支持最近發佈OVS。
首先獲取源代碼到本機:

獲取到本地後通過查看mininet文件夾下的INSTALL文件可以查看當前獲取到的mininet版本。

cat install

從源代碼樹上獲取以後你就可以安裝Mininet了。

這裏典型的[options]主要有下面幾種:

  • “-a”:完整安裝包括Mininet VM,還包括如Open vSwitch的依賴關係,以及像的OpenFlow Wireshark分離器和POX。默認情況下,這些工具將被安裝在你的home目錄中。
  • “-nfv”:安裝Mininet、基於OpenFlow的交換機和Open vSwitch。
  • “-s mydir” :在其他選項使用前使用此選項可將源代碼建立在一個指定的目錄中,而不是在你的home目錄。

所以,你可能會使用下面的某一個命令:

完整安裝(默認安裝在home目錄下):

完整安裝(安裝在其他目錄):

安裝Mininet+用戶交換機+OVS(安裝在home目錄下):

安裝Mininet+用戶交換機+OVS (安裝在其它目錄下):

我們這裏選擇完整安裝:

安裝完成後,我們可以通過一個簡單的命令來測試Mininet的基本功能是否正常。

test pingall

我們可以再來看下安裝完之後的版本號:

3 OF1.3通信驗證

安裝完之後我們來驗證一下新版本的Mininet是否原生支持OpenFlow1.3。這裏要注意一下,僅是Mininet生成的的交換機南向接口支持了OpenFlow1.3,自帶的控制器還暫不支持,所以要驗證還需要一個支持OpenFlow1.3的控制器才行,如Ryu和OpenDaylight Helium。這裏以之前介紹過的OpenDaylight Helium爲例。OpenDaylight Helium安裝教程請見《OpenDaylight的Helium(氦)版本安裝》
Mininet連接支持OpenFlow1.3的控制器:

mn 連接控制器

該版本已不像之前2.1.0修改版本一樣能在啓動打印日誌上看到所用的協議版本,因此後續我們要驗證其南向接口是否用了OpenFlow1.3協議。

我們讓默認生成的兩臺主機互ping一下:

我們查看交換機中的流表看是否爲OpenFlow1.3版本的:

流openflow1.3

通過Wireshark查看抓包也可以看出使用的通信協議及版本號。

wireshark抓包

4 總結

本文介紹了通過源碼安裝Mininet 2.2.0b0版本並驗證了其原生支持OpenFlow1.3,不像之前的版本要麼不支持要麼需要修改配置文件,這給我們使用者帶來福音。同時,支持OpenFlow1.3也是大勢所趨,它帶給我們網絡的可編程化、可自定義化也更加印證了“軟件定義網絡”的大名。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章