p4 编程语言环境配置


前言

p4 (官网链接:https://p4.org/)是一种用于网络设备的领域特定语言,指定数据平面设备(交换机、网卡、路由器、过滤器等)如何处理包。

本文主要介绍一下 p4 这门编程语言的虚拟机环境配置,供小伙伴们参考。

下面介绍两种环境配置方法:

第一种是p4官方教程里的方法(由于p4的环境配置复杂,所以官方直接给我们打包好了安装虚拟机的一系列文件,我们只需要按照步骤操作就好。不建议用这种方法,因为很难安装成功,但是在这里我还是要记录一下安装步骤,供大家参考);

第二种方法是直接导入已经配置好的虚拟镜像文件,一般为 .ova 或者 .ovf 文件,下文中有获取链接。

建议直接看第二种方法

如果不想了解官网安装步骤的话可以直接看第二种方法

第一种方法:p4官方教程里的方法(不建议,我没安装成功)

打开 p4 的官方教程:https://github.com/p4lang/tutorials,你会看到下面这个界面,这里面有p4语言的相关练习exercises、安装虚拟环境所必要的文件等。

在这里插入图片描述

我们直接看下面的README.md,并且翻到下面这一部分:

在这里插入图片描述
按照红框里的步骤,逐一下载所需要的软件并执行相关操作:

1.1 下载并安装 Virtual Box

下载链接:https://www.virtualbox.org/wiki/Downloads,点击这个链接会看到下面的页面,由于我的电脑是Window系统,所以我选择Windows hosts,点击即可下载。其他系统的小伙伴可以自行搜索如何下载安装。
在这里插入图片描述
0、下载好了,双击安装:

在这里插入图片描述
1、点击下一步
在这里插入图片描述
2、点击浏览更改安装位置,尽量不要装在C盘(系统盘),这里我装在了 D:\VirtualBox\ 目录下,点击下一步:
在这里插入图片描述

3、点击下一步:
在这里插入图片描述

4、点击 是
在这里插入图片描述

5、安装完成,点击完成并打开VirtualBox:
在这里插入图片描述
6、打开 全局设定

在这里插入图片描述

7、修改默认虚拟电脑位置,就是给我们后面安装的虚拟机设定一个安装目录,并且以后我们的虚拟机都会安装到这个目录下。确保这个目录有足够的存储空间,最好不要在C盘(系统盘),这里我放在了D:\VirtualBos VMs这个目录下,然后点击 OK:

在这里插入图片描述
8、然后关闭VirtualBox,我们安装VirtualBox的工作就结束啦!!
在这里插入图片描述

1.2 下载并安装 Vagrant

下载链接:https://www.vagrantup.com/downloads
根据系统类型选择要下载的文件,我是win10 x86 64位的,所以选择了 Amd64,不过我试了另外一个686的,好像效果是一样的,不太清楚他们两个的区别是什么,反正随便下载一个就好啦
在这里插入图片描述
0、下载好了,双击安装
在这里插入图片描述

1、点击Next

在这里插入图片描述

2、接受,Next
在这里插入图片描述

3、更改安装文件夹,最好不要在C盘,Next

在这里插入图片描述

4、点击Install
在这里插入图片描述

5、等待一会就安装好了
在这里插入图片描述

6、安装好了,Finish
在这里插入图片描述
7、之后会弹出下面这个窗口,点击Yes重启计算机或者自己手动重启计算机
在这里插入图片描述
Vagrant 是没有图形界面的,所以安装完成后也没有桌面快捷方式。开机之后,打开终端,输入vagrant version,这样可以判断是否安装成功

在这里插入图片描述

8、通过 Vagrant 创建虚机需要先导入镜像文件,它们默认存储的位置在用户目录下的 .vagrant.d 目录下,对于 Windows 系统来说,就是 C:\Users\用户名\.vagrant.d

如果后续可能会用到较多镜像,或者你的 C 盘空间比较紧缺,可以通过设置环境变量VAGRANT_HOME 来设置该目录。

打开系统设置,点击关于,然后点击右侧地高级系统设置
在这里插入图片描述
点击环境变量
在这里插入图片描述

新建系统变量

在这里插入图片描述
在 Windows 系统中,可以这样操作:新建系统环境变量,环境变量名为 VAGRANT_HOME,变量值为 D:\VirtualBos VMs\.vagrant.d ,最后这个.vagrant.d 目录名称不是必须的,但是建议保持一致,这样一眼看上去就能知道这个目录是做什么用处的了。(可以注意到,这里的路径和刚刚我们安装Virtual Box时在全局设定中设置的虚拟机存放位置是一样的,这样做可以让我们以后更方便地管理自己的虚拟机)
在这里插入图片描述
然后一路确定就好了,为了保险起见,最好再重启一下计算机。

到这里,Vagrant 就安装好了。

1.3 利用 Vagrant 安装虚拟机

首先我们要去官网下载一下相关文件:https://github.com/p4lang/tutorials

在这里插入图片描述
在这里插入图片描述

下载好之后解压,进入下面这个文件夹

在这里插入图片描述

输入 cmd ,回车进入终端:

在这里插入图片描述
如下:
在这里插入图片描述

以上步骤相信大家都能顺利完成

接下来的步骤要保证有非常稳定的网络环境
在终端输入 vagrant up ,接下来就是漫长的等待过程,在此期间,Virtual Box会被唤醒并自动新建一个虚拟机,如果过顺利的话,按照官方说法,大概一两个小时之后,我们虚拟机就会完全安装完成,这个虚拟机里有我们运行p4语言所需要的所有环境。当然,这只是理论情况。
在这里插入图片描述


然而遗憾的是,我并没有在安装过程中顺利下载所有资源,从而导致虚拟机安装失败。当初我以为是网络不稳定,但是换了几个不同的网络之后,还是不行,这时我已经安装了3次了,每次vagrant up 之后都要等将近两个小时才能出结果,每次都是在下面这个界面卡一个多小时,然后报一大堆获取资源出错的错误,可想而知内心很崩溃。
在这里插入图片描述
在这里插入图片描述

最后仔细分析了报错的原因,发现有些资源的获取链接不是国内的,所以要FQ才能下载这些资源,事实证明也确实是这个原因,但是由于FQ后网络不稳定,试了几次还是没有成功,最后果断放弃。

如果有大佬安装成功了,希望可以克隆一份放在评论区,蟹蟹!!!

第二种方法:直接导入已经配置好的虚拟镜像文件

由于用第一种方法没有安装成功,我就在网上搜索有没有已经安装好的镜像文件,这样就可以用Virtual Box直接导入使用了。

最后在一位大佬的学习笔记中发现了一个配置好的镜像文件(链接:https://www.zhihu.com/people/yaoj-x/posts),他的这篇文章中给的链接时谷歌云盘,我下了好长时间才下载成功,下面是网盘链接,方便大家自取:

链接:https://pan.baidu.com/s/10JgFwffsPCyw6g7TVp8Asg 
提取码:2de6 
--来自百度网盘超级会员V4的分享

另外,这位大佬的笔记也是非常好,非常适合入门p4,推荐大家去看一下。

接下来介绍具体的安装步骤。

2.1 下载并安装 Virtual Box

这里和 1.1 中的步骤是一样的,就不再重复写了。

2.2 导入镜像文件

下载好上面网盘里的文件

在这里插入图片描述
打开Virtual Box,点击导入虚拟机
在这里插入图片描述
选择我们刚刚下载好的p4-learning.ova文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

点击导入

在这里插入图片描述
大概十几分钟就能完成

在这里插入图片描述
安装好了,点击启动(需要等待几分钟)
在这里插入图片描述
启动之后大概是这个样子
在这里插入图片描述

打开终端,输入git clone https://github.com/p4lang/tutorials,下载我们想要的p4教程
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

这时我们的主文件夹里会出现一个tutorial目录

在这里插入图片描述
tutorial目录里的exercises目录就是我们想要的p4练习

在这里插入图片描述

接下来就可以愉快地学习p4啦!!!

唯一遗憾的是,官方给的最新版是Ubuntu 20,而这个是Ubuntu 16,不过没关系啦,对于学习p4来说已经够用了。


2.3 (记录)其他镜像文件1

与此同时,从一位学长那里也要到了一份镜像文件,导入之后发现同样是Ununtu 16版本的,和2.2中的一样,只是文件格式和2.2中的不一样,就不再分享资源了。下面主要记录一下安装过程。

安装好Virtual Box(安装步骤见1.1)之后,就可以导入文件了,学长给的是一个压缩包,解压之后,如下:
在这里插入图片描述
打开Virtual Box,点击导入
在这里插入图片描述
在这里插入图片描述
选择刚刚文件夹中的这个文件:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
大概十几分钟就安装好了,然后启动虚拟机(启动虚拟机也需要几分钟时间),打开之后是这个样子的:

在这里插入图片描述

在这里插入图片描述
可以看到,主目录下有一个tutorials文件夹,也就是官方的教程,据学长说这个他已经做过了,所以我们要再下载一份新的没做过的。打开终端,输入如下命令:git clone https://github.com/p4lang/tutorials

然后就会报错,大概意思就是这个目录已经存在,所以我们要把之前的tutorials目录删除或者重命名,这里我重命名为tutorials00
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
再次输入git clone https://github.com/p4lang/tutorials

在这里插入图片描述

这样就下载好了,这个新的tutorials文件夹内有我们想要的练习题

在这里插入图片描述

在这里插入图片描述

2.4 (记录)其他镜像文件2

https://www.cnblogs.com/gejuncheng/p/16178961.html
Virtual Box 和 Vagrant的安装与下载可以参考 1.1 和 1.2


Reference

https://p4.org/learn/
https://blog.csdn.net/class_c/article/details/120623743
https://www.zhihu.com/people/yaoj-x/posts
https://zhuanlan.zhihu.com/p/259833884
https://github.com/p4lang/tutorials

  • 8
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
P4语言是一种网络编程语言,用于定义和配置网络设备中的数据平面行为。P4(Programmable Protocol-Independent Packet Processing)允许网络管理员定义网络设备如何处理和操作数据包。 首先,P4语言帮助网络管理员定制网络设备的数据平面行为。传统的硬件交换机和路由器通常使用特定的固件或硬件布局来处理数据包,而P4语言提供了一种编程方式,使网络管理员可以自定义数据包的处理过程。通过P4,管理员可以编写自己的数据包解析、分类和操作逻辑,从而更好地适应不同的网络环境和需求。 其次,P4语言可以简化网络设备的开发和部署过程。由于P4语言提供了高度灵活的编程接口,管理员可以针对具体应用场景和需求设计和优化数据平面行为,而无需重新设计或更新硬件设备。这种可编程性使得网络设备的配置和部署变得更加灵活和高效,提高了网络的可扩展性。 此外,P4语言还为网络中的可编程数据平面开启了创新的空间。网络管理员和研究人员可以通过使用P4语言设计和实现自己的网络协议和网络功能,从而为网络带来更多的功能和优化。P4的灵活性使得网络可以根据需求定制和部署各种功能,例如网络安全、负载均衡、QoS等。 总之,P4语言是一种用于定义和配置网络设备中的数据平面行为的编程语言。它使网络管理员能够灵活定制和配置网络设备,简化设备的开发和部署过程,并为网络的创新和优化提供了更多的可能性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值