--- tags: SDN --- # RYU程式開發流程 ![](https://i.imgur.com/cQNhOZj.png) ![](https://i.imgur.com/elPbpY1.png) ## 環境準備 - Ubuntu 20.04 - Mininet - RYU ### 安裝方式 先準備一台Linux Server,然後下以下指令安裝RYU和Mininet - RYU ```shell= sudo apt-get update -y sudo apt-get upgrade -y sudo apt-get install git -y sudo apt-get install python3-pip -y sudo pip3 install --upgrade pip git clone git://github.com/osrg/ryu.git cd ryu sudo pip3 install -r tools/pip-requires sudo python3 setup.py install ``` - Mininet ```shell= git clone git://github.com/mininet/mininet mininet/util/install.sh -a ``` - 測試是否能夠正常運行 ```shell= #mininet sudo mn #ryu ryu-manager ``` ## RYU學習流程 ### Mininet基本操作 Mininet可以虛擬出網路環境,要先熟悉如何使用。 [熟悉mininet以及簡單的測試](https://sites.google.com/site/sdnruantidingyiwanglu/xing-dong-kuan-pin-jian-duan-ji-shu-tui-guang-ji-hua/shu-ximininet-yi-ji-jian-dan-de-ce-shi) ### RYU基本APP(Simple Switch) 要使用RYU,首先要了解如何利用RYU對Mininet的OVS下達Flow,RYU所提供的範例(Simple Switch)為最簡單上手方式。 [Simple Switch教學影片](https://www.youtube.com/watch?v=2VRsituJ6a8) [Simple Switch介紹網站](https://osrg.github.io/ryu-book/zh_tw/html/switching_hub.html) [Simple Switch原始碼](https://github.com/faucetsdn/ryu/blob/master/ryu/app/simple_switch_13.py) ### RYU新增Flow 了解RYU基本運作後,接著可以試著自己建立Flow規則,讓Mininet的Host能根據Flow而Ping通。 [RYU Controller with Mininet](https://myweb.ntut.edu.tw/~phtseng/SDN/LAB2.pdf) [ryu add flow程式碼](https://github.com/uccuz/sdnHandout/tree/master/3.ryu_addFlow) ### RYU流量監控 在RYU APP中,經常會透過網路流量的不同來下達Flow(如最短路徑、特權路徑),所以需要學習如何進行流量監控,RYU所提供的範例(Simple Monitor)為最簡單上手方式。 [Simple Monitor介紹網站](https://osrg.github.io/ryu-book/zh_tw/html/traffic_monitor.html) [Simple Monitor原始碼](https://github.com/faucetsdn/ryu/blob/master/ryu/app/simple_monitor_13.py) ### RYU-exercises 大致了解RYU的應用方式,試著跑看看這個LAB裡的程式並讀懂程式碼,可以理解各種如何使用RYU來設置Flow的技巧。 [ryu-exercises](https://github.com/knetsolutions/learn-sdn-with-ryu/tree/master/ryu-exercises) ## RYU專題開發 ### 專題發想 - 可以翻翻網路上的論文得到靈感 ### Raspberry Pi OVS - 若要建置實體網路,會需要使用PI來建立OVS,安裝過程複雜,可以參考教學。 [Open vSwitch (OVS) on Raspberry PI](https://myweb.ntut.edu.tw/~phtseng/SDN/LAB3.pdf)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up