實驗4:開源控制器實踐——OpenDaylight


SDN實驗4:開源控制器實踐——OpenDaylight

實驗目的

  • 能夠獨立完成OpenDaylight控制器的安裝配置
  • 能夠使用Postman工具調用OpenDaylight API接口下發流表

實驗要求

(一)基本要求

  • 配置JAVA環境,下載並解壓安裝OpenDaylight,版本選擇Carbon 或 Beryllium
  • 下載並解壓安裝Postman
  • 利用Mininet平台搭建下圖所示網絡拓撲,並連接OpenDaylight控制器

通過sudo mn --topo=single,3 --controller=remote,ip=127.0.0.1,port=6633 --switch ovsk,protocols=OpenFlow13搭建拓撲后,執行pingall,並在之前運行好的ODL中查看拓撲,如下圖所示:

Postman下發流表

通過Postman請求Restful API,進行流表下發,URL和json文件如下所示:

URL:

http://127.0.0.1:8181/restconf/config/opendaylight-inventory:nodes/node/openflow:1/flow-node-inventory:table/0/flow/1

json文件

{
    "flow": [
        {
            "id": "1",
            "match": {
                "in-port": "1",
                "ethernet-match": {
                    "ethernet-type": {
                        "type": "0x0800"
                    }
                },
                "ipv4-destination": "10.0.0.3/32"
            },
            "instructions": {
                "instruction": [
                    {
                        "order": "0",
                        "apply-actions": {
                            "action": [
                                {
                                    "order": "0",
                                    "drop-action": {}
                                }
                            ]
                        }
                    }
                ]
            },
            "flow-name": "flow1",
            "priority": "65535",
            "hard-timeout": "10",
            "cookie": "2",
            "table_id": "0"
        }
    ]
}

先執行h1 ping h3,再通過send按鈕下發流表,可以看到json文件中的配置生效:

進階要求

  • api文檔

  • 獲取流表狀態數量,新增修改和刪除流表

  • 獲取特定交換機端口的狀態

  • 獲取指定交換機信息

個人總結

遇到的問題和解決方案

  • 問題一

運行了sudo mn --topo single,3 --mac --switch ovsk --controller remote,ip=127.0.0.1,port=6633,protocols=Openflow13后,h1無法ping通h3

解決方法:參考鏈接,執行命令./pox/pox.py forwarding.hub后即可ping通h1和h3主機

  • 問題二

Postman無法send request,如圖所示報錯:

解決方法:沒有打開ODL,要打開ODL才能請求成功。搜到的通常解決方法是Setting-Proxy-去掉勾選的Use the system proxy,但由於當時都沒開ODL所以效果不明顯。

  • 問題三

send之后ping命令絲毫沒有受到影響,一直在進行成功的ping命令

解決方法:之后重啟了虛擬機,再來一次,這個問題就自己消失了

  • 問題四

重新嘗試進行實驗時,pox報錯:

解決方法:停止ODL后重新嘗試即可

  • 問題五
    • 如果點擊send后,出現的執行結果出現error的,而且error的提示信息里有protocol的,可以考慮檢查一下URL是不是不對

個人感想

這次作業做了比較久,一些沒有見過的報錯,以及一些預料之外的問題,讓整個實驗的時間都被延長了。在開始實驗之前,環境的配置也花了一定的時間,實驗后期虛擬機頻繁出現未響應的現象,但好像還沒有什么解決方法。在實驗過程中,對Postman通過json文件下發流表的過程獲得了更全面的了解。(除了耐心的各種嘗試之外,還是需要注重經驗的積累,不然容易花很多時間在處理報錯和debug上)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM