nlmon 接口

nlmon 是 Netlink Monitor 接口,可以窥探 Netlink 的交互流程。

首先,确认内核配置是否启用该功能:

~$ grep NLMON /boot/config-$(uname -r)
CONFIG_NLMON=m

从返回值来看,模块已编译,但未加载,使用以下命令加载并创建接口:

sudo modprobe nlmon
sudo ip link add nlmon0 type nlmon
sudo ip link set nlmon0 up
sudo tcpdump -i nlmon0 -w nlmsg.pcap
  • tcpdump 不支持解析 Netlink ,需交由其他软件处理。

  • Wireshark 可解码常见报文,其余协议需编写 lua 插件。

  • Wireshark 和 tcpdump 配合,进行远程抓包是不错的方案。

  • Wireshark 解码依赖 ID 和模块映射关系,因此报文不能随意拆分。

待处理

ID 和模块映射关系建议阅读 netlink 篇章,尚未完成。