学习P4官方示例教程,链接:https://github.com/p4lang/tutorials,了解P4-16版本的基本语法、基于V1Model的P4代码结构,完成如下练习:
熟悉使用P4实现交换机IPv4的基本转发原理,编写P4程序,在下面的拓扑中实现IPV4 隧道转发。
sudo gedit basic_tunnel.p4
对basic_tunnel.p4进行编辑,补全其代码make run
xterm h1 h2 h3
打开终端,在h2和h3的终端都输入./receive.py
开始监听./send.py 10.0.2.2 "031902443"
./send.py 10.0.3.3 "031902443 h3"
./send.py 10.0.3.3 "031902443 tunnel-test" --dst_id 2
本次实验较难,刚开始的时候没有头绪,就按照老师给的链接去了解了一下,发现还是无从下手。于是就去翻看了同学们的博客,清楚了实验的流程。然后实操的时候对怎么补全代码又是一头雾水,花费了比较多的时间。在make run的时候出错,想起很多同学在这里都有在博客里提到过,所以就跟着把mark_to_drop()的参数删掉,就可以正确运行了。后面的内容没有太大问题,一开始对隧道的作用不太理解,自己试着改一下命令的某些部分看看结果有什么不同,最后大概能悟出来。