SDN ryu 專題安裝
-
Upload
- -
Category
Engineering
-
view
819 -
download
2
Transcript of SDN ryu 專題安裝
SDN ryu 及其應用SDN & Application
專題成果董承樺、張廷謙、林展逸2014/10 – 2015/12
大綱Outline
• 環境架設 (Environment Setting)• 軟體定義網路 (Soft Defined Network)• 控制器 Ryu (Ryu Controller)• 胖樹拓樸 (Fat Tree)• 應用:多重路徑 (Application:Multipath)• 實驗操作 (Demo)
大綱Outline
• 環境架設 (Environment Setting)• 軟體定義網路 (Soft Defined Network)• 控制器 Ryu (Ryu Controller)• 胖樹拓樸 (Fat Tree)• 應用:多重路徑 (Application:Multipath)• 實驗操作 (Demo)
環境架設(Environment Setting)
• 作業系統: Ubuntu Linux ( 使用虛擬機 )• 模擬網路環境: Mininet• 控制器: Ryu Controller• 套件: Python 、 Git…
Ubuntu Linux ( 使用虛擬機 )
• 安裝Virtual Box
• 安裝Ubuntu Linux
Ubuntu Linux ( 使用虛擬機 )
• 新增
Ubuntu Linux ( 使用虛擬機 )
Ubuntu Linux ( 使用虛擬機 )
Ubuntu Linux ( 使用虛擬機 )
Ubuntu Linux ( 使用虛擬機 )
Ubuntu Linux ( 使用虛擬機 )
Ubuntu Linux ( 使用虛擬機 )
Ubuntu Linux ( 使用虛擬機 )
開啟 Linux
Ubuntu Linux ( 使用虛擬機 )
Ubuntu Linux ( 使用虛擬機 )
• 安裝完成
基本指令• Ctrl + Alt + T :開啟終端機• $ clear :清除畫面• $ cd { 目錄 } :資料夾移動
開啟終端機• Ctrl + Alt + T
更新系統• $ sudo apt-get update• $ sudo apt-get upgrade
Mininet 安裝• $ sudo apt-get install -y git• $ git clone git://github.com/mininet/mininet• $ cd mininet• $ util/install.sh -nfv• $ cd
Mininet 安裝• $ sudo mn --test pingall ( 測試 )• 安裝成功圖
Python 安裝• $ sudo apt-get install python-pip python-dev
build-essential• $ sudo pip install --upgrade pip
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
Ryu 測試• $ ryu-manager• 成功圖
大綱Outline
• 環境架設 (Environment Setting)• 軟體定義網路 (Soft Defined Network)• 控制器 Ryu (Ryu Controller)• 胖樹拓樸 (Fat Tree)• 應用:多重路徑 (Application:Multipath)• 實驗操作 (Demo)
軟體定義網路Soft Defined Network
• 由 Controller 控制網路
軟體定義網路Soft Defined Network
大綱Outline
• 環境架設 (Environment Setting)• 軟體定義網路 (Soft Defined Network)• 控制器 Ryu (Ryu Controller)• 胖樹拓樸 (Fat Tree)• 應用:多重路徑 (Application:Multipath)• 實驗操作 (Demo)
Ryu Controller
• Python 語言, Open Source
Ryu Controller
大綱Outline
• 環境架設 (Environment Setting)• 軟體定義網路 (Soft Defined Network)• 控制器 Ryu (Ryu Controller)• 胖樹拓樸 (Fat Tree)• 應用:多重路徑 (Application:Multipath)• 實驗操作 (Demo)
胖樹拓樸Fat Tree
• Mininet 模擬, Python Script• 三層 | 任兩點多重路徑
大綱Outline
• 環境架設 (Environment Setting)• 軟體定義網路 (Soft Defined Network)• 控制器 Ryu (Ryu Controller)• 胖樹拓樸 (Fat Tree)• 應用:多重路徑 (Application:Multipath)• 實驗操作 (Demo)
應用:多重路徑Application(Multipath)
• 目的:利用多重路徑,避免壅塞
新 HostB 加入
AB
Controller 下發規則給 Switch
AB
B 送達 A
AB
四種路徑
流量監控選擇 bottleneck 剩餘流量最大
規則 Time Out
AB
Controller 下發規則給 Switch
AB
B 送達 A
AB
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
A small experiment
• All host ping to h008• wireshark
All host ping to h008
s1001 s1002 s1003 s10040
5
10
15
20
25
30
35
Traffic monitor Destination hash
Switch
Pack
et
大綱Outline
• 環境架設 (Environment Setting)• 軟體定義網路 (Soft Defined Network)• 控制器 Ryu (Ryu Controller)• 胖樹拓樸 (Fat Tree)• 應用:多重路徑 (Application:Multipath)• 實驗操作 (Demo)
開啟終端機 (Ryu Controller+ App)
• 將程式碼存在” ryu/ryu/myapp/”
• $ ryu-manager –observe-links ryu/ryu/myapp/fatTreeMultipath.py
• 執行 Ryu Controller + App
另一個終端機 (Mininet)
• 將 Fat Tree 產生腳本下載• $ sudo ./fatTreeTopology.py
Mininet 終端機• H1 ping H5 30 次• $ h001 ping –c30 h005
Ryu Controller 終端機• Controller 收到 s3001 Packet In 事件• 1. 找 Host5• 2. Host5 收到,回封包給 Host1• 3. Host1 在送封包給, Host5
找 Host5
找到 Host5( 用 Group Table)
H5→H1
H1→H5
Ryu Controller 終端機• 結束 Controller• Ctrl + C
Mininet 終端機• 關閉 Mininet 後• $ sudo mn –c ( 關閉 Mininet 都要下這個指令 )
重啟 Mininet 和 Ryu Controller
• $ ryu-manager –observe-links ryu/ryu/myapp/fatTreeMultipath.py
• $ sudo ./fatTreeTopology.py
Mininet 終端機• 觀察 h001 ,跳出一個新的終端機• $ xterm h001
H001 終端機• Ping H8 (10.0.0.8)• $ ping 10.0.0.8
Ryu Controller 終端機• H1→H8 成功
開啟每一個 Host ping Host8
• $ xterm hxxx• 重複剛剛步驟
完成實驗