libpcap은 네트워크 패킷을 어떻게 읽으며 일부 가상 머신에서는 왜 작동하지 않습니까?

libpcap은 네트워크 패킷을 어떻게 읽으며 일부 가상 머신에서는 왜 작동하지 않습니까?

AWS Lambda에서 실행할 때는 libpcap이 네트워크 패킷을 읽는 방법을 이해하고 싶습니다.

내가 아는 한, 관련 Linux 커널 시스템 호출이 네트워크 장치에서 패킷을 읽을 수 있도록 하는 CAP_NET_ADMIN 및 CAP_NET_RAW 함수 중 하나 또는 둘 다 필요합니다.

하지만,내가 아는 한, 가상 머신 환경에서 작업하는 경우 물리적 네트워크 장치에서 패킷을 읽습니다., VM 내부에 생성된 가상의 것이 아닌가요? 그러면 패킷을 읽을 수 있게 됩니다.가상 머신당동일한 호스트에서 실행하면 호스트(예: Lambda)에서 기능이 제거된 이유가 분명합니다.

libpcap이 이런 방식으로 작동하는 이유와 가상 네트워크 장치에서 패킷을 읽을 수 없는 이유가 무엇인지 궁금합니다. 또한 Firecracker MicroVM과 같이 고도로 격리된 환경에서 작동하는 다른 솔루션이 있습니까?

관련 정보