天天看點

mininet源碼安裝與ryu啟動及更新依賴python3mininet安裝及使用出現的問題

mininet源碼安裝與ryu啟動失敗分享

  • mininet安裝及使用出現的問題
    • mininet安裝問題
    • RYU控制器啟動問題

mininet安裝及使用出現的問題

強大的輕量級的mininet仿真器讓我們切切實實的感受到軟體定義網絡SDN的魅力。但是作為剛使用mininet的時候,安裝環境不可避免的會遇到一些問題,在這裡記錄下我安裝及使用時遇到的問題,分享給大家。

mininet安裝問題

其實mininet安裝過程相對于其他軟體還是比較簡單的,大緻的步驟如下所示:

  1. 在Ubuntu裡,擷取源代碼:
git clone git://github.com/mininet/mininet.git
           
  1. 安裝Mininet,需要設計安裝Mininet,user交換機及OVS軟體,可同時指定版本進行安裝
cd mininet/util
./install.sh -n3V 2.5.0
           

需要說明的是,有的部落格安裝執行 ./install.sh -a 指安裝所有資料包,一般不會成功,官方也給了句滑 稽的話——“good luck”。

  • -n表示:安裝Mininet的依賴和核心檔案,
  • -3表示安裝Openflow1.3版本
  • -V表示制定版本的Open(V)Switch,2.5.0表示的就是Open(V)Switch版本。

    指令參數可用./install.sh -h檢視。

    mininet源碼安裝與ryu啟動及更新依賴python3mininet安裝及使用出現的問題
    由于版本的更新問題,上面指定的2.5可能無法安裝成功,那麼我們可以指定我們想要安裝的版本,然後讓指令自己适配。
git clone git://github.com/mininet/mininet.git
cd mininet
           

檢視可用版本

git tag
           

從上面顯示的可用版本中選擇一個想用的版本(我選擇2.3.0rc2)

git checkout xxx
           

最後進行安裝

./util/install.sh -n3v
           

安裝結束後,檢視Mininet版本

sudo mn --version
           

測試基本仿真拓撲

sudo mn --test pingall
           

注意:每次仿真結束之後,使用exit指令退出,退出之後再執行sudo mn -c清除殘留的内容。

RYU控制器啟動問題

安裝ryu,執行

pip install ryu
           

在建立好拓撲之後,需要啟動ryu,才能執行建立拓撲。連接配接ryu控制器執行,首先切換目錄到app下

cd ~/ryu/ryu/app
ryu-manager simple_switch_13.py
           

但是在啟動的時候,出現了文法錯誤。def init(self) -> None SyntaxError: invalid syntax錯誤。其原因在于ryu安裝使用python2的版本,python2不支援函數指定傳回類型,而其中的tinyrpc的版本有點高,适配python3,是以降低tinyrpc的版本。

  1. 先解除安裝tinyrpc
pip uninstall tinyrpc
           
  1. 安裝1.0.0版本的tinyrpc
pip install tinyrpc==1.0.0
           
mininet源碼安裝與ryu啟動及更新依賴python3mininet安裝及使用出現的問題

為了以後友善開發,将ryu适配到python3版本。具體安裝步驟如下:

ryu适配python3版本

下載下傳ryu源碼: git clone git://github.com/osrg/ryu.git
進入檔案夾: cd ryu
安裝ryu依賴環境: sudo pip3 install -r tools/pip-requires
安裝ryu: sudo python3 setup.py install
           

如果之前已将是python2版本,先删除ryu,具體步驟為:

解除安裝python2中的ryu:pip uninstall ryu
删除ryu檔案夾: rm -rf ryu
傳回上一個步驟安裝python3