
두 개의 가상 머신에 대한 호스트 시스템 역할을 하는 Fedora 21이 설치된 머신이 있습니다. VM은 QEMU/KVM/libvirt/virt-manager를 사용하여 구성됩니다. 한 VM은 웹 서버를 실행하고 다른 VM은 클라이언트 역할을 합니다. 클라이언트는 서버를 방문할 수 있으므로 지금까지는 네트워킹이 잘 작동합니다. 내 생각에는 VM의 기본 게이트웨이 역할도 하는 호스트 시스템의 virbr0 인터페이스를 통해 관리되는 것 같습니다.
이제 호스트 컴퓨터에서 가상 컴퓨터의 네트워크 트래픽을 필터링하려고 합니다. 예를 들어, 이를 netfilter 대기열에 넣고 특정 상황에 따라 수락하거나 삭제하고 싶습니다. 예시적인 iptables 규칙은 다음과 같습니다.iptables -I FORWARD -i virbr0 -j NFQUEUE --queue-num 1
일반적으로 대기열에 들어오는 모든 패킷을 삭제하면 VM이 더 이상 인터넷의 웹 사이트를 방문할 수 없기 때문에 작동하는 것 같습니다. 물론 그렇지 않습니다. 기본 게이트웨이는 패킷을 삭제합니다. 지금까지는 괜찮습니다.
하지만 두 VM 간의 트래픽을 중지할 수는 없습니다. 패킷을 삭제하더라도 클라이언트는 웹 서버 VM에서 제공하는 페이지를 로드할 수 있습니다. 이는 가상화가 기본 게이트웨이 없이 두 VM이 연결되는 네트워크를 형성하기 때문이라고 생각합니다.
그렇다면 누군가 iptables와 netfilter 대기열을 통해 두 VM 간의 트래픽을 제어하는 방법을 말해 줄 수 있습니까?
그리고 호스트 컴퓨터에서만 필터 작업을 수행하고 싶습니다. 그리고 전체 트래픽을 차단하려는 의도는 없습니다. 특정 상황에서의 필터링에만 관한 것입니다. 따라서 netfilter 대기열.