实验8:数据平面可编程实践——P4

发布时间:2022-07-01 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了实验8:数据平面可编程实践——P4脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

一、实验目的

  1.掌握V1Model框架下P4_16的程序结构和基本语法 2.能够运用 P4 进行简单数据平面编程  

二、实验环境

  1.下载虚拟机软件oracle VisualBox或VMware; 2.在虚拟机中安装Ubuntu 16.04 Desktop amd64,并安装完整Mininet和P4开发环境; 3.提供P4镜像P4-suITe2018.ova,提取码:egwf  

三、实验要求

学习P4官方示例教程,链接:https://github.COM/p4lang/tutorials,了解P4-16版本的基本语法、基于V1Model的P4代码结构,完成如下练习:

(一)基本要求

熟悉使用P4实现交换机ipv4的基本转发原理,编写P4程序,在下面的拓扑中实现Ipv4 隧道转发。

实验8:数据平面可编程实践——P4

  • 进入home/P4/tutorials/exercises/basic_tunnel,完善后basic_tunnel.p4代码,完善后在该目录下打开终端,输入make run

实验8:数据平面可编程实践——P4

  • 使用pingall命令测试连通性,结果如下图所示:

实验8:数据平面可编程实践——P4

  • (1)不使用隧道时:

    • 输入xterm h1 h2 h3命令,并在h2和h3的窗口输入./receive.py,开启服务器用于接收消息

    • 在h1输入./send.py 10.0.2.2 "h2,I am 031902239"

    • 在h1输入./send.py 10.0.3.3 "h3,I am 031902239"

实验8:数据平面可编程实践——P4

实验8:数据平面可编程实践——P4

  • (2)使用隧道时:

    • 在h1输入./send.py 10.0.2.2 "hello,i am 031902239" --dst_id 2

    • 在h1输入./send.py 10.0.3.3 "hi,i am 031902239" --dst_id 2

    • 对比以下两张图可知使用隧道转发时,改变IP交换机仍然将报文发送给h2主机

实验8:数据平面可编程实践——P4

实验8:数据平面可编程实践——P4

(二)进阶要求

在熟悉隧道转发原理的前提下,编写实现P4Runtime的Python代码,将流规则下发到上图拓扑中的交换机,实现依据此规则的隧道转发。

  • 在/P4/tutorials/exercises/p4runtime目录下打开终端输入make,使用h1 ping h2命令,可见无法ping通

实验8:数据平面可编程实践——P4

  • 未补充mycontroller.py代码前,终端运行mycontroller.py时h1 ping h2结果如下:

实验8:数据平面可编程实践——P4

  • 补充mycontroller.py中的writeTunnelRules函数的代码,打开终端并输入./mycontroller.py,h1 ping h2后结果如下:

实验8:数据平面可编程实践——P4

  • h1和h2可ping通

 

四、个人总结

 

  • 实验难度:较难

  • 实验过程遇到的困难及解决办法

    • 做这个实验的第一个难受的地方就是没有网盘会员等了挺长时间才把实验环境下载下来的,好不容易下载下来了导入虚拟机后安装VMware Tools后再重启,重启后虚拟机开启时屏幕变成蓝屏,实在是不能理解,问老师但老师使用的是Virsualbox能够正常使用。虽然不明白问题出在哪里,但是在重新建个新的文件夹重新导入虚拟机后重新安装VMware Tools又可以正常使用了,还是可以解决的。

    • 为了完成实验学习P4语言,感觉好难懂,结合其他同学的博客,对实验也有了些启发。

    • 进阶要求有些不知所措,向同学学习如何启动P4runtime,在同学的启发下完成了进阶要求的作业。

  • 个人感想:本次实验让我无语的还是超长时间的下载以及导入虚拟机后安装VMware Tools重启出现的“蓝屏”问题,虽然重新导入能够解决但我还是对此感觉挺疑惑的。这次实验学习了P4语言及其一些相关知识,虽然不是不太深入的实践,但我觉得是一个重要的成长,希望能在以后进一步学习这块内容。本次实验是软件定义网络的最后一次实验,这门课的八次实验让我学习到了挺多的理论知识,理论再结合实践达到了相互补充的效果,我觉得受益匪浅。

脚本宝典总结

以上是脚本宝典为你收集整理的实验8:数据平面可编程实践——P4全部内容,希望文章能够帮你解决实验8:数据平面可编程实践——P4所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。