實驗5:開源控制器實踐——POX
一、實驗目的
1.能夠理解 POX 控制器的工作原理;
2.通過驗證POX的forwarding.hub和forwarding.l2_learning模塊,初步掌握POX控制器的使用方法;
3.能夠運用 POX控制器編寫自定義網絡應用程序,進一步熟悉POX控制器流表下發的方法。
二、實驗環境
Ubuntu 20.04 Desktop amd64
三、實驗要求
(一)基本要求
1.搭建下圖所示SDN拓撲,協議使用Open Flow 1.0,控制器使用部署於本地的POX(默認監聽6633端口)
2.閲讀Hub模塊代碼,使用 tcpdump 驗證Hub模塊;
3.閲讀L2_learning模塊代碼,畫出程序流程圖,使用 tcpdump 驗證Switch模塊。
(二)進階要求
1.重新搭建(一)的拓撲,此時交換機內無流表規則,拓撲內主機互不相通;編寫Python程序自定義一個POX模塊SendFlowInSingle3,並且將拓撲連接至SendFlowInSingle3(默認端口6633),實現向s1發送流表規則使得所有主機兩兩互通。
2.基於進階1的代碼,完成ODL實驗的硬超時功能。
(三)實驗報告
1.請用Markdown排版;
2.所有實驗相關代碼文件(如有)保存在目錄/home/用户名/學號/lab5/中;
構建拓撲
3.基礎要求只需要提交h1 ping h2、h2和h3的tcpdump抓包結果截圖,外加L2_learning模塊代碼流程圖,其餘文字請勿贅述;
h1 ping h2
h2和h3的tcpdump抓包結果截圖
L2_learning模塊代碼流程圖
開啓pox,運行L2_learning模塊,h1 ping h2
h2和h3的tcpdump抓包結果截圖
5.個人總結,包括但不限於實驗難度、實驗過程遇到的困難及解決辦法,個人感想,不少於200字。
SDN和傳統網絡最大的區別在於:SDN具有靈活的軟件編程能力,讓網絡的自動化管理和控制能力獲得空前的提升,能夠有效地解決當前網絡系統所面臨的資源規模擴展受限、組網靈活性差的問題。
實驗4:開源控制器實踐——OpenDaylight
一、實驗目的
能夠獨立完成OpenDaylight控制器的安裝配置;
能夠使用Postman工具調用OpenDaylight API接口下發流表。
二、實驗環境
Ubuntu 20.04 Desktop amd64
三、實驗要求
(一)基本要求
利用Mininet平台搭建下圖所示網絡拓撲,並連接OpenDaylight控制器;
通過Postman工具調用OpenDaylight提供的API下發流表,實現拓撲內主機h1和h3網絡中斷10s。
(二)進階要求
重新搭建(一)的拓撲,此時交換機內無流表規則,拓撲內主機互不相通;編寫Python程序自定義一個POX模塊SendFlowInSingle3,並且將拓撲連接至SendFlowInSingle3(默認端口6633),實現向s1發送流表規則使得所有主機兩兩互通。
基於進階1的代碼,完成ODL實驗的硬超時功能。
(三)個人總結
出了許多奇怪的報錯和一些無法ping通的問題,再次意識到自己的bug體質…學到了除了vim以外的文件處理方法:touch+文件名可以創建文件,gedit可以查看並編輯文件,體驗起來比vim舒適一些。同時體驗了下python在mininet中的使用,miniedit的可視化圖形界面對用户友好。還有一些尚未解決的問題和不太清楚原理的地方,需要進一步學習。最後,處理報錯等問題的速度還需要提高。