64
SDN ryu 及及及及 SDN & Application 及及及及 及及及 及及及及 及及及 、、 2014/10 – 2015/12

SDN ryu 專題安裝

  • Upload
    -

  • View
    821

  • Download
    2

Embed Size (px)

Citation preview

Page 1: SDN ryu 專題安裝

SDN ryu 及其應用SDN & Application

專題成果董承樺、張廷謙、林展逸2014/10 – 2015/12

Page 2: SDN ryu 專題安裝

大綱Outline

• 環境架設 (Environment Setting)• 軟體定義網路 (Soft Defined Network)• 控制器 Ryu (Ryu Controller)• 胖樹拓樸 (Fat Tree)• 應用:多重路徑 (Application:Multipath)• 實驗操作 (Demo)

Page 3: SDN ryu 專題安裝

大綱Outline

• 環境架設 (Environment Setting)• 軟體定義網路 (Soft Defined Network)• 控制器 Ryu (Ryu Controller)• 胖樹拓樸 (Fat Tree)• 應用:多重路徑 (Application:Multipath)• 實驗操作 (Demo)

Page 4: SDN ryu 專題安裝

環境架設(Environment Setting)

• 作業系統: Ubuntu Linux ( 使用虛擬機 )• 模擬網路環境: Mininet• 控制器: Ryu Controller• 套件: Python 、 Git…

Page 6: SDN ryu 專題安裝

Ubuntu Linux ( 使用虛擬機 )

• 新增

Page 7: SDN ryu 專題安裝

Ubuntu Linux ( 使用虛擬機 )

Page 8: SDN ryu 專題安裝

Ubuntu Linux ( 使用虛擬機 )

Page 9: SDN ryu 專題安裝

Ubuntu Linux ( 使用虛擬機 )

Page 10: SDN ryu 專題安裝

Ubuntu Linux ( 使用虛擬機 )

Page 11: SDN ryu 專題安裝

Ubuntu Linux ( 使用虛擬機 )

Page 12: SDN ryu 專題安裝

Ubuntu Linux ( 使用虛擬機 )

Page 13: SDN ryu 專題安裝

Ubuntu Linux ( 使用虛擬機 )

開啟 Linux

Page 14: SDN ryu 專題安裝

Ubuntu Linux ( 使用虛擬機 )

Page 15: SDN ryu 專題安裝

Ubuntu Linux ( 使用虛擬機 )

• 安裝完成

Page 16: SDN ryu 專題安裝

基本指令• Ctrl + Alt + T :開啟終端機• $ clear :清除畫面• $ cd { 目錄 } :資料夾移動

Page 17: SDN ryu 專題安裝

開啟終端機• Ctrl + Alt + T

Page 18: SDN ryu 專題安裝

更新系統• $ sudo apt-get update• $ sudo apt-get upgrade

Page 19: SDN ryu 專題安裝

Mininet 安裝• $ sudo apt-get install -y git• $ git clone git://github.com/mininet/mininet• $ cd mininet• $ util/install.sh -nfv• $ cd

Page 20: SDN ryu 專題安裝

Mininet 安裝• $ sudo mn --test pingall ( 測試 )• 安裝成功圖

Page 21: SDN ryu 專題安裝

Python 安裝• $ sudo apt-get install python-pip python-dev

build-essential• $ sudo pip install --upgrade pip

Page 22: SDN ryu 專題安裝

Ryu 安裝• $ sudo apt-get update• $ sudo apt-get install python-eventlet python-

routes python-webob python-paramiko• $ git clone https://github.com/osrg/ryu.git• $ cd ryu; python ./setup.py install• $ sudo pip install ryu• $ sudo pip install six --upgrade• $ sudo pip install oslo.config

Page 23: SDN ryu 專題安裝

Ryu 測試• $ ryu-manager• 成功圖

Page 24: SDN ryu 專題安裝

大綱Outline

• 環境架設 (Environment Setting)• 軟體定義網路 (Soft Defined Network)• 控制器 Ryu (Ryu Controller)• 胖樹拓樸 (Fat Tree)• 應用:多重路徑 (Application:Multipath)• 實驗操作 (Demo)

Page 25: SDN ryu 專題安裝

軟體定義網路Soft Defined Network

• 由 Controller 控制網路

Page 26: SDN ryu 專題安裝

軟體定義網路Soft Defined Network

Page 27: SDN ryu 專題安裝

大綱Outline

• 環境架設 (Environment Setting)• 軟體定義網路 (Soft Defined Network)• 控制器 Ryu (Ryu Controller)• 胖樹拓樸 (Fat Tree)• 應用:多重路徑 (Application:Multipath)• 實驗操作 (Demo)

Page 28: SDN ryu 專題安裝

Ryu Controller

• Python 語言, Open Source

Page 29: SDN ryu 專題安裝

Ryu Controller

Page 30: SDN ryu 專題安裝

大綱Outline

• 環境架設 (Environment Setting)• 軟體定義網路 (Soft Defined Network)• 控制器 Ryu (Ryu Controller)• 胖樹拓樸 (Fat Tree)• 應用:多重路徑 (Application:Multipath)• 實驗操作 (Demo)

Page 31: SDN ryu 專題安裝

胖樹拓樸Fat Tree

• Mininet 模擬, Python Script• 三層 | 任兩點多重路徑

Page 32: SDN ryu 專題安裝

大綱Outline

• 環境架設 (Environment Setting)• 軟體定義網路 (Soft Defined Network)• 控制器 Ryu (Ryu Controller)• 胖樹拓樸 (Fat Tree)• 應用:多重路徑 (Application:Multipath)• 實驗操作 (Demo)

Page 33: SDN ryu 專題安裝

應用:多重路徑Application(Multipath)

• 目的:利用多重路徑,避免壅塞

Page 34: SDN ryu 專題安裝

新 HostB 加入

AB

Page 35: SDN ryu 專題安裝

Controller 下發規則給 Switch

AB

Page 36: SDN ryu 專題安裝

B 送達 A

AB

Page 37: SDN ryu 專題安裝

四種路徑

Page 38: SDN ryu 專題安裝

流量監控選擇 bottleneck 剩餘流量最大

Page 39: SDN ryu 專題安裝

規則 Time Out

AB

Page 40: SDN ryu 專題安裝

Controller 下發規則給 Switch

AB

Page 41: SDN ryu 專題安裝

B 送達 A

AB

Page 42: SDN ryu 專題安裝

3001 3002 3003 3004 3005 3006 3007 3008

2001 2002 2003 2004 2005 2006 2007 2008

1001 1002 1003 1004

h001h002 h003h004 h005h006 h007h008 h009 h010 h011h012 h013h014 h015h016

Page 43: SDN ryu 專題安裝

A small experiment

• All host ping to h008• wireshark

Page 44: SDN ryu 專題安裝

All host ping to h008

s1001 s1002 s1003 s10040

5

10

15

20

25

30

35

Traffic monitor Destination hash

Switch

Pack

et

Page 45: SDN ryu 專題安裝

大綱Outline

• 環境架設 (Environment Setting)• 軟體定義網路 (Soft Defined Network)• 控制器 Ryu (Ryu Controller)• 胖樹拓樸 (Fat Tree)• 應用:多重路徑 (Application:Multipath)• 實驗操作 (Demo)

Page 46: SDN ryu 專題安裝

開啟終端機 (Ryu Controller+ App)

• 將程式碼存在” ryu/ryu/myapp/”

• $ ryu-manager –observe-links ryu/ryu/myapp/fatTreeMultipath.py

• 執行 Ryu Controller + App

Page 47: SDN ryu 專題安裝

另一個終端機 (Mininet)

• 將 Fat Tree 產生腳本下載• $ sudo ./fatTreeTopology.py

Page 48: SDN ryu 專題安裝

Mininet 終端機• H1 ping H5 30 次• $ h001 ping –c30 h005

Page 49: SDN ryu 專題安裝

Ryu Controller 終端機• Controller 收到 s3001 Packet In 事件• 1. 找 Host5• 2. Host5 收到,回封包給 Host1• 3. Host1 在送封包給, Host5

Page 50: SDN ryu 專題安裝

找 Host5

Page 51: SDN ryu 專題安裝

找到 Host5( 用 Group Table)

Page 52: SDN ryu 專題安裝

H5→H1

Page 53: SDN ryu 專題安裝

H1→H5

Page 54: SDN ryu 專題安裝

Ryu Controller 終端機• 結束 Controller• Ctrl + C

Page 55: SDN ryu 專題安裝

Mininet 終端機• 關閉 Mininet 後• $ sudo mn –c ( 關閉 Mininet 都要下這個指令 )

Page 56: SDN ryu 專題安裝

重啟 Mininet 和 Ryu Controller

• $ ryu-manager –observe-links ryu/ryu/myapp/fatTreeMultipath.py

• $ sudo ./fatTreeTopology.py

Page 57: SDN ryu 專題安裝

Mininet 終端機• 觀察 h001 ,跳出一個新的終端機• $ xterm h001

Page 58: SDN ryu 專題安裝

H001 終端機• Ping H8 (10.0.0.8)• $ ping 10.0.0.8

Page 59: SDN ryu 專題安裝

Ryu Controller 終端機• H1→H8 成功

Page 60: SDN ryu 專題安裝

開啟每一個 Host ping Host8

• $ xterm hxxx• 重複剛剛步驟

Page 61: SDN ryu 專題安裝
Page 62: SDN ryu 專題安裝
Page 63: SDN ryu 專題安裝
Page 64: SDN ryu 專題安裝

完成實驗