1. 程式人生 > 其它 >實驗五:開源控制器實踐——POX

實驗五:開源控制器實踐——POX

實驗目的

  • 能夠理解 POX 控制器的工作原理;
  • 通過驗證POX的forwarding.hub和forwarding.l2_learning模組,初步掌握POX控制器的使用方法;
  • 能夠運用 POX控制器編寫自定義網路應用程式,進一步熟悉POX控制器流表下發的方法。

實驗環境

  • 下載虛擬機器軟體Oracle VisualBox 或 VMware;
  • 在虛擬機器中安裝Ubuntu 20.04 Desktop amd64;

實驗要求

一:搭建下圖所示SDN拓撲,協議使用Open Flow 1.0,控制器使用部署於本地的POX(預設監聽6633埠)

二:閱讀Hub模組程式碼,使用 tcpdump 驗證Hub模組;
1.開啟POX:

2.埠監聽


3.驗證:

  • h1pingh2
  • h1pingh3

    可以發現不論是h1 ping h3還是h1 ping h2 其他的主機都能接收到包。可以知道這為洪泛轉發

三:閱讀L2_learning模組程式碼,畫出程式流程圖,使用 tcpdump 驗證Switch模組。
程式流程圖:

一:在pox檔案目錄下開啟終端,輸入命令:./pox.py log.level --DEBUG forwarding.l2_learning開啟switch模組
二:埠監聽
h1 ping h2

h1 ping h3

當h1 ping h2時候只有h2有接收到資料包,而當h1 ping h3時候也同樣只有h3能接收到資料包,因此驗證了switch模組的自學習功能,資料包只會傳送給相應的主機

個人感想

此次實驗難度較大。中間遇到了較多問題。一開始忘記先進行埠的監聽就開始主機之間的通訊,無法得到結果。才發現出錯了。
然後在對switch模組進行驗證時,發現了埠非正常關閉的現象。在求助同學之後得知要重啟虛擬機器便可以了。
最後便是對程式碼的理解後畫出流程圖,難度高。
本次實驗後對pox的使用有了初步的認識,對hub模組的洪泛轉發功能和switch的自學習功能有了驗證性的認識。也體驗了主機的命令列終端下抓包的效果。