安装 netmap

本文介绍了如何在Linux系统中安装和配置netmap内核模块,包括获取内核头文件、选择合适的驱动(如virtio_net.c)、编译和加载模块,以及运行测试。特别提到CentOS系统可能需要额外步骤,而Ubuntu则有所不同。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

netmap是作为Linux的一个内核模块存在的,安装netmap需要我们拿到netmap的源代码(不需要获取所有的linux代码,只需要linux头文件就可以了)并结合Linux内核源代码进行编译。

安装Kernel头文件

Note: 只有centos系统才需要这一步,ubuntu系统直接看下一步即可。
安装的头文件需要和内核的版本完全一致才可以。通过uname -a 命令查看内核版本:
在这里插入图片描述
通过 google 搜索 3.10.0-1160.99.1.el7.x86_64 ,搜索该内核版本。然后点击下载即可,如图所示:
在这里插入图片描述
下载成功之后是个 rpm 文件,将其移动到想要安装 netmap 的服务器,使用 rpm -ivh 3.10.0-1160.99.1.el7.x86_64.rpm 安装即可。安装完成之后可以在 /usr/src/kernels/ 目录下看到
在这里插入图片描述

安装 netmap

  1. 下载 netmap 源码 git clone https://github.com/luigirizzo/netmap.git
  2. cd LINUX
  3. ./configure --show-drivers指令查看netmap支持的网络驱动
    在这里插入图片描述
  4. ethtool -i <interface_name> 指令查看网卡驱动
    在这里插入图片描述
  5. 配置netmap ./configure --drivers=virtio_net.c --kernel-sources=/usr/src/kernels/3.10.0-327.el7.x86_64 --kernel-dir=/usr/src/kernels/3.10.0-327.el7.x86_4/(virtio_net.c是netmap需要使用的网卡驱动程序,如果是 ubuntu 不用指定 kernel-sourceskernel-dir
  6. make -j8 && make install
  7. insmod netmap.ko将编译出来的 netmap 内核模块加载到内核中。内核模块是一种可以动态地插入到运行中的内核中的代码,它们允许在无需重新启动系统的情况下扩展或修改内核功能。

Note: lsmod 指令可以查看内核已经加载的模块。insmod 指令加载的内核模块在每次内核重启之后都需要重新加载。

  1. 运行 ./build-apps/pkt-gen/pkt-gen -i eth0 -f rx 进行收包测试,如果是 ssh 连接到服务器的别擅自尝试,会导致断线,因为此时内核协议栈变成了旁路。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值