1. 程式人生 > >實驗 6:OpenDaylight 實驗——OpenDaylight 及 Postman 實現流表下發

實驗 6:OpenDaylight 實驗——OpenDaylight 及 Postman 實現流表下發

### 一、實驗目的 熟悉 Postman 的使用;熟悉如何使用 OpenDaylight 通過 Postman 下發流表。 ### 二、實驗任務 流表有軟超時和硬超時的概念,分別對應流表中的 idle_timeout 和 hard_timeout。* * idle timeout:如果值為非 0,那麼在對應的時間內如果沒有資料包匹配流表,時間到該流表將被刪除;值為 0 不設軟超時機制。 * hard timeout:如果值為非 0,那麼在對應的時間內不論是否有資料包匹配流表,時間到流表都會被刪除;值為 0 不設硬超時機制。 本實驗通過 OpenDaylight 及 Postman 下發關於硬超時的流表,實現拓撲內主機 h1 和 h3 在一定時間內的網路斷開。 Postman 是一個 http 請求工具,可用於 REST API 的介面除錯。實驗拓撲如下: ![](https://img2020.cnblogs.com/blog/2146269/202010/2146269-20201007200333287-1090923082.png) ### 三、實驗步驟 1.實驗環境 安裝了 Ubuntu 18.04.5 Desktop amd64 的虛擬機器 2. 實驗過程 (1)Postman 安裝 ``` sudo snap install postman ``` (2)清理舊資料 * 啟動 OpenDaylight,通過 Postman 的 Delete 動作清空殘留流表(如有) ![](https://img2020.cnblogs.com/blog/2146269/202010/2146269-20201007200620353-1158591089.png) ![](https://img2020.cnblogs.com/blog/2146269/202010/2146269-20201007200751162-600380920.png) * 清空 Mininet 資料 ``` $ sudo mn -c ``` ![](https://img2020.cnblogs.com/blog/2146269/202010/2146269-20201007200846787-1689050336.png) (3)生成拓撲並連線 OpenDaylight ``` $ sudo mn --topo=single,3 --controller=remote,ip=127.0.0.1,port=6633 --switch ovsk,protocols=OpenFlow13 ``` ![](https://img2020.cnblogs.com/blog/2146269/202010/2146269-20201007201411635-1021663070.png) 三臺主機是互通的。 ![](https://img2020.cnblogs.com/blog/2146269/202010/2146269-20201007200942335-992100678.png) (4)使用 Postman 填入 JSON 格式的 http 請求(參考附錄) ![](https://img2020.cnblogs.com/blog/2146269/202010/2146269-20201007201632872-1505398005.png) 先在 Mininet CLI 中執行 h1 ping h3,再在 Postman 處選擇動作 PUT,填入硬超時流表內容(見附錄),可以先閱讀一下流表的內容,關注 match 匹配欄位以及對應的 instructions 指令中的動作 action,這裡是直接 drop 資料包。為了讓流表能夠匹配,將優先順序 priority 調到最大。點選右上角 send,傳送請求。 (5)驗證結果 ![](https://img2020.cnblogs.com/blog/2146269/202010/2146269-20201007201724531-1541348693.png) h1 ping h3 有 10 秒時間是中斷的,結果符合預期。 ### 四、實驗總結 實驗中遇到的問題:Authorization中的Type忘記設定為Busic Auth,導致send請求後得到401 unauthorized的錯誤。設定後便可順利傳送