实验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还不是很了解,计划之后进行更深层次的学习。

原文地址:https://www.cnblogs.com/JoshuaYu/p/15498574.html