仮想インターフェイスへのトラフィックがTPROXY宛先を通過する場合、仮想マシン内のポートがホストにアクセスできるようにするにはどうすればよいですか。

仮想インターフェイスへのトラフィックがTPROXY宛先を通過する場合、仮想マシン内のポートがホストにアクセスできるようにするにはどうすればよいですか。

仮想インターフェイスに接続された仮想マシンがあり、その仮想インターフェイスへのすべてのトラフィックがTPROXYトランスペアレントプロキシを介して送信されます。

ip tuntap add tap0 mode tap
ip link set tap0 up
ip addr add 10.0.0.1/24 dev tap0
ip rule add fwmark 1088 table 100

ip rule add fwmark 1088 table 100
ip route add local default dev tap0 table 100
iptables -t mangle -A PREROUTING -i tap0 -p tcp \
  -j TPROXY -s 10.0.0.2 --on-ip 10.0.0.1 \
  --on-port 10000 --tproxy-mark 1088

ホスト側仮想インターフェイスのIPアドレスは10.0.0.1、仮想マシンのIPアドレスは10.0.0.2です。ただし、iptables TPROXYルールはVMアドレスへのすべての接続をブロックするため、ホスト側からVMアドレス(たとえば10.0.0.2:8080)のTCPポートにアクセスできません。

ホスト側からアクセスできる仮想マシンIPのポートを作成するには?

関連情報