前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >bpftool使用方法简介

bpftool使用方法简介

作者头像
233333
发布2024-01-02 09:30:07
6030
发布2024-01-02 09:30:07
举报

1、安装bpftool工具

看起来,在不同的linux发行版里,bpftool在不同的软件包里,ubuntu 22上,bpftool是linux-tools-generic的一部分,而树莓派里bpftool是一个单独的软件包。

在ubuntu上:

代码语言:javascript
复制
sudo apt install linux-tools-generic

在树莓派上:

代码语言:javascript
复制
sudo apt install bpftool

然后用whereis命令就可以查看到安装情况

代码语言:javascript
复制
xxx@xxx-pc:~$ whereis bpftool
bpftool: /usr/sbin/bpftool /usr/share/man/man8/bpftool.8.gz

有些发行版本上可能还需要自行从Linux下载源代码后安装(从源代码开始安装的方法介绍to be update)

2、bpftool简介

BPFTOOL 是linux内核自带的用于对eBPF程序和eBPF map进行检查与操作的工具软件。注意,依赖于内核版本和bpftool的版本的不同,实际使用与输出可能会与本文略有出入。

3、bpftool的常用功能

  • sudo bpftool prog list: 显示所有已经被load到系统里的eBPF程序的信息列表,除了显示功能外,还支持dump等功能,可以通过man bpftool prog来查看具体支持的功能。
  • bpftool net list 显示内核网络子系统里的eBPF程序,除了显示功能外,还支持其它功能,可以通过man bpftool net来查看具体支持的功能。
  • bpftool link list 显示所有激活的链接,除了显示功能外,还支持其它功能,可以通过man bpftool link来查看具体支持的功能。
  • bpftool perf list 显示系统里所有raw_tracepoint, tracepoint, kprobe attachments ,除了显示功能外,还支持其它功能,可以通过man bpftool perf来查看具体支持的功能。
  • bpftool btf list 显示所有BPF Type Format (BTF)数据 ,除了显示功能外,还支持其它功能,可以通过man bpftool btf来查看具体支持的功能。
  • bpftool map list 显示系统内已经载入的所有bpf map数据,除了显示功能外,还支持其它功能,可以通过man bpftool map来查看具体支持的功能。
  • bpftool feature probe dev eth0 查看eth0支持的eBPF特性 。

4、使用bpftool查看eBPF程序运行情况的一个例子

在文章XDP入门–eBPF程序实现网桥/二层交换机转发功能中,我们往eth0和eth1载入了根据目标MAC转发数据包的eBPF字节码,在这个程序中,我们用了

  • 一个叫xdp_bridge_prog()数据包处理函数
  • 一个叫mac_port_map的map数据库

用以下二条命令我们就可以查看到上述信息,并用bpftool map dump功能来查看map里的内容

代码语言:javascript
复制
xxx@raspberrypi:~ $ sudo bpftool prog list | tail -n 4
	xlated 64B  not jited  memlock 4096B
21: xdp  name xdp_bridge_prog  tag 610be6df09f4715b  gpl
	loaded_at 2023-05-31T13:57:17+0800  uid 0
	xlated 704B  not jited  memlock 4096B  map_ids 1
代码语言:javascript
复制
xxx@raspberrypi:~ $ sudo bpftool map list
1: hash  name mac_port_map  flags 0x0
	key 8B  value 4B  max_entries 100  memlock 4096B
xxx@raspberrypi:~ $ sudo bpftool map dump id 1
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-01-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、安装bpftool工具
  • 2、bpftool简介
  • 3、bpftool的常用功能
  • 4、使用bpftool查看eBPF程序运行情况的一个例子
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档