安装
文档中安装步骤适用于所有需要部署运行K-NET的物理机或虚拟机。
安全检查
检查Glibc版本
ldd --version
Glibc 2.10及以上版本会开启堆栈保护,若查询出来的版本低于2.10,建议升级至2.10以上。
检查ASLR是否开启
ASLR是一种针对缓冲区溢出的安全保护技术,通过地址布局的随机化,增加攻击者预测目的地址的难度。
cat /proc/sys/kernel/randomize_va_space
若结果不为2,请执行以下命令开启ASLR。
bash -c 'echo 2 >/proc/sys/kernel/randomize_va_space'
安装依赖包
-
安装系统依赖。
yum install -y libcap-devel tar gzip vim -
安装部署工具依赖。
yum install -y jq -
安装libboundscheck依赖。
- openEuler操作系统下:
yum install -y libboundscheck- CTyunOS操作系统下请参考:https://atomgit.com/openeuler/libboundscheck/blob/v1.1.16/README.md。
安装DPDK
参考版本配套关系确认需要安装的DPDK版本,如果已经安装对应版本的DPDK,且不需要抓包功能,可跳过以下DPDK的安装流程。 可先通过pkg-config查询DPDK版本:
pkg-config --modversion libdpdk 2>/dev/null || echo "未找到DPDK或pkg-config未配置"
如果回显未显示DPDK版本,建议检查是否安装了DPDK或重新安装DPDK。
在安装DPDK时应避免直接使用Yum源,因为Yum源安装的版本存在不可控风险。
-
安装DPDK需要的依赖。
yum install -y gcc meson ninja-build numactl-devel python3-pyelftools libnl3 libnl3-devel -
下载DPDK软件包,以安装路径“/home/opt”、DPDK版本21.11.7为例。
mkdir /home/opt cd /home/opt wget https://fast.dpdk.org/rel/dpdk-21.11.7.tar.xz说明
若执行wget命令出现错误“ERROR: The certificate of ‘xxxxx’ is not trusted”,请在命令末尾增加“--no-check-certificate”参数。
-
解压软件包。
tar -xf dpdk-21.11.7.tar.xz cd dpdk-stable-21.11.7 -
安装驱动程序。
meson -Ddisable_drivers=net/cnxk -Dibverbs_link=dlopen -Dplatform=generic -Denable_kmods=false -Dprefix=/usr build回显示例:

ninja -C build回显示例:

ninja install -C build回显示例:

安装dpdk-hinic3驱动
-
获取hinic3 PMD源码。
cd /home/opt/ git clone https://atomgit.com/openeuler/dpdk/.git -b hinic3_master dpdk-hinic3_master -
获取配套版本的tag。
配套的dpdk-hinic3版本请见版本配套表,跳转查看对应的commitid。
以下为commitid位置示例:

-
切换至配套版本tag。
说明
命令中的<commitid>请以实际获取值替换。
cd dpdk-hinic3_master git checkout <commitid> -
编译。
sh install.sh ../dpdk-stable-21.11.7 install sh install.sh ../dpdk-stable-21.11.7 build -
安装。
cp -d ./../dpdk-stable-21.11.7/build/drivers/librte_net_hinic3.so{,.22,.22.0} /usr/lib64/ ls -l /usr/lib64/librte_net_hinic3.so* ldconfig说明
{,.22,.22.0}根据实际DPDK版本替换,以DPDK 21.11.7版本为例,此处DPDK的so版本为21 + 1,即为22。
(可选)安装抓包工具
说明
- 启用K-NET抓包功能才需要参考以下步骤安装,无需抓包可直接跳过以下步骤。
- 以下提到的“dpdk-stable-21.11.7”为DPDK解压所得目录,其他版本DPDK需自行适配。
-
安装抓包工具依赖。
yum install -y libpcap-devel libpcap make -
确保“dpdk-stable-21.11.7/app/dumpcap”目录下只有DPDK示例程序main.c和meson.build。若该目录下有其他文件,建议用户迁移至其他路径。
-
请参见Gitee获取dpdk-21.11.7-dumpcap.patch并上传至“dpdk-stable-21.11.7/app”目录。
-
进入“dpdk-stable-21.11.7/app”目录,应用patch。
patch -p1 -d dumpcap/ < dpdk-21.11.7-dumpcap.patch -
进入dumpcap目录,执行make得到适配K-NET的dumpcap。
cd dumpcap make说明
如果编译失败,是由于缺少头文件或动态库,请检查Makefile中DPDK头文件路径INCLUDEDIR、DPDK动态库路径LDDIR、libpcap动态库路径LIBPCAPDIR下是否存在相应库或头文件,若不存在,安装后修改路径确保该路径下有对应文件。
-
授予驱动和编译抓包程序执行权限。
说明
若为root用户可跳过此步骤。
chmod a+s /usr/lib64/librte_net_hinic3.so setcap cap_sys_rawio,cap_dac_read_search,cap_sys_admin+ep dumpcap -
(可选)若需要编译DPDK应用于其他业务时,请消除dpdk-21.11.7-dumpcap.patch的影响,操作顺序如下:
-
请先确保在“dpdk-stable-21.11.7”目录下。
cd ./app/dumpcap -
删除文件使得最后保留main.c Makefile meson.build三个文件。
make clean rm *.pcap -
回退到“dpdk-stable-21.11.7/app”目录。
cd ../ -
撤销patch变更。
patch -p1 -Rd dumpcap/ < dpdk-21.11.7-dumpcap.patch -
撤销后“dpdk-stable-21.11.7/app/dumpcap”恢复到源码刚解压后的状态,即只包含main.c和meson.build。
ls dumpcap回显示例:
main.c meson.build
-
安装K-NET
单服务器快捷部署时,请参考命令行安装方式。多个服务器批量部署时,请参考Computing ToolKit批量安装。请用户根据实际安装规模选择。
命令行安装
-
下载K-NET源码并编译。 此处以/home/knet-repo目录为例。
mkdir -p /home/knet-repo cd /home/knet-repo git clone https://atomgit.com/openeuler/knet.git -
切换到配套版本tag。 如果需切换的K-NET版本为26.1.RC1,则commitid为63f60f93。
说明
命令中的<commitid>请以实际获取值替换。
cd knet git checkout <commitid> -
编译构建RPM包。
python3 build.py rpm -
安装K-NET。
若首次安装,执行以下命令:
-
鲲鹏架构:
rpm -ivh build/rpmbuild/RPMS/knet-1.4.0.aarch64.rpm -
x86架构:
rpm -ivh build/rpmbuild/RPMS/knet-1.4.0.x86_64.rpm
成功回显如下:
Verifying... ###################################[100%] Preparing... ###################################[100%] Updating/installing... 1:knet-1.4.0-1 ###################################[100%] Cleaning up/removing...若安装过K-NET,执行以下命令直接升级:
-
鲲鹏架构:
rpm -Uvh build/rpmbuild/RPMS/knet-1.4.0.aarch64.rpm --force --nodeps -
x86架构:
rpm -Uvh build/rpmbuild/RPMS/knet-1.4.0.x86_64.rpm --force --nodeps
成功回显如下:
Verifying... ###################################[100%] Preparing... ###################################[100%] Updating/installing... 1:knet-1.4.0-1 ###################################[100%] Cleaning up/removing... -
Computing ToolKit批量安装
对于Computing ToolKit方式的安装部署方法,请参见批量运维,将安装命令替换为如下,以ARM环境初次安装K-NET为例:
cd /path; rpm -ivh knet-1.4.0.aarch64.rpm
说明
“/path”为用户传输K-NET的RPM包路径,请根据实际填写。