实验8:数据平面可编程实践——P4
一、实验目的
- 掌握V1Model框架下P4_16的程序结构和基本语法
- 能够运用 P4 进行简单数据平面编程
二、实验环境
- 下载虚拟机软件Oracle VisualBox或VMware;
- 在虚拟机中安装Ubuntu 16.04 Desktop amd64,并安装完整Mininet和P4开发环境;
- 提供P4镜像P4-Suite2018.ova,提取码:egwf
三、实验要求
学习P4官方示例教程,链接:https://github.com/p4lang/tutorials,了解P4-16版本的基本语法、基于V1Model的P4代码结构,完成如下练习:
(一)基本要求
熟悉使用P4实现交换机IPv4的基本转发原理,编写P4程序,在下面的拓扑中实现IPV4 隧道转发。
- 修改basic_tunnel.p4中的代码并运行
- 打开h1、h2终端,h1发送消息“031902532 SDN lab8”
- h1通过隧道发送消息“hello”
四、个人总结
-
这次实验的难度感觉挺大的,其实每次有需要配置新的实验环境内容我都觉得难度挺大的,就算是老师的教程再详细也会出些奇奇怪怪问题,甚至要重新配置。
-
首先是环境配置上,这次虚拟机导入还算比较正常,可是开始做试验做到一半的时候我虚拟机中的xterm没办法打开了,很无奈。在网上找了一些解决方法,在这里记录一下,希望没有同学需要用到。
- 如果系统中没有安装xterm,那么就需要安装xterm
sudo apt-get install xterm
- 在终端可以正常使用xterm,但是在mininet的CLI环境中却无法使用。
解决办法:重新安装mininet,只需要选择 -n就可以了#~/mininet/util$ ./install.sh -n
- 一般的话先重启虚拟机试试看
- 如果系统中没有安装xterm,那么就需要安装xterm
-
然后这次要改的代码还是比较多的,细节方面要做好,不然就得对着报错一条一条地改。
-
不知不觉已经做到实验八了,通过这几次的SDN实验,不仅仅学到了软件定义网络的知识,也让我学到了很多虚拟机、Linux操作系统的使用知识。在搜索课内有关知识的过程中我也了解到,虚拟机的用处远不止做一做Linux系统上的实验这么简单,希望在后续的学习中能更好地利用好我在SDN课上学到的这些知识。