2016-08-02 32 views
0

我是SDN和ODL的初學者,我試圖將OpenFlow流添加到mininet的OVS交換機中,但是當我檢查Wireshark中的數據包時,流並未反映出來。這是我的場景。通過ODL控制器的RESTCONF API添加流來推送MPLS

  • 3開關用線性拓撲和3臺主機連接:須藤MN --topo線性--controller遠程 - 水閥ovsk,協議= OpenFlow13
  • 在同一虛擬機上運行作爲mininet
  • ODL控制器

我想要做的是手動配置MPLS。例如,作爲一個起點,我試圖爲從Host1到Host3的數據包添加MPLS標籤。我正在嘗試使用RESTCONF API來完成此操作,並且我收到了我發送的請求的狀態碼200(OK)。以下是RESTCONF請求的XML正文。

對於在Switch1的端口1上傳入的IP數據包,要推送值爲12的MPLS標籤並將其從端口2轉發出去: 0 0 0x8847 1 12 2 2 0 100 0x800 1 0 10 true 0 flow-action -push-MPLS 220

URL = 「http://localhost:8181/restconf/config/opendaylight-inventory:nodes/node/openflow:1/table0/flow/100

接頭= { '內容 - 類型': '應用/ XML', '接受': '應用/ JSON'}

請求類型= PUT

身份驗證=基本身份驗證

然後當我用交換機1的端口2上的wireshark檢查數據包時,我看不到MPLS標頭。

OpenFlow和RestConf插件安裝在ODL中。增加的流量不作用於數據包的可能原因是什麼?

PS。我使用軟件包管理器安裝了mininet,而不是使用預先構建的虛擬機。

+0

該流程未顯示在交換機流程表中。檢查/var/logs/openvswitch/ovs-vswitchd.log文件後,我發現交換機無法連接到控制器。日誌說連接失敗(連接被拒絕)..可能是什麼原因? – Bilal

回答

0

我發現OpenvSwitch沒有在我的主機上運行!我不得不在/etc/init.d/openvswitch-switch中重新啓動服務。我使用$sudo /etc/init.d/openvswitch-switch status檢查了狀態,通常應該說openvswitch正在運行,但事實並非如此。要重新啓動服務,我做了sudo /etc/init.d/openvswitch-switch restart

之後,我可以連接交換機和控制器。但是我的流量並沒有從控制器傳送到交換機,原因是我仍然不確定它是什麼,但我想我有一些缺失的xml標記,並且在我提到ODL端到端標記時它是固定的,結束流程示例https://wiki.opendaylight.org/view/Editing_OpenDaylight_OpenFlow_Plugin:End_to_End_Flows:Example_Flows,以我感興趣的示例爲例,並根據需要對其進行了定製。

相關問題