實驗4:開源控制器實踐——OpenDaylight
一、實驗目的
能夠獨立完成OpenDaylight控制器的安裝配置;
能夠使用Postman工具調用OpenDaylight API接口下發流表。
二、實驗環境
下載虛擬機軟件Oracle VisualBox或VMware;
在虛擬機中安裝Ubuntu 20.04 Desktop amd64,並完整安裝Mininet;
三、實驗要求
(一)基本要求
- 配置JAVA環境,下載並解壓安裝OpenDaylight,版本選擇Carbon 或 Beryllium,下載並解壓安裝Postman;
- 利用Mininet平台搭建下圖所示網絡拓撲,並連接OpenDaylight控制器;

構造上述拓撲
sudo mn --topo=single,3 --mac --controller=remote,ip=127.0.0.1,port=6633 --switch ovsk,protocols=OpenFlow13

執行pingall,然后在ODL中查看拓撲:

3. 通過Postman工具調用OpenDaylight提供的API下發流表,實現拓撲內主機h1和h3網絡中斷10s。

(二)進階要求
查找資料,整理和記錄ODL控制器主要的REST API文檔,包括但不限於ODL提供的文檔鏈接,獲取拓撲的交換機、獲取流表狀態數量、獲取特定交換機端口的狀態、新增修改和刪除流表等。
1. 獲取拓撲的交換機
URL:http://127.0.0.1:8181/apidoc/explorer/index.html#!/network-topology(2013-07-12)/GET_network_topology_get_171

2. 流表增刪改查
URL:http://127.0.0.1:8181/apidoc/explorer/index.html#!/opendaylight-inventory(2013-08-19)/GET_flow_get_198

3. 獲取指定交換機信息
URL:http://127.0.0.1:8181/apidoc/explorer/index.html#!/opendaylight-inventory(2013-08-19)/GET_node_get_5

4.獲取交換機中某個流表信息
URL:http://127.0.0.1:8181/apidoc/explorer/index.html#!/opendaylight-inventory(2013-08-19)/GET_table_get_194

5. 獲取特定交換機端口的狀態
URL:http://127.0.0.1:8181/apidoc/explorer/index.html#!/opendaylight-port-statistics(2013-12-14)/get_node_connector_statistics_post_0

四、實驗總結
遇到的錯誤和解決方法
- 由於建立拓撲命令輸入錯誤而導致主機之間無法聯通

- 由於忘記把
GET改為PUT而導致的錯誤

實驗心得
這次的實驗操作起來並不難,前期安裝java和ODL的環境上花費了比較多的時間。后期的實驗,老師的PDF講解的很詳細,但做實驗過程中,因為自己的粗心大意導致了一些簡單的細節上的錯誤而浪費了許多的時間。本次實驗學習了OpenDaylight開源控制器和它的使用方法,在本周的理論課上老師也介紹了ODL還有其他的一些控制器,在對ODL有了一定的了解的基礎后再完成本次實驗,讓我對理論的理解更加深入透徹。本次實驗還涉及到一些java編程的部分,讓我真正感知到了SDN的核心思想--網絡的可編程。
