前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >腾讯云主机2C2G搭建DPDK+VPP学习平台

腾讯云主机2C2G搭建DPDK+VPP学习平台

作者头像
dpdk-vpp源码解读
发布2024-03-12 08:37:17
1330
发布2024-03-12 08:37:17
举报
文章被收录于专栏:DPDK VPP源码分析DPDK VPP源码分析

随着云计算技术的飞速发展,网络性能优化与高速数据包处理能力的重要性日益凸显。在这个春天,腾讯云新春采购季盛大开启,为广大学习者、开发者和企业提供了一个极具性价比的机会,让您以空前优惠的价格拥有高性能的云服务器,并借此打造专业的VPP+DPDK学习实践平台。

腾讯云主机凭借其业界领先的硬件配置、卓越的稳定性以及强大的安全性,在全球范围内赢得了用户的广泛赞誉。在本次新春采购活动中,腾讯云特别推出了多款高规格云服务器,搭配灵活的存储方案和快速的网络资源,能够完美满足构建基于Vector Packet Processing (VPP) 和 Data Plane Development Kit (DPDK) 技术的学习环境需求。

借助腾讯云服务器,我们可以迅速部署一套完整的VPP+DPDK环境,进行高性能网络协议栈开发、虚拟化网络功能(NFV)、软件定义网络(SDN)等领域的深入探索。这套备受推崇的教程——“dpdk/网络协议栈/vpp/OvS/DDos/SDN/NFV/虚拟化/高性能专家之路”,已在B站上累计了丰富的视频课程,现在配合腾讯云的超值优惠,您可以在云端轻松搭建起与教程配套的实验平台,理论与实战相结合,更快地踏上通往网络技术专家的道路。点击下面图片或者文章末尾阅读原文可以参与腾讯云新春采购节,领取红包购买云主机

当前新用户首购2核2G3M价格61元,新春采购节还可以免费领取购买5-10元优惠券,下面是我实际的购买价格56元,相当实惠。

接下来我们就从github仓库直接下载源码编译搭建DPDK+VPP的学习环境,下面显示下载速度居然达到了9.55MiB/s,不到一分钟的时间就下载完毕了(后面用来下载github代码也相当不错了)。

代码语言:javascript
复制
root@learning-vpp:~/workspace# git clone https://github.com/FDio/vpp.git vpp-master
Cloning into 'vpp-master'...
remote: Enumerating objects: 143901, done.
remote: Counting objects: 100% (606/606), done.
remote: Compressing objects: 100% (361/361), done.
remote: Total 143901 (delta 312), reused 456 (delta 241), pack-reused 143295
Receiving objects: 100% (143901/143901), 103.08 MiB | 9.55 MiB/s, done.
Resolving deltas: 100% (115022/115022), done.

VPP社区有一篇文章《https://lists.fd.io/g/vpp-dev/topic/97500372#22687 在centos 7 VM中构建VPP v23.02时失败》。社区已明确不再支持Centos 7系统,Centos 8系统目前是支持的,但是在编译过程中也可能遇到各种问题。Centos 8的内核版本也比较低,对一些新技术EBPF支持也不好,所以这里推荐使用Ubuntu LTS系统。本文基于Ubuntu 22.04 LTS系统来编译VPP。

下面基本的vpp debug版本编译流程。

代码语言:javascript
复制
安装编译依赖库环境
make install-deps
编译安装外部开发依赖库 dpdk ipsec-mb xdp-tools等等。
make install-ext-deps
编译debug版本,方便学习
make build 

在执行make install-ext-deps时,可以设置dpdk 库debug版本并保留dpdk 符号表方便单步调试代码,请参考文章《Learning VPP: Building DPDK with debug symbols》。

由于购买云主机内存只有2G,ipsec-mb肯定会编译失败的(目前需要……G内存),可以通过创建一个6G的swap内存交换分区来满足8G编译环境要求。

代码语言:javascript
复制
#1、创建一个swap分区目录,使用dd命令创建swapfile分区。
dd if=/dev/zero of=/root/swap/swapfile bs=1M count=6144
chmod 666 /root/swap/swapfile
#2、格式化swap分区
mkswap /root/swap/swapfile
#3、激活分区
swapon /root/swap/swapfile
#4、free查询分区内存设置成功
root@learning-vpp:~/workspace/vpp# free
               total        used        free      shared  buff/cache   available
Mem:         2010904      305264      106384        1860     1599256     1509084
Swap:        6291452       66176     6225276

这里需要注意我们只是临时创建了一个6G的分区,编译完成之后,可以删除分区的,释放6G的存储空间。

代码语言:javascript
复制
#查询分区
root@learning-vpp:~/workspace/vpp# swapon -s
Filename                Type        Size        Used        Priority
/root/swap/swapfile                     file        6291452     66176       -2
# 关闭分区
root@learning-vpp:~/workspace/vpp# swapoff /root/swap/swapfile 
root@learning-vpp:~/workspace/vpp# free 
               total        used        free      shared  buff/cache   available
Mem:         2010904      314912       93116        2756     1602876     1498760
Swap:              0           0           0
root@learning-vpp:~/workspace/vpp# rm /root/swap/swapfile 
root@learning-vpp:~/workspace/vpp# df -h
Filesystem      Size  Used Avail Use% Mounted on
tmpfs           197M 1008K  196M   1% /run
/dev/vda2        40G  8.0G   30G  22% /
tmpfs           982M  208K  982M   1% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           197M  4.0K  197M   1% /run/user/0

接下来添加一个vpp的用户组 groupadd -f -r vpp,就可以启动vpp的学习之旅了。

下面是一个简单配置验证vpp搭建vlan终结子接口配置,在内核可以ping通网关 192.168.1.1。本文就到此,后面详细介绍vlan终结子接口配置及业务转发流程。

代码语言:javascript
复制
#vpp创建二层域及tap10.10子接口,验证vlan终结子接口。
create bridge-domain 10
  bvi create instance 10
  set interface l2 bridge bvi10 10 bvi
  set interface state bvi10 up
  set interface ip address bvi10 192.168.1.1/24

  create tap id 10 host-if-name tap10
  create sub-interfaces tap10 10
  set interface l2 bridge tap10.10 10
  set interface state tap10 up
  set interface state tap10.10 up
  set interface l2 tag-rewrite tap10.10 pop 1

  #内核配置vlan子接口
ip link add link tap10 name tap10.10 type vlan id 10
ip link set tap10.10 up
ip addr add 192.168.1.2/24 dev tap10.10
本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-03-08,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 DPDK VPP源码分析 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com