Featured image of post 軟體定義網路 - ryu 的第一個程式

軟體定義網路 - ryu 的第一個程式

軟體定義網路 - ryu 的第一個程式 (3-2-1)

reference:

  1. Getting Started - ryu
  2. 【SDN 筆記】 Mininet 介紹與 RYU 相關安裝
  3. 實驗環境安裝教學
  4. 研究型 Controller : Ryu
  5. 撰寫 Ryu 簡易入門
  6. [Day33] python的super繼承

目錄:

  1. 執行環境
  2. 安裝 ryu
  3. 測試 ryu
  4. 編寫第一個 ryu程式

0. 執行環境

環境名稱版本號查詢指令
Ubuntu20.04.5 LTSlsb_release -a
python3.8.10python3 –version

1. 安裝 ryu

安裝前先確定是否有已經有以下檔案:

環境名稱套件名稱
Linuxgcc python-dev libffi-dev libssl-dev libxml2-dev libxslt1-dev zlib1g-dev mininet
Pythonpip

輸入以下指令以下載檔案

1
2
python3 -m pip install ryu
sudo apt install ryu-bin

(所下載版本 : ryu-4.34)

2. 測試 ryu

在終端機輸入以下指令:

1
sudo ryu-manager ryu.app.simple_switch_13

圖1: 測試結果

如果有上述結果代表正常執行。

3. 編寫第一個 ryu程式

在terminal中寫下 nano simpleApplication.py 開啟編輯器。 複製以下程式碼,作為第一個最基本的ryu程式。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
from ryu.base import app_manager

class SimpleSwitch(app_manager.RyuApp):
    
    # 選擇支援的openFlow版本,可不只一個版本
    OFP_VERSION = [ofproto_v1_3.OFP_VERSION]

    def __init__(self, *args, **kwargs):
        
        # super().__init__會去呼叫父類別的initializer__init__
        super(SimpleSwitch, self).__init__(*args, **kwargs)

儲存並離開。 這裡寫完就可以執行了XD

在 terminal 中打下 sudo ryu-manager simpleApplication.py 執行剛剛所儲存的程式碼。

確定之後會馬上結束,並跑出以下結果:

這樣就可以確定我們已經寫完第一支屬於自己的第一個 ryu 程式啦。

tags: SDN
Licensed under CC BY-NC-SA 4.0