天天看點

實驗八:資料平面可程式設計

掌握V1Model架構下P4_16的程式結構和基本文法

能夠運用 P4 進行簡單資料平面程式設計

下載下傳虛拟機軟體Oracle VisualBox或VMware;

在虛拟機中安裝Ubuntu 16.04 Desktop amd64,并安裝完整Mininet和P4開發環境;

提供P4鏡像P4-Suite2018.ova,提取碼:egwf

學習P4官方示例教程,連結:https://github.com/p4lang/tutorials,了解P4-16版本的基本文法、基于V1Model的P4代碼結構,完成如下練習:

熟悉使用P4實作交換機IPv4的基本轉發原理,編寫P4程式,在下面的拓撲中實作IPV4 隧道轉發。

實驗八:資料平面可程式設計

編寫補充代碼并運作

實驗八:資料平面可程式設計
實驗八:資料平面可程式設計

xterm打開h1與h2,在主機2的界面輸入 <code>./receive.py</code>啟動伺服器以接收消息,在h1的界面輸入<code>./send.py 10.0.2.2 "031902321"</code>發送消息。

實驗八:資料平面可程式設計
實驗八:資料平面可程式設計

使用隧道進行測試,在h1中發送消息給h2,使用隧道通信時根據指定的 dst_id 進行轉發。

實驗八:資料平面可程式設計
實驗八:資料平面可程式設計

實驗難度

較為困難,需要學習p4相關知識,并且要補充寫很多代碼。實驗過程中還遇到了權限不足等許多問題。

遇到的問題

實驗過程中尋找P4所在目錄時,發現怎麼找也找不到,并且運作許多指令都會提示權限不足,最終經過排查,發現是Linux賬号登入錯誤,使用了遊客賬号登入導緻了這些問題。最終将賬号切換成管理者賬号解決問題。

在寫好代碼準備運作P4時,運作失敗發生報錯,檢查代碼确認代碼了沒有問題。最終通過重新開機虛拟機解決問題。

個人感想

本次實驗真的好難,但也學了很多東西。掌握V1Model架構下P4_16的程式結構和基本文法,同時能夠運用 P4 進行簡單資料平面程式設計。