哀,最近一個陰錯陽差,導致碩論可能要回歸到最初的老本行,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
這樣就完成連接了,有錯誤或是建議也都歡迎在下方留言