實驗 6:OpenDaylight 實驗——OpenDaylight 及 Postman 實現流表下發
阿新 • • 發佈:2020-10-07
### 一、實驗目的
熟悉 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的錯誤。設定後便可順利傳送