【Ryu介紹與安裝(利用git安裝) — on Ubuntu 16.04】

Ryu is a component-based software defined networking framework.

Ryu provides software components with well defined API that make it easy for developers to create new network management and control applications. Ryu supports various protocols for managing network devices, such as OpenFlow, Netconf, OF-config, etc. About OpenFlow, Ryu supports fully 1.0, 1.2, 1.3, 1.4, 1.5 and Nicira Extensions.

                                   (節錄於 http://ryu.readthedocs.io/en/latest/getting_started.html)

根據ryu官方網站的說法,ryu提供了軟體定義網路(software defined networking)一個很好的開發框架,其支援許多的API和協定,如此一來不僅是在網路管理或應用開發層面,均方便許多

———————————–  安裝流程 ——————————–

現在我們就直接來看看要怎麼安裝吧,首先我們先安裝好Ubuntu 16.04(在這裡示範的是16.04的版本,其他版本沒有測試過)和mininet(還沒安裝mininet的可先到  【Mininet介紹與安裝 — on Ubuntu 16.04】 看看怎麼安裝吧)

  • 安裝python的套件管理工具

    sudo cd /home/[帳戶名稱]
    sudo apt-get install python-pip
    sudo apt-get install python-setuptools

    Screenshot from 2017-11-04 22-54-13.png

    Screenshot from 2017-11-04 22-55-29.png

  • 安裝python的相依套件

    sudo apt-get install python-eventlet
    sudo apt-get install python-routes
    sudo apt-get install python-webob
    sudo apt-get install python-paramiko
    sudo apt-get install python-gevent

    # 建議一個個套件慢慢安裝,比較能夠看出來是哪個套件安裝出現問題,當然偷懶的話可以下sudo apt-get install python-eventlet python-routes python-webob python-paramiko python-gevent 一次給他安裝完

    Screenshot from 2017-11-04 22-56-03.png

    Screenshot from 2017-11-04 22-56-30.png

    Screenshot from 2017-11-04 22-56-59.png

    Screenshot from 2017-11-04 22-57-19.png

    Screenshot from 2017-11-04 22-58-11.png

  • 安裝python的相依套件(剩下的)

    # 剩下有關的套件一次全部安裝完,以防止出錯

    sudo apt-get install python-dev
    sudo apt-get install autoconf
    sudo apt-get install binutils
    sudo apt-get install bison
    sudo apt-get install build-essential
    sudo apt-get install ccache
    sudo apt-get install flex
    sudo apt-get install gawk
    sudo apt-get install gettext
    sudo apt-get install git
    sudo apt-get install libncurses5-dev
    sudo apt-get install libssl-dev
    sudo apt-get install ncurses-term
    sudo apt-get install quilt
    sudo apt-get install sharutils
    sudo apt-get install subversion
    sudo apt-get install texinfo
    sudo apt-get install xsltproc
    sudo apt-get install zlib1g-dev
    sudo apt-get install libxml2-dev
    sudo apt-get install libxslt1-dev

  • 利用pip安裝執行ryu所需要的相依套件

    pip install lxml
    pip install paramiko
    pip install ovs
    pip install six
    pip install six –upgrade
    pip install flask
    pip install gevent-websocket
    pip install netaddr
    pip install eventlet
    pip install tinyrpc
    pip install msgpack-python
    pip install oslo.config

    Screenshot from 2017-11-04 23-01-16.png
    pip 安裝 lxml / paramiko / ovs 過程

    Screenshot from 2017-11-06 23-20-34.png

    Screenshot from 2017-11-06 23-29-52.png

    Screenshot from 2017-11-06 23-32-03

  • 利用git下載 ryu

    # 使用git前請先確認是否有安裝git (apt-get install git)

    sudo git clone git://github.com/osrg/ryu.git

    Screenshot from 2017-11-04 23-02-41.png
    下載完後在該目錄(/home/parallels)底下會有一個ryu的資料夾
  • 開始安裝ryu

    sudo cd ryu
    sudo python ./setup.py install

    Screenshot from 2017-11-04 23-03-14.png

    Screenshot from 2017-11-04 23-03-30.png
    安裝過程中沒有出現錯誤訊息就代表成功了
  • 修正錯誤(如果沒有發生錯誤的話,就不用修正可直接跳過此步驟)

    # 執行ryu-manager後會跳出DistributionNotFound:XXX的錯誤訊息,我們利用pip install XXX的指令來安裝遺漏的相依套件

    ryu-manager
    pip install tinyrpc
    ryu-manager
    pip install oslo.config>=1.15.0
    ryu-manager
    pip install msgpack-python>=0.3.0

    # 直到出現“loading app ryu.controller.ofp_handler
    instantiating app ryu.controller.ofp_handler of OFPHandler“為止

    Screenshot from 2017-11-04 23-05-46.png
    持續修正遺漏套件

    Screenshot from 2017-11-04 23-06-09.png
    修正完成
  • 讓Ryu連上Mininet

    # 請開出兩個terminate,一個執行Ryu,一個執行Mininet
    [Ryu左]
    ryu-manager –verbose –observe-links ryu/app/gui_topology/gui_topoplogy.py

    —————————————————-
    [Mininet右]
    mn –topo=tree,depth=3 –controller=remote

    Screenshot from 2017-11-04 23-11-58

    Screenshot from 2017-11-04 23-12-05.png

    Screenshot from 2017-11-04 23-12-19.png

  • 打開GUI

    # 打開瀏覽器在網址列輸入127.0.0.1:8080或localhost:8080

    Screenshot from 2017-11-04 23-12-44.png

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google photo

您的留言將使用 Google 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s