VPP使用DPDK纳管主机网卡

简介: VPP使用DPDK纳管主机网卡


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

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

确认一下。

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

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

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

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

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

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

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

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

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

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

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

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

首先下载20.11.5的安装包。

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

解压并进到安装目录下。

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

meson build
ninja -C build

配置为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

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

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

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

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

然后DOWN掉ens224接口。

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

重启VPP。

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

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

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

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

OK,齐活!


相关文章
|
9月前
|
5G 网络架构 索引
安装一个开源虚拟路由器VPP-20.09
安装一个开源虚拟路由器VPP-20.09
|
9月前
|
网络协议 Linux 网络架构
Linux三种网络模式 | 仅主机、桥接、NAT
Linux三种网络模式 | 仅主机、桥接、NAT
1176 0
|
5月前
|
KVM 虚拟化
KVM的热添加技术之网卡管理
文章详细介绍了如何在KVM虚拟机中进行网卡的热添加和热移除操作,包括查看环境、添加和移除网卡的命令,以及如何指定不同的虚拟网卡模型,同时提供了一些操作时的注意事项和永久配置的方法。
108 3
KVM的热添加技术之网卡管理
|
9月前
|
网络协议 Linux SDN
虚拟网络设备与Linux网络协议栈
在现代计算环境中,虚拟网络设备在实现灵活的网络配置和隔离方面发挥了至关重要的作用🔧,特别是在容器化和虚拟化技术广泛应用的今天🌐。而Linux网络协议栈则是操作系统处理网络通信的核心💻,它支持广泛的协议和网络服务🌍,确保数据正确地在网络中传输。本文将深入分析虚拟网络设备与Linux网络协议栈的关联,揭示它们如何共同工作以支持复杂的网络需求。
|
网络协议 虚拟化 网络架构
VM虚拟机三种网络配置详解(桥接、NAT、仅主机)
VM虚拟机三种网络配置详解(桥接、NAT、仅主机)
518 0
|
网络协议 Linux
Linux网络协议栈(三)——网络设备(1)
网络设备(network device)是内核对网络适配器(硬件)的抽象与封装,并为各个协议实例提供统一的接口,它是硬件与内核的接口,它有两个特征:(1)    作为基于硬件的网络适配器与基于软件的协议之间的接口;(2)    内核协议栈异步输入输出点。
1300 0
|
网络安全 虚拟化
vmware虚拟机和网络中的桥接和NAT
vmware虚拟机和网络中的桥接和NAT 有许多人在网上回答类似的问题,但大多说的不够简单,且互相抄袭的嫌疑很大,这里我尽自己努力把问题说的明白一些 首先解释一下什么是NAT(network address translation ) NAT 从字面来看也能看出来他主要是用来转换网络地址,他出...
1402 0
|
Linux KVM 网络虚拟化
Linux 虚拟网络设备详解之 Bridge 网桥
Linux 虚拟网络设备详解之 Bridge 网桥 Bridge 是什么 同 tap/tun、veth-pair 一样,Bridge 也是一种虚拟网络设备,所以具备虚拟网络设备的所有特性,比如可以配置 IP、MAC 等。
2807 0
|
网络协议 Linux 调度
Linux网络协议栈(三)——网络设备(2)
2.1、网络设备的注册与注销注册网络设备发生在下列情形: (1)加载网卡驱动程序   网卡驱动程序如果被编译进内核,则它在启动时被初始化,在运行时被作为模块加载。无论初始化是否发生,所以由驱动程序控制的网卡都被注册。
902 0