SDN RYU 控制 Mininet

Ubuntu 16.04 with SDN RYU

 

一、     粗略介紹

RYU:SDN的Controller,其實Opensouce的Controller我知道的大概就是RYU及Opendaylight,參考網站在下面:

https://osrg.github.io/ryu/

https://www.opendaylight.org/

 

Mininet:SDN Switch的模擬器,利用Mininet可以模擬多台SDN Switch之間的Flow Control。

 

Postman Launcher:模擬各種HTTP的Request,參考網站在下面:

http://blog.roachking.net/blog/2012/11/07/postman-restful-client/

 

二、     安裝流程及指令

安裝流程:

  1. 安裝Ubuntu 16.04
  2. 更新OS
  3. 安裝RYU
  4. 安裝Mininet
  5. 安裝Google擴充套件”Postman Launcher”
  6. 啟用RYU及Mininet
  7. 對Mininet下指令

 

相關安裝指令:

1.  安裝Ubuntu 16.04

不管是裝實體機或虛擬機,起碼安裝OS是基本功,這段我就不講,但如果是安裝桌面版本的,可以增加SSH的連線功能,或是採用VMware虛擬機安裝,要額外裝VMware Tools的,指令如下:

SSH:

  • sudo apt-get install openssh-server

 

VMware tools:

  • sudo apt-get update
  • sudo apt-get install open-vm-tools open-vm-tools-desktop

 

2.  更新OS

  • sudo apt-get update
  • sudo apt-get upgrade

 

3.  安裝RYU

  • sudo apt-get install python-pip python-dev –y
  • sudo apt-get install python-eventlet python-routes python-webob python-paramiko –y (要先裝Python哦!)
  • sudo pip install ryu (開始裝RYU囉!)安裝RYU
  • pip install –upgrade pip

下面最後指令,是Python 程式語言的套件管理程式在,在你安裝完RYU時,要進行Pip升級,雖然不升級也沒差,但反正他有告訴你下甚麼指令,就順便升一下吧!

1

 

4.  安裝Mininet

  • cd ~
  • sudo apt-get install git
  • git clone git://github.com/mininet/mininet
  • mininet/util/install.sh –a
  • sudo mn –test pingall

 

5.  安裝Google擴充套件”Postman Launcher”

開啟Google瀏覽器後,去擴充套件裡找”Postman Launcher”並安裝。
2

 

6.  啟用RYU及Mininet

  • ryu-manager –verbose –observe-links ryu.topology.switches ryu.app.rest_topology ryu.app.ofctl_rest ryu.app.simple_switch_13 (上面三行是一起的哦!)
  • sudo mn –controller=remote,ip=127.0.0.1 –topo=tree,2

因為我是在同一台Linux上安裝RYU及Mininet,而這兩個程式在執行時其他指令一律都是無法下的,所以這也是我為什麼要採用SSH連線的原因,這樣就可以同時開啟三個視窗。下圖就是同時執行RYU及Mininet的畫面。

3

4

 

 

7.  控制Mininet

到了這步驟,基本上已經可以開始控制Mininet了,首先我們先詢問Switch目前的狀態。
5全文會是長這樣:

[

{

“ports”: [

{

“hw_addr”: “5a:46:e8:26:5b:f2”,

“name”: “s1-eth1”,

“port_no”: “00000001”,

“dpid”: “0000000000000001”

},

{

“hw_addr”: “2e:a1:03:46:67:de”,

“name”: “s1-eth2”,

“port_no”: “00000002”,

“dpid”: “0000000000000001”

}

],

“dpid”: “0000000000000001”

},

{

“ports”: [

{

“hw_addr”: “3a:e2:de:24:de:e5”,

“name”: “s2-eth1”,

“port_no”: “00000001”,

“dpid”: “0000000000000002”

},

{

“hw_addr”: “f2:e9:1e:be:fc:2e”,

“name”: “s2-eth2”,

“port_no”: “00000002”,

“dpid”: “0000000000000002”

},

{

“hw_addr”: “1e:fa:26:0a:3d:e7”,

“name”: “s2-eth3”,

“port_no”: “00000003”,

“dpid”: “0000000000000002”

}

],

“dpid”: “0000000000000002”

},

{

“ports”: [

{

“hw_addr”: “8a:59:c8:fb:84:06”,

“name”: “s3-eth1”,

“port_no”: “00000001”,

“dpid”: “0000000000000003”

},

{

“hw_addr”: “46:49:39:1c:98:7e”,

“name”: “s3-eth2”,

“port_no”: “00000002”,

“dpid”: “0000000000000003”

},

{

“hw_addr”: “32:7b:5a:78:ca:49”,

“name”: “s3-eth3”,

“port_no”: “00000003”,

“dpid”: “0000000000000003”

}

],

“dpid”: “0000000000000003”

}

]

基本上,出現上述內容就是成功了,剩下就是怎麼對SDN Switch進行Flow Control,本人功力不夠,也還在學習,就先操作到這個步驟了!

參考網站:

http://hoootony.logdown.com/posts/244771-notes-in-ubuntu-install-ryu-1404-sdn-framework

http://blog.xuite.net/juilin77/happy/202614002-%E5%BF%AB%E5%BF%AB%E6%A8%82%E6%A8%82%E5%AE%89%E8%A3%9DMininet

http://ailin.phychembio.com/miscellany/1612/

Posted in SDN

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.