SlideShare ist ein Scribd-Unternehmen logo
1 von 64
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 h009h010 h011h012 h013h014 h015h016
A small experiment
• All host ping to h008
• wireshark
All host ping to h008
0
5
10
15
20
25
30
35
s1001 s1002 s1003 s1004
Packet
Switch
Traffic monitor Destination hash
大綱
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
• 重複剛剛步驟
完成實驗

Weitere ähnliche Inhalte

Was ist angesagt?

Android起動周りのノウハウ
Android起動周りのノウハウAndroid起動周りのノウハウ
Android起動周りのノウハウ
chancelab
 
Node-v0.12の新機能について
Node-v0.12の新機能についてNode-v0.12の新機能について
Node-v0.12の新機能について
shigeki_ohtsu
 

Was ist angesagt? (20)

Ext4 filesystem(1)
Ext4 filesystem(1)Ext4 filesystem(1)
Ext4 filesystem(1)
 
PyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミングPyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミング
 
ゲームの通信をつくる仕事はどうなるのだろう?
ゲームの通信をつくる仕事はどうなるのだろう?ゲームの通信をつくる仕事はどうなるのだろう?
ゲームの通信をつくる仕事はどうなるのだろう?
 
OpenFOAM LES乱流モデルカスタマイズ
OpenFOAM LES乱流モデルカスタマイズOpenFOAM LES乱流モデルカスタマイズ
OpenFOAM LES乱流モデルカスタマイズ
 
AndroidとSELinux
AndroidとSELinuxAndroidとSELinux
AndroidとSELinux
 
Android起動周りのノウハウ
Android起動周りのノウハウAndroid起動周りのノウハウ
Android起動周りのノウハウ
 
How to run P4 BMv2
How to run P4 BMv2How to run P4 BMv2
How to run P4 BMv2
 
Linux Networking Explained
Linux Networking ExplainedLinux Networking Explained
Linux Networking Explained
 
Androidのリカバリシステム (Androidのシステムアップデート)
Androidのリカバリシステム (Androidのシステムアップデート)Androidのリカバリシステム (Androidのシステムアップデート)
Androidのリカバリシステム (Androidのシステムアップデート)
 
GraalVMの多言語実行機能が凄そうだったので試しにApache Sparkに組み込んで動かしてみたけどちょっとまだ早かったかもしれない(Open So...
GraalVMの多言語実行機能が凄そうだったので試しにApache Sparkに組み込んで動かしてみたけどちょっとまだ早かったかもしれない(Open So...GraalVMの多言語実行機能が凄そうだったので試しにApache Sparkに組み込んで動かしてみたけどちょっとまだ早かったかもしれない(Open So...
GraalVMの多言語実行機能が凄そうだったので試しにApache Sparkに組み込んで動かしてみたけどちょっとまだ早かったかもしれない(Open So...
 
View CustomizeからREST APIを使用する
View CustomizeからREST APIを使用するView CustomizeからREST APIを使用する
View CustomizeからREST APIを使用する
 
Node-v0.12の新機能について
Node-v0.12の新機能についてNode-v0.12の新機能について
Node-v0.12の新機能について
 
GPUとSSDがPostgreSQLを加速する~クエリ処理スループット10GB/sへの挑戦~ [DB Tech Showcase Tokyo/2017]
GPUとSSDがPostgreSQLを加速する~クエリ処理スループット10GB/sへの挑戦~ [DB Tech Showcase Tokyo/2017]GPUとSSDがPostgreSQLを加速する~クエリ処理スループット10GB/sへの挑戦~ [DB Tech Showcase Tokyo/2017]
GPUとSSDがPostgreSQLを加速する~クエリ処理スループット10GB/sへの挑戦~ [DB Tech Showcase Tokyo/2017]
 
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化
 
Zabbix for Monitoring
Zabbix for MonitoringZabbix for Monitoring
Zabbix for Monitoring
 
Incognito 2016 - IoT 펌웨어 추출과 분석
Incognito 2016 - IoT 펌웨어 추출과 분석Incognito 2016 - IoT 펌웨어 추출과 분석
Incognito 2016 - IoT 펌웨어 추출과 분석
 
Androidの新ビルドシステム
Androidの新ビルドシステムAndroidの新ビルドシステム
Androidの新ビルドシステム
 
Open vSwitch - Stateful Connection Tracking & Stateful NAT
Open vSwitch - Stateful Connection Tracking & Stateful NATOpen vSwitch - Stateful Connection Tracking & Stateful NAT
Open vSwitch - Stateful Connection Tracking & Stateful NAT
 
計算力学シミュレーションに GPU は役立つのか?
計算力学シミュレーションに GPU は役立つのか?計算力学シミュレーションに GPU は役立つのか?
計算力学シミュレーションに GPU は役立つのか?
 
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホンGoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
 

Ähnlich wie SDN ryu 專題安裝

Nodejs & NAE
Nodejs & NAENodejs & NAE
Nodejs & NAE
q3boy
 
广告技术部自动化测试介绍.pdf
广告技术部自动化测试介绍.pdf广告技术部自动化测试介绍.pdf
广告技术部自动化测试介绍.pdf
bj_qa
 
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
Scourgen Hong
 
Foundation of software development 2
Foundation of software development 2Foundation of software development 2
Foundation of software development 2
netdbncku
 
阿里巴巴 肖劲青 阿里巴巴运维自动化的探索与规划
阿里巴巴 肖劲青 阿里巴巴运维自动化的探索与规划阿里巴巴 肖劲青 阿里巴巴运维自动化的探索与规划
阿里巴巴 肖劲青 阿里巴巴运维自动化的探索与规划
colderboy17
 
阿里巴巴运维自动化的探索与规划
阿里巴巴运维自动化的探索与规划阿里巴巴运维自动化的探索与规划
阿里巴巴运维自动化的探索与规划
mysqlops
 
Training apc-3.0
Training apc-3.0Training apc-3.0
Training apc-3.0
ahnlabchina
 
Training apc-3.0
Training apc-3.0Training apc-3.0
Training apc-3.0
ahnlabchina
 
02.python.开发最佳实践
02.python.开发最佳实践02.python.开发最佳实践
02.python.开发最佳实践
Na Lee
 

Ähnlich wie SDN ryu 專題安裝 (20)

Nodejs & NAE
Nodejs & NAENodejs & NAE
Nodejs & NAE
 
Sdn 之旅 open suse_asia_summit_20151206
Sdn 之旅 open suse_asia_summit_20151206Sdn 之旅 open suse_asia_summit_20151206
Sdn 之旅 open suse_asia_summit_20151206
 
广告技术部自动化测试介绍.pdf
广告技术部自动化测试介绍.pdf广告技术部自动化测试介绍.pdf
广告技术部自动化测试介绍.pdf
 
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
 
Honeywall roo 1
Honeywall roo 1Honeywall roo 1
Honeywall roo 1
 
Foundation of software development 2
Foundation of software development 2Foundation of software development 2
Foundation of software development 2
 
Internet System Security Overview
Internet System Security OverviewInternet System Security Overview
Internet System Security Overview
 
Continuous Delivery with Ansible x GitLab CI (2e)
Continuous Delivery with Ansible x GitLab CI (2e)Continuous Delivery with Ansible x GitLab CI (2e)
Continuous Delivery with Ansible x GitLab CI (2e)
 
阿里巴巴 肖劲青 阿里巴巴运维自动化的探索与规划
阿里巴巴 肖劲青 阿里巴巴运维自动化的探索与规划阿里巴巴 肖劲青 阿里巴巴运维自动化的探索与规划
阿里巴巴 肖劲青 阿里巴巴运维自动化的探索与规划
 
阿里巴巴运维自动化的探索与规划
阿里巴巴运维自动化的探索与规划阿里巴巴运维自动化的探索与规划
阿里巴巴运维自动化的探索与规划
 
LinkIt Smart 7688 Duo and MCS basics
LinkIt Smart 7688 Duo and MCS basicsLinkIt Smart 7688 Duo and MCS basics
LinkIt Smart 7688 Duo and MCS basics
 
前端自動化工具
前端自動化工具前端自動化工具
前端自動化工具
 
[students AI workshop] Pytorch
[students AI workshop]  Pytorch[students AI workshop]  Pytorch
[students AI workshop] Pytorch
 
SACC2015 ”互联网+“任重而道远-白金&高春辉
SACC2015 ”互联网+“任重而道远-白金&高春辉SACC2015 ”互联网+“任重而道远-白金&高春辉
SACC2015 ”互联网+“任重而道远-白金&高春辉
 
LinkIt 7697 IoT tutorial
LinkIt 7697 IoT tutorialLinkIt 7697 IoT tutorial
LinkIt 7697 IoT tutorial
 
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
 
Training apc-3.0
Training apc-3.0Training apc-3.0
Training apc-3.0
 
Training apc-3.0
Training apc-3.0Training apc-3.0
Training apc-3.0
 
Open cdn快速部署你的私有cdn集群
Open cdn快速部署你的私有cdn集群Open cdn快速部署你的私有cdn集群
Open cdn快速部署你的私有cdn集群
 
02.python.开发最佳实践
02.python.开发最佳实践02.python.开发最佳实践
02.python.开发最佳实践
 

SDN ryu 專題安裝