SDN第八次实验

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

一、实验目的

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

二、实验环境

1.下载虚拟机软件Oracle VisualBox或VMware;
2.在虚拟机中安装Ubuntu 16.04 Desktop amd64,并安装完整Mininet和P4开发环境。

三、实验要求

(一)基本要求

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

实现交换机IPV4基本转发:
运行basic.p4文件:


实现IPV4隧道转发:
运行basic_tunnel.p4:



无隧道测试:


隧道测试:

(二)进阶要求

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

实验心得

这次的实验主要是看 https://github.com/p4lang/tutorials 这个教程做的,里面有详细的实验步骤和基本代码。不过阅读的时候碰到许多问题,后面直接用浏览器自带的翻译功能进行阅读,效果很好。P4镜像里的basic.p4文件以及basic_tunnel.p4文件可以根据里面提供的代码来进行修补,在修补的过程中也慢慢理解了大致的意思。一开始执行make run的时候报错,一开始以为是代码的原因,就回头去查,发现没错,后来问了同学,发现之前拓扑没清除干净,之后用make stop就可以了,教程里也有写到,粗心!后来就是照着教程里教的步骤来进行了,总的来说还是收获颇多。

posted @ 2021-11-01 23:48  凉辰梦瑾动人心  阅读(54)  评论(0)    收藏  举报