NATゲートウェイとして機能し、KVM仮想マシンをホストするUbuntuボックスがあります。 libvirt qemuフックを使用してポートをKVM仮想マシンの1つに転送するためのガイドに従いましたが、これはすべての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 へのトラフィックのみを転送するにはどうすればよいですか。