第 26 章 使用 xdpdump 捕获包括 XDP 程序丢弃的数据包在内的网络数据包
xdpdump
工具捕获网络数据包。与 tcpdump
工具不同,xdpdump
为此使用扩展的 Berkeley 数据包过滤(eBPF)程序。这也可使 xdpdump
能够捕获快速数据路径(XDP)程序丢弃的数据包。用户空间工具(如 tcpdump
)无法捕获这些被丢弃的数据包,以及 XDP 程序修改的原始数据包。
您可以使用 xdpdump
来调试已附加到接口上的 XDP 程序。因此,实用程序可以在 XDP 程序启动和完成后捕获数据包。在后一种情况下,xdpdump
也捕获 XDP 操作。默认情况下,xdpdump
会在 XDP 程序的入口处捕获传入的数据包。
在 AMD 和 Intel 64 位以外的其他构架上,xdpdump
工具仅作为技术预览提供。红帽产品服务级别协议(SLA)不支持技术预览功能,且其功能可能并不完善,因此红帽不建议在生产环境中使用它们。这些预览可让用户早期访问将来的产品功能,让用户在开发过程中测试并提供反馈意见。
如需有关 技术预览功能支持范围 的信息,请参阅红帽客户门户网站中的技术预览功能支持范围。
请注意,xdpdump
没有数据包过滤或解码功能。但是,您可以将它与 tcpdump
结合使用来解码数据包。
先决条件
- 支持 XDP 程序的网络驱动程序。
-
XDP 程序被加载到
enp1s0
接口。如果没有程序载入,xdpdump
会以与tcpdump
类似的方式捕获数据包,以便向后兼容。
流程
要捕获
enp1s0
接口上的数据包,并将它们写入到/root/capture.pcap
文件,请输入:xdpdump -i enp1s0 -w /root/capture.pcap
# xdpdump -i enp1s0 -w /root/capture.pcap
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您是开发人员,并且您对
xdpdump
的源代码感兴趣,请从红帽客户门户网站下载并安装相应的源 RPM(SRPM)。- 要停止捕获数据包,请按 Ctrl+C。