libpcap如何读取网络数据包,为什么在某些虚拟机中无法运行?

libpcap如何读取网络数据包,为什么在某些虚拟机中无法运行?

我有兴趣了解 libpcap 如何读取网络数据包,因为我发现在 AWS Lambda 上运行时这是不可能的

据我所知,您需要 CAP_NET_ADMIN 和 CAP_NET_RAW 功能之一或两者,这将允许相关的 Linux 内核系统调用从网络设备读取数据包

然而,据我所知,如果您在虚拟机环境中操作,您将从物理网络设备读取数据包,不是在VM内部创建的虚拟的吗?这将导致能够读取数据包每个虚拟机在同一主机上运行,​​这显然就是从主机(例如 Lambda)中删除该功能的原因。

我想知道为什么 libpcap 以这种方式工作,以及为什么它不能从虚拟网络设备读取数据包?另外,是否还有其他解决方案可以在高度隔离的环境中工作,例如 Firecracker MicroVM?

相关内容