Ubuntu 16.04 with SDN RYU
一、 粗略介紹
RYU:SDN的Controller,其實Opensouce的Controller我知道的大概就是RYU及Opendaylight,參考網站在下面:
Mininet:SDN Switch的模擬器,利用Mininet可以模擬多台SDN Switch之間的Flow Control。
Postman Launcher:模擬各種HTTP的Request,參考網站在下面:
http://blog.roachking.net/blog/2012/11/07/postman-restful-client/
二、 安裝流程及指令
安裝流程:
- 安裝Ubuntu 16.04
- 更新OS
- 安裝RYU
- 安裝Mininet
- 安裝Google擴充套件”Postman Launcher”
- 啟用RYU及Mininet
- 對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升級,雖然不升級也沒差,但反正他有告訴你下甚麼指令,就順便升一下吧!
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”並安裝。
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的畫面。
7. 控制Mininet
到了這步驟,基本上已經可以開始控制Mininet了,首先我們先詢問Switch目前的狀態。
全文會是長這樣:
[
{
“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