##########################################平臺(tái)架構(gòu)#########################################
?
一械念、虛擬機(jī)安裝和鏡像加載
*本部分過(guò)程非常簡(jiǎn)單,所以不詳細(xì)描述氯葬,基本流程稍微提一下煤蚌。
1. 虛擬機(jī)軟件:安裝虛擬機(jī)軟件主要有VMware Station, VirtualBox等闸度,后者免費(fèi)宾抓,下載網(wǎng)址為:https://www.virtualbox.org/wiki/Downloads饵较,本文以VMware Station為例。請(qǐng)自行下載安裝土辩,這里不多做贅述。
2. Ubuntu系統(tǒng)加載:到Ubuntu官網(wǎng)下載自身操作系統(tǒng)對(duì)應(yīng)的最新版Ubuntu桌面鏡像抢野,通過(guò)VMware加載Ubuntu鏡像拷淘。
3. Mininet VM加載:到Mininet官網(wǎng):http://mininet.org/vm-setup-notes/下載鏡像文件(打開(kāi)網(wǎng)頁(yè)后有相關(guān)指南,可以參照其進(jìn)行加載安裝指孤,懶得看英文的話就只用先把Mininet鏡像導(dǎo)入VMware启涯,不用啟動(dòng),后文會(huì)對(duì)這里接下來(lái)的操作進(jìn)行詳述)恃轩。
4. 最后Ubuntu部分的相關(guān)配置參數(shù)如下圖结洼,Mininet的導(dǎo)入不需要進(jìn)行任何參數(shù)配置,至少在啟動(dòng)前不用叉跛。注意虛擬機(jī)網(wǎng)卡都是默認(rèn)的NAT模式不用更改补君。
?
二、Ubuntu系統(tǒng)下OpenDaylight安裝
*本部分操作比較多昧互,因此針對(duì)每一步都另文給出詳細(xì)步驟:
1. Ubuntu系統(tǒng)中搭建Java開(kāi)發(fā)環(huán)境:《Linux Ubuntu系統(tǒng)下Java開(kāi)發(fā)環(huán)境搭建》
2. Ubuntu系統(tǒng)中安裝Apache Maven:《Linux Ubuntu系統(tǒng)下Apache Maven的安裝和配置》
3. Ubuntu系統(tǒng)中安裝OpenDaylight:《SDN開(kāi)發(fā)之Linux Ubuntu系統(tǒng)下OpenDaylight源碼編譯安裝和調(diào)試》
三、OpenDaylight功能組件安裝和調(diào)試
*本部分解決OpenDaylight控制器和Mininet的連接伟桅,并且通過(guò)OpenDaylight DLUX的Web GUI顯示敞掘。
*本部分基于上文步驟全部完成,已經(jīng)搭建了一個(gè)初步裝好OpenDaylight的Ubuntu虛擬機(jī)楣铁。
*下文用ODL指代OpenDaylight玖雁。
1. 一鍵啟動(dòng)控制器:ODL每次啟動(dòng)controller需要cd目錄十分麻煩。這里同樣可以自己寫一個(gè)啟動(dòng)腳本來(lái)管理ODL控制器的運(yùn)行:
vim odl
<Insert>
!#/bin/bash
/home/<usrname>/developApps/openDayLight/integration/distributions/karaf/target/assembly/bin/karaf
<Esc>
:wq!
sudo mv odl /usr/local/bin
sudo chmod 755 /usr/local/bin/odl
這樣在任何地方都只用輸入(sudo -i) odl就可以運(yùn)行控制器了盖腕。
2. OpenDaylight的Features安裝和調(diào)試赫冬。
現(xiàn)在就可以輸入odl命令來(lái)啟動(dòng)控制器了,先進(jìn)入如下界面:
?
安裝支持REST API的組件:
feature:install odl-restconf
安裝L2 switch和OpenFlow插件:
feature:install odl-l2switch-switch
feature:install odl-openflowplugin-all
安裝基于karaf控制臺(tái)的md-sal控制器功能溃列,包括nodes劲厌、yang UI、Topology:
feature:install odl-mdsal-****apidocs #此組件寫錯(cuò) 很容易無(wú)法登錄
安裝DLUX功能:
feature:install odl-dlux-all
安裝基于karaf控制臺(tái)的ad-sal功能听隐,包括Connection manager补鼻、Container、Network雅任、Flows:
feature:install odl-adsal-northbound
*注意:請(qǐng)按照一定的順序安裝风范,安裝順序不合理的話,會(huì)導(dǎo)致后面Web界面無(wú)法訪問(wèn)沪么!且記錄遇到的一個(gè)問(wèn)題:在沒(méi)有按照順序安裝組件的情況下硼婿,無(wú)法登錄進(jìn)入ODL主界面。解決方法是通過(guò)logout退出karaf平臺(tái)禽车,進(jìn)入上級(jí)目錄寇漫,刪除data目錄:rm –r data刊殉,進(jìn)入bin目錄:cd bin,執(zhí)行./karaf clean猪腕,再次重復(fù)上面的安裝組件操作冗澈。
(本部分摘自:《OpenDaylight的Helium(氦)版本安裝》@君子一諾 )
Web界面訪問(wèn):此時(shí)可以登錄ODL的Web UI界面進(jìn)行訪問(wèn)。用瀏覽器訪問(wèn)網(wǎng)址:http://<ODL的IP>:8181/dlux/index.html陋葡,<ODL_IP>為安裝ODL所在的主機(jī)IP地址亚亲,特別注意的是此版本的ODL訪問(wèn)端口為8181,因8080端口被karaf控制臺(tái)進(jìn)程所占用腐缤。某些情況下不需要進(jìn)入/dlux目錄而直接訪問(wèn)http://<ODL的IP>:8181/index.html捌归。
登陸用戶名為admin,密碼為admin岭粤,如下圖:
?
*關(guān)于Features出問(wèn)題惜索,可以vim查看/developApps/openDayLight/integration/distributions/karaf/target/assembly/etc目錄下的org.apache.karaf.features.cfg
*由于還沒(méi)有連接數(shù)據(jù)面Mininet的交換機(jī),因此登陸進(jìn)去后還不會(huì)顯示任何拓?fù)洹?/p>
四剃浇、Mininet虛擬機(jī)的安裝和登錄調(diào)試
*本部分接著第一部分下載好Mininet鏡像后巾兆,解決Mininet導(dǎo)入虛擬機(jī)后的加載配置并重點(diǎn)闡述遠(yuǎn)程免密碼自動(dòng)登錄的設(shè)置。
1. 在虛擬機(jī)成功導(dǎo)入.OVF后綴的mininet文件后虎囚,直接啟動(dòng)角塑。
2. 啟動(dòng)完成后,進(jìn)入到登錄界面淘讥,賬號(hào)密碼都是mininet(注意密碼敲了不會(huì)有顯示很正常圃伶,敲完再敲回車就行)。
mininet-vm login: mininet
Password: mininet
3. 好蒲列,重點(diǎn)來(lái)了窒朋,接下來(lái)說(shuō)明如何從Ubuntu的虛擬機(jī)"遠(yuǎn)程"SSH登錄到Mininet,這樣做的目的是可以避免在兩個(gè)虛擬機(jī)之間切來(lái)切去的麻煩蝗岖。
a)首先侥猩,需要找到Mininet虛擬機(jī)的IP地址,一般是192.168.x.y格式的地址抵赢。在Mininet的命令行界面輸入:
ifconfig eth0
b)如果你不希望每次從Ubuntu虛擬機(jī)SSH登錄Mininet的時(shí)候都輸一遍這個(gè) IP地址拭宁,可以在Ubuntu虛擬機(jī)端修改一下/etc/hosts文件:
sudo gedit /etc/hosts
然后在文檔末尾添加以下內(nèi)容后保存退出:
192.168.x.y minivm
這樣就可以在每次登陸的時(shí)候用“minivm”代替IP地址。
c)接下來(lái)就可以從Ubuntu虛擬機(jī)端SSH到Mininet了瓣俯。在Ubuntu端終端輸入以下命令(沒(méi)有修改hosts文件的話就用mininet的IP地址代替minivm):
ssh -Y mininet@minivm
d)登陸后輸入賬號(hào)mininet密碼mininet杰标,就到了Mininet的命令行界面了。
4.(可選)寫腳本一鍵SSH免密碼自動(dòng)登錄Mininet彩匕。
每次都要手動(dòng)敲命令還要輸入賬號(hào)密碼登陸Mininet稍顯麻煩腔剂,我們還可以做出如下簡(jiǎn)化:
a)設(shè)置免密碼登陸:在Ubuntu端check一下是否已經(jīng)有SSH密鑰: ~/.ssh/id_rsa 或者 ~/.ssh/id_dsa
如果都不能找到任何文件的話,那么就需要通過(guò)命令生成SSH密鑰驼仪,同樣在Ubuntu端: ssh-keygen -t rsa
為了加快以后SSH連接的速度掸犬,需要將你的公鑰添加給Mininet端袜漩。同樣在Ubuntu端: scp ~/.ssh/id_rsa.pub mininet@minivm:~/
最后,在Ubuntu端先通過(guò)SSH登陸進(jìn)Mininet湾碎,再**在Mininet命令行模式下**輸入:
cd ~/ && mkdir -p .ssh && chmod 700 .ssh && cd .ssh && touch authorized_keys2 && chmod 600 authorized_keys2 && cat ../id_rsa.pub >> authorized_keys2 && rm ../id_rsa.pub && cd ..
操作完成后宙攻,以后每次登陸就不必輸入賬號(hào)密碼了。
b)寫一鍵登陸腳本:嫌輸命令麻煩的童鞋還可以繼續(xù)寫一個(gè)腳本介褥,輸入:(其中<>表示按鍵)
vim mininet
<Insert>(在文檔內(nèi)添加以下內(nèi)容)
!#/bin/bash
ssh -Y mininet@minivm
<Esc>
:wq!
sudo mv mininet /usr/local/bin
sudo chmod 755 /usr/local/bin/mininet
這樣以后在Ubuntu端每次只用通過(guò)mininet命令來(lái)一鍵登陸Mininet座掘。
五、OpenDaylight+Mininet聯(lián)動(dòng)
*本部分測(cè)試ODL和Mininet的連接柔滔,初步搭建好一個(gè)SDN試驗(yàn)床溢陪。
1. 啟動(dòng)MIninet和ODL。調(diào)試好網(wǎng)絡(luò)連接睛廊。首先通過(guò)一端Ping另一端測(cè)試網(wǎng)絡(luò)連通性形真。
2. 通過(guò)"minivm"命令運(yùn)行腳本登陸Mininet:創(chuàng)建簡(jiǎn)單實(shí)驗(yàn)拓?fù)洳⒅付ㄟh(yuǎn)程ODL作為控制器,簡(jiǎn)單的命令可以嘗試:
sudo mn --controller=remote,ip=<ODL的IP>
完成后將輸出一下內(nèi)容:
mininet@mininet-vm:~$ sudo mn --controller=remote,ip=192.168.174.128
*** Creating network
*** Adding controller
*** Adding hosts:
h1 h2
*** Adding switches:
s1
*** Adding links:
(h1, s1) (h2, s1)
*** Configuring hosts
h1 h2
*** Starting controller
c0
*** Starting 1 switches
s1 ...
*** Starting CLI:
mininet>
3. 打開(kāi)網(wǎng)頁(yè)登陸ODL的Web界面超全,看到如圖拓?fù)渑厮?lián)動(dòng)測(cè)試完成,一個(gè)基本的基于ODL+Mininet的SDN實(shí)驗(yàn)平臺(tái)就搭建好了嘶朱!
?
祝順利裕便!