libvirt 후크를 통한 포트 전달이 외부 NAT 트래픽을 가로채는 이유는 무엇입니까?

libvirt 후크를 통한 포트 전달이 외부 NAT 트래픽을 가로채는 이유는 무엇입니까?

NAT 게이트웨이 역할을 하고 KVM 가상 머신을 호스팅하는 Ubuntu 상자가 있습니다. libvirt qemu 후크를 사용하여 포트를 KVM 가상 머신 중 하나로 전달하는 가이드를 따랐지만 이는 또한 모든 NAT 상자에서 이러한 포트로 나가는 연결을 가로채는 것 같습니다.

eno0 = 192.168.70.1 = NAT 게이트웨이의 내부 인터페이스

eno1 = 10.240.45.45 = NAT 게이트웨이의 외부 인터페이스

virbr0 = 192.168.122.1 = KVM 가상 머신용 브리지

KVM 게스트 IP = 192.168.122.81

/etc/libvirt/hooks/qemu:

if [ "${1}" = "myvm" ]; then

   GUEST_IP=192.168.122.81

   if [ "${2}" = "stopped" ] || [ "${2}" = "reconnect" ]; then
        /sbin/iptables -D FORWARD -o virbr0 -d  $GUEST_IP -j ACCEPT
        /sbin/iptables -t nat -D PREROUTING -p tcp -d 10.240.45.45 --dport 443 -j DNAT --to $GUEST_IP:443
   fi
   if [ "${2}" = "start" ] || [ "${2}" = "reconnect" ]; then
        /sbin/iptables -I FORWARD -o virbr0 -d  $GUEST_IP -j ACCEPT
        /sbin/iptables -t nat -A PREROUTING -p tcp -d 10.240.45.45 --dport 443 -j DNAT --to $GUEST_IP:443
   fi
fi

이렇게 하면 10.240.45.45를 가리키는 외부 호스트의 트래픽이 올바르게 전달됩니다. 하지만 다음을 포함한 HTTPS 페이지에 액세스하려고 하면https://google.com) NAT 뒤에 있는 시스템에서 하이재킹되어 외부 호스트로 이동하는 대신 가상 머신으로 리디렉션됩니다.

-d 매개변수를 무시하는 이유는 무엇이며 10.240.45.45에 대한 트래픽만 전달하도록 하려면 어떻게 해야 합니까?

관련 정보