28
2025
03
16:45:44

DPDK网卡纳管

安装VPP后(VPP基本安装),直接进行了网卡纳管。配置DPDK接管虚拟机网口ens36,纳管前需将其down掉才可以纳管:



配置文件startup.config在/etc/vpp目录下。配置前需要确认网卡对应的PCI号:



要接管的网卡ens36 PCI为02:04.0,vi /etc/vpp/startup.conf,取消dpdk的注释,在## Set interface name下添加如下信息:

dev 0000:02:04.0 { name eth0 }


name可以自己定义,如下截图所示:



然后安装dpdk驱动:

modprobe uio //加载驱动模块insmod igb_uio.ko //加载驱动


但此时就出问题了,提示没有这个驱动模块:



此时重启VPP登录后查看没有eth0接口,表示没有纳管成功:



内核态查看也没有ens36接口:



ip addr命令查看的是内核态下接口,目前看内核态像是被用户态的DPDK纳管了,但登录VPP又没有纳管。那么接口去哪了呢?

查询说可能是vpp自带的驱动无法正常使用,于是重新下载DPDK,用DPDK加载下驱动模块试试。




1.下载DPDK安装包


进入官网core.dpdk.org/download/



下载19.08.2版本:



然后解压:

tar -xf dpdk-19.08.2.tar.xz






2.配置环境变量


RTE_SDK:指向DPDK的安装目录

RTE_TARGET:指向DPDK的目标环境目录


export RTE_SDK='/opt/dpdk-stable-19.08.2' //引号中为dkdk的解压目录export RTE_TARGET=x86_64-native-linuxapp-gcc //对于64位机用这个命令,对于32位机用i686-native-linuxapp-gcc






3.安装DPDK


进入DPDK安装脚本目录,执行./dpdk-setup.sh



步骤1:选择编译的DPDK环境

可以查看:



本系统选择36:



编译完成结果:



步骤2:执行43,加载IGB_UIO模块



完成加载:



步骤3:输入49,绑定网卡



输入48,显示当前网卡绑定信息:



查看igb_uio加载成功:



进入VPP配置文件vi /etc/vpp/startup.conf,将驱动改为 igb_uio:

(igb_uio 是 dpdk 内部实现的将网卡映射到用户态的内核模块)



修改后重新启动VPP,systemctl restart vpp,vppctl进入交互界面,show int 可以看到已经成功接管网口,且名称为eth0:



set int state eth0 up //启动eth0接口



set int ip address eth0 192.168.83.133/24 //给eth0配置IP



Ping测试ens33接口地址,可以ping通:



可以理解为一个vswitch下连接ens33和ens36,ens36映射到用户态变成eth0接口,配置同网段地址,所以可以互通。

到这里,环境就搭建完毕了。



注意事项

  • DPDK18.11建议系统内核版本>=3.2,自19.02建议系统内核版本>=3.16。

  • 步骤1时遇到报错1:

  • /bin/sh: line 1: cc: command not found

提示找不到cc命令,可能缺少gcc,安装gcc包解决:

yum -y install gcc gcc-c++ libstdc++-develyum install gcc build-essential -y


  • 步骤1时遇到报错2:


opt/dpdk-stable-19.08.2/lib/librte_eal/linux/eal/eal_memory.c:32:18: fatal error: numa.h: No such file or directory



报错提示numactl-de没有安装,yum install -y numactl-devel解决。

关于vpp自带的igb_uio驱动不可用问题,后面需要再验证下。




推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

本文链接:https://hqyman.cn/post/9930.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:
打赏





休息一下~~


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

请先 登录 再评论,若不是会员请先 注册

您的IP地址是: