mininet下建立拓撲時關於遠程控制器的一個小問題

我習慣在雙系統下的ubuntu環境中,直接使用mininet,而不是在虛擬機中作仿真;最近重裝了系統和mininet後,使用mininet時遇到了一點小問題,一開始忽視了細節,使得自己被這個問題困擾了好一會兒,好在後來還是發現了問題所在,故記錄下來。

$ sudo mn --topo single,3 --mac --switch ovsk --controller remote

上述命令是一個比較常見的命令,即告訴mininet創建一個拓撲,該拓撲由3個主機連接到1openvSwitch上,設置各主機的MAC地址等於它的IP,並且指向一個remote控制器。


$./pox/pox.py forwarding.hub

啓動pox控制器自帶的集線器功能


如果熟悉pox,那一眼就能看出雖然Hub已經running,但控制器並未成功連接到交換機,此時我們嘗試在mininet中輸入pingall命令,自然是ping不通的。

回過頭來看所作的兩個操作,我們需要注意到,創建拓撲時,指向的remote控制器在嘗試連接了127.0.0.1:6653和127.0.0.1:6633都未連接上控制器(controller還未啓動)後,最終還是指向了前者(即端口號爲6653);但是,我們的pox控制器默認是工作在localhost(即127.0.0.1:6633);於是兩個端口號不一致,自然無法將交換機和控制器連接上。

發現問題所在後,在啓動mininet時,可以指定remote控制器工作在localhost,

$ sudo mn --topo single,3 --mac --switch ovsk --controller remote,ip=127.0.0.1,port=6633

啓動pox控制器集線器功能

這時,我們可以看到 connected 字樣,說明控制器和交換機連接上了,並顯示了交換機的數據路徑標識符(dpid)爲00-00-00-00-00-01。這時我們再進行pingall測試,網絡內的3個主機相互可以ping通。

總結:上述問題其實非常小,而且使用mininet經驗豐富後,是不容易犯這樣的錯誤的;關鍵還是在於要注意細節,要問問自己,工具的默認配置是怎樣的?與我當前的實際情況相符合麼?建議還是根據自己的要求手動配置工具選項,這樣清晰易懂;另外,還要注意工具給出的提示。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章