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 - 安裝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 一次給他安裝完
- 安裝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.configpip 安裝 lxml / paramiko / ovs 過程 - 利用git下載 ryu
# 使用git前請先確認是否有安裝git (apt-get install git)
sudo git clone git://github.com/osrg/ryu.git
下載完後在該目錄(/home/parallels)底下會有一個ryu的資料夾 - 開始安裝ryu
sudo cd ryu
sudo python ./setup.py install安裝過程中沒有出現錯誤訊息就代表成功了 - 修正錯誤(如果沒有發生錯誤的話,就不用修正可直接跳過此步驟)
# 執行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“為止持續修正遺漏套件 修正完成 - 讓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 - 打開GUI
# 打開瀏覽器在網址列輸入127.0.0.1:8080或localhost:8080