Install ryu and mininet on ubuntu 16.04

ss
3 min readSep 24, 2018

--

哀,最近一個陰錯陽差,導致碩論可能要回歸到最初的老本行,sdn,當初進來碩一時,我就開始學,但由於那時對網路不熟,也不會操作linux,導致直接悲劇
過了一年後已經整個完全翻新了,這次應該可以很快的上手,在這之中還是紀錄一下

Mininet

首先先安裝mininet,這是一個可以直接在電腦下模擬網路拓樸的模擬器,底層是用container去實做的,但我聽高手建議不要自己用docker刻,聽說會死人XD.所以我們先安裝它

先從git 官方抓repo下來,並進入執行安裝

$ git clone git://github.com/mininet/mininet$ cd mininet$ util/install.sh -a

就安裝完成了,非常便利

測試功能

$ sudo mn

會看到一個很簡單的拓樸網路,兩個節點一個switch

Ryu

其實在這方面我也沒有涉略很多,主要有玩過onos,opendaylight,
但我真的沒有很愛java,加上學習曲線一定是ryu會比較低,所以我選擇用ryu

安裝方式

先安裝python pip 套件管理

sudo apt-get install python-pip

接著安裝ryu就行了,也是很方便上手

pip install ryu

我自己是沒有遇到錯誤,如果有就必須手動的去把每一個套件都安裝好,

安裝完後執行ryu-manager,會如下方顯示

$ ryu-manager 
loading app ryu.controller.ofp_handler
instantiating app ryu.controller.ofp_handler of OFPHandler

這樣就完成安裝了

接著我們試著讓ryu 接上 mininet的 controller,ip記得換成你自己的主機ip

$ sudo mn — topo single,3 — mac — switch ovsk — controller=remote,ip=10.0.0.1,port=6633 -x

先觀察s1,將s1這個ovs設成openflow1.3版本


mininet> s1 ovs-vsctl show
mininet> s1 ovs-dpctl show

$ ovs-vsctl set Bridge s1 protocols=OpenFlow13

檢查一下是否成功了

$ sudo ovs-ofctl -O OpenFlow13 dump-flows s1
OFPST_FLOW reply (OF1.3) (xid=0x2):

最後用ryu執行一個SDN app

ryu-manager — verbose ryu.app.simple_switch_13

在mininet 用h1 ping h2 試試看

mininet> h1 ping h2
PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data.
64 bytes from 10.0.0.2: icmp_seq=1 ttl=64 time=8.31 ms
64 bytes from 10.0.0.2: icmp_seq=2 ttl=64 time=0.278 ms

這樣就完成連接了,有錯誤或是建議也都歡迎在下方留言

--

--