實驗8:數據平面可編程實踐——P4


實驗8:數據平面可編程實踐——P4

基礎要求

首先進入/P4/tutorials/exercises/basic_tunnel

image-20211102130529524

basic_tunnel.p4中補全代碼,make run運行,之后可以看到啟動mininet

輸入xterm h1 h2,啟動命令行

在h2中運行./receive.py

在h1中輸入./send.py 10.0.2.2 "P4 is cool",此時沒有采用隧道轉發

image-20211102132635863

image-20211102132917271

可以看到,沒有采用隧道轉發的情況下,由h1向h2發送"P4 is awesome"消息,h3處並不能收到,反之亦然。

采用隧道轉發進行嘗試,在h1處輸入:./send.py 10.0.2.2 "P4 is cool" --dst_id 2

image-20211102133103289

可以看到h2收到消息,這在h1處修改目的IP為10.0.3.3

image-20211102133240847

看到雖然IP改變,但是經過隧道轉發,交換機仍然將該報文發送給h2

總結

本次實驗接觸到了P4編程語言,並嘗試進行編寫,但是難度上不是很難,在實驗過程中,遇到如下問題,記錄如下:

  • P4版本問題:起初在官方github上克隆了倉庫到本地進行運行,但是在運行的過程中,發現編譯失敗,詢問同學之后發現是由於虛擬機安裝的P4版本過低,導致不能成功運行,需要更換最新的版本,之后發現用戶目錄下已有P4示例倉庫,故暫時不需要更新版本,可以繼續實驗。
  • 代碼編寫:填充的代碼參考官方教程,但是發現由於前面的P4版本問題,一個函數的傳參發生改變,故參考同學的解決方案,修改傳參,最終解決問題。

經過這次實驗,感受到自己對P4還不是很了解,計划之后進行更深層次的學習。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM