VPP使用DPDK纳管主机网卡

4ac78312594856cd28a74d4465d4e685.gif

正文共:888 字 24 图,预估阅读时间:1 分钟

我们之前安装的VPP版本是20.09安装一个VPP 20.09,现在看官网版本已经更新到22.06.0了。

我们先用命令yum update vpp -y看一下YUM仓库里面更新版本了没有。

cafc90afe6a184ec35f81cd19dbf89d0.png

确认一下。

f939b57740dbde5060e2eb986f7cbcb7.png

确实,仓库里面最新版本还是20.09,那就还用这个版本吧。

在DPDK官网,关于部署有相关文档,但是没有和VPP对应的20.09这个版本,所以我选择安装20.11这个版本,毕竟正常都应该是向下兼容的。

ef396aaf7459638ab94c29c261d62e70.png

而且20.11.5这个版本还是一个LTS版本。

b524d1947be325e6fa0eb1f937bdfa7a.png

首先检查一下对系统的要求,一上来就发现要求内核版本不低于3.16,可以使用命令uname -r检查内核版本。

4836442a89910619923de007b19c61b3.png

很不幸,第一条就不满足。不过我们已经掌握了升级内核的方法EOL的CentOS 8如何升级内核版本?,可以直接升级,我这次将内核版本升级到了5.4.197-1.el7.elrepo.x86_64。

42408116b792b20b66bbcfd69a946ff7.png

然后就是glibc版本不低于2.7,可以使用命令ldd --version来检查,还好版本是2.17,满足要求。

37e6039887b0ecef7266aa7d6b7bfb8a.png

对C编译器的要求为gcc版本不低于4.9,或者clang版本不低于3.4。好在内核升级之后gcc版本对应的升级到了9.3.1,满足要求。

b8f1be25961b3fff5c54706e6e338dbd.png

要求Python版本不低于3.5,前面安装的版本是3.6.8,满足要求。

fb7ee215522955938933926be5fc0399.png

要求0.47.1版本以上的meson,还要有ninja,可以直接使用命令pip3 install meson ninja从Python的pip仓库中安装最新版本。

747f55606f9ff6bc8ba9e81be777f3d9.png

可以看到,直接安装了0.61.4版本的meson和1.10.2.3版本的ninja,满足要求了。

还要再装一个NUMA (Non Uniform Memory Access)的库,可以直接使用命令yum install -y numactl numactl-libs numactl-devel进行安装。

4d780c472a4b533083be7bbb91e30791.png

环境基本准备到位了,现在开始安装DPDK。

首先下载20.11.5的安装包。

wget http://fast.dpdk.org/rel/dpdk-20.11.5.tar.xz

6e0a1c59e2cbeca5fb75bf4ff77973f8.png

解压并进到安装目录下。

02e82f0b84c435694302c63d13842dbb.png

构造DPDK的库、驱动程序和测试应用程序等。

meson build
ninja -C build

b9a55808a4769fee2b8786307eb80676.png

配置为DPDK预留大页内存。

mkdir -p /dev/hugepages
mountpoint -q /dev/hugepages || mount -t hugetlbfs nodev /dev/hugepages
echo 64 > /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages

7831849ef46fdb4f495add59e9dae701.png

默认情况下,VPP不会尝试使用内核正在使用的接口。为了让VPP将接口绑定到 DPDK,我们需要将对应的接口DOWN掉,然后通过在VPP配置文件中绑定接口对应的PCI地址来绑定到DPDK。

b1be5d69c5a11a751f3d5a9671f58a49.png

我们可以通过命令lshw -class network -businfo来查看主机的接口信息。

c39cdf3dc354cf3078d852bc7e4494e8.png

或者通过命令ethtool -i ens224一个一个地查看。

6ad738d6bdeb291a5828893e5dca38c9.png

比如说我要将ens224这个网卡绑定到DPDK,首先查看VPP接口信息,可以看到只有一个local0接口。

f5575db0b07a60f88f89c5e2335e8739.png

然后DOWN掉ens224接口。

56e2de7bd3f6903492d0e7679a2bd138.png

修改/etc/vpp/startup.conf中DPDK的配置。

a86b612b950f3e321034d1053198978a.png

重启VPP。

ce5dba0bd1849e85147b6d2e6b4014ad.png

可以看到,在宿主机上已经看不到ens224接口了,对应的,可以在VPP中看到eth1接口。

然后在VPP中使能接口,并为其配置IP地址。

vppctl set interface state eth1 up
vppctl set interface ip address eth1 192.168.1.88/24

89933ad65a1c9f366e7a8e32353d752e.png

测试一下到网卡地址的连通性。

24cca2d28bb796d0dade4d98505b7158.png

OK,齐活!

f9828a4913ed0836b046978e62ab99a8.gif

长按二维码
关注我们吧

dd228b831843199743c775f01d567e4c.jpeg

f48d043137fddd26df79b92f902f7d8c.png

openEuler操作系统难道是CentOS的换壳?

EOL的CentOS 8如何升级内核版本?

对VNF进行测试时有哪些注意事项?

SSL VPN配置Web接入方式案例

SSL VPN配置TCP接入方式案例

strongSwan穿越NAT与公网VSR对接IPsec配置案例

用BGP的路由聚合功能聚合大陆路由,效果显著不?

SRv6典型配置

  • 17
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要配置FD.io VPPDPDK,您可以按照以下步骤进行操作: 1. 安装DPDK:首先,确保您的系统符合DPDK的要求,并按照DPDK官方文档中的说明进行安装。您可以从DPDK官方网站上下载DPDK的源代码,并按照提供的说明进行编译和安装。 2. 配置DPDK环境变量:设置DPDK环境变量,包括`RTE_SDK`和`RTE_TARGET`。`RTE_SDK`指向DPDK源代码目录的路径,`RTE_TARGET`指定您要构建的目标平台。例如,在bash shell中,您可以使用以下命令设置环境变量: ``` export RTE_SDK=/path/to/dpdk export RTE_TARGET=<target> ``` 3. 配置VPP:安装FD.io VPP并启动VPP进程。您可以从FD.io VPP官方网站上获取安装说明,并根据指南进行安装。在启动VPP之前,确保您已正确配置了DPDK。 4. 配置VPPDPDK集成:编辑VPP的运行时配置文件,通常是位于`/etc/vpp/startup.conf`。将DPDK驱动程序与VPP绑定,指定所需的物理接口和CPU核心。 例如,要将DPDK绑定到VPP并配置两个物理接口(例如eth0和eth1),可以在配置文件中添加以下内容: ``` dpdk { dev <DPDK_DEVICE_NAME> { num-rx-queues <NUM_RX_QUEUES> num-tx-queues <NUM_TX_QUEUES> socket-mem <SOCKET_MEM> } } interface <INTERFACE_NAME> { dpdk <DPDK_DEVICE_NAME> } ``` 在上述配置中,您需要将`<DPDK_DEVICE_NAME>`替换为DPDK设备名称(例如`0000:00:00.0`),`<NUM_RX_QUEUES>`和`<NUM_TX_QUEUES>`分别是接收和发送队列的数量,`<SOCKET_MEM>`是用于DPDK内存的分配。 5. 启动VPP使用VPP启动命令启动VPP进程,例如: ``` sudo vpp -c /etc/vpp/startup.conf ``` 在启动VPP后,它将根据配置文件中的设置与DPDK集成。 请注意,这只是简单的配置示例,您可能需要根据您的特定需求进行更详细的配置。您可以参考FD.io VPPDPDK的官方文档以获取更多详细信息和配置选项。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Danileaf_Guo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值