OVSDB模式:本模式下網絡管理員被賦予極大權力,做爲OVSDB管理員,可以編制一個OVSDB服務器駐留程序,它可以在vSwtich文件系統中保存一個永久性的文件。
網絡項目管理員可以編制一個OVSDB的流程控制圖,它可以實現在OVS上的配置。這是在運用OpenFlow協議和 ovs-vswitchd進程來獨立控制平臺並實例化。
OVSDB監測方法:OVSDB規範中有很多種方法。總有一天我們將會涉及到其中的某些檢測方法。有一個檢測方法的原理是將推出請求表和列,並且從OVSDB返回值中返回相關的配置。
在你發送了初始檢測要求之後,OVSDB將會在開放的通道以註釋的形式發送返回值給你。回覆的鍵值是“new”和“old”。這意味着作爲管理者的你現在需要更新你對這個網絡元素的緩存配置。這對保持網絡良好狀態正常運行是至關重要的,當涉及實時顯示網絡狀態和估算元素時更是讓人驚異。
1、 測試拓撲結構
以下是由Mininet創建的一個簡單的拓撲圖,如圖14:
圖 14 實驗拓撲圖
在mininet CLI中,只需要Open vSwitch啓用遠程管理功能。以下提供兩種選擇方法:
被動偵聽管理模式:控制器使用一個連接服務(ovs-vsctl客戶端)監聽指定端口。
mininet@mininet-vm:/\>sudoovs-vsctl set-manager ptcp:6640
mininet@mininet-vm:/\>sudoovs-vsctl show
OVS客戶端顯示如圖15所示:
圖 15OVS客戶端顯示
活躍管理模式:在一個活躍的管理控制器上設置一個OVS元素,控制器負責監聽功能。
mininet@mininet-vm:/\>sudo ovs-vsctl set-manager tcp:192.168.254.128:6640
mininet@mininet-vm:/\>sudo ovs-vsctl show
OVS客戶端將顯示如圖16所示:
圖 16OVS客戶端顯示
在這兩種場景中,發送者爲了建立一個持久的連接而發送迴應請求。此連接每5秒刷新一次,如果請求超時則斷開連接。OVS開關將每5秒使用迴應請求初始化OVSDB初始化管理通道。
2、 OVS實驗測試
Mininet拓撲包含以下部分:
其拓撲使用脫機開關、數據平臺、OVS網橋構建。OVS補丁端口和虛擬以太網端口用於數據平臺互連。
運行主機。
開始運轉兩臺交換機和兩臺主機。
mininet@mininet-vm:/\>sudomn --controller=remote,ip=127.0.0.1 --topo=linear,2
mn用於啓動Mininet,--topo用於指定openflow網絡拓撲,MiniNet實現了四種openflow網絡拓撲:tree,single,linear和minimal。
這時,應該可以看到拓撲圖了。
拓撲圖如圖17所示:
圖 17 網絡拓撲圖
使用電腦瀏覽器打開http://10.20.200.211:8080,單擊“添加網關IP地址”按鈕,添加配置“10.0.0.254/24”如圖18。
圖 18 網關配置
定義網關代理地址後,可以在主機1和主機2之間使用ping指令進行測試。
Mininet>pingall
結果如圖19所示:
圖 19 主機ping指令測試
我們通過OpenDaylight OVSDB插件有2種選擇方式發送管理命令:1、首選使用REST-API 2、僅供調試/故障排除:內部OSGi命令。
連接到OVSDB-SERVER
REST :
sudoput http://10.20.200.211:8080/controller/nb/v2/connectionmanager/nod e/MINI1/address/127.0.0.1/port/6640/
OSGi cli:
osgi>ovsconnect MINI1 127.0.0.1 6640
理論結果爲:
connecting to ovsdb server : 127.0.0.1:6640...
Node Name: OVS|MINI1
實驗實際結果截圖如圖20:
圖 20 實驗結果圖
觀察OVSDB表中的網橋
REST中輸入:
sudoGET http://localhost: 8080/controller/nb/v2/connectionnmanager /bridge/OVS /MINI1
或在OSGiCLI輸入:
osgi>getBridgeDomains "OVS|MINI1"
理論結果爲
Existing Bridges: [s1, s2, br1]
實際結果如圖21:
圖 21 實驗結果圖
刪除S1和S2的連接
把交換機S1和S2之間的連接切斷,方案如圖22所示:
圖 22 連接切斷實驗方案
在REST接口輸入:
sudoDELETE http://localhost:8080/controller/nb /v2/networkconfig/ bridgedomain/port/OVS/MINI1/s1/s1-eth2
或使用OSGicli:使用CLI的刪除端口調用OVSDB的ConfigurationService.java文件。
deletePort"OVS|MINI1" s1 s1-eth2
deletePort"OVS|MINI1" s2 s2-eth2
deletePort"OVS|MINI1" s1 s1-eth1
deletePort"OVS|MINI1" s2 s2-eth1
OVSDB客戶端輸出(ovs-vsctl顯示)如圖23:
圖 23OVSDB客戶端輸出顯示
現在嘗試用主機1PING主機2,這將會失敗。因爲該鏈接已經被拆除。
mininet>pingpair h1 h2
理論結果如下:
h1 ->
X
h2 -> X
Results: 100% dropped (2/2 lost)
實驗所得結果截圖如圖24:
圖 24 鏈接拆除實驗結果
接下來添加端口到S1和S2
addPort"OVS|MINI1" s1 s1-eth1
addPort"OVS|MINI1" s2 s2-eth1
addPort"OVS|MINI1" s1 s1-eth2
addPort"OVS|MINI1" s2 s2-eth2
然後再次試圖PING所有主機:
mininet>pingall
理論結果如下:
Ping: testing ping reachability
h1 -> h2
h2 -> h1
Results: 0% dropped (0/2 lost)
實驗所得結果截圖如圖25:
圖 25 鏈接添加實驗結果
(一) 實驗結果
經實驗證明,可用OVSDB服務完成物理交換機的連接、轉發、控制路由等功能。刪除S1和S2的虛擬連接後,h1和h2無法ping通,丟包率爲100%。而當S1和S2的虛擬連接重新建立時,ping h1和h2時,丟包爲0%,鏈路重新ping通。
OVS是用軟件形式實現功能的虛擬交換機,當前可以和主流的KVM、Xen等多種虛擬化平臺相結合,從而提供靈活多變的網絡互連功能。經實驗說明,雖然是軟件定義的虛擬交換機,但是其工作原理與實際物理的交換機相類似。
OVSDB是作爲管理Open vSwitch數據庫的管理協議引入到OpenDaylight項目開發中,並在項目開發和研究過程中發揮重要作用。其對Open vSwitch數據庫和OpenFlow功能插件的支持,使其成爲OpenDaylight中不可或缺的重要一環。對未來SDN的全面功能實現和網絡新格局的誕生提供技術和應用支持。