宿題免責条項...
だから、IPアドレスが192.168.0.81
。インコンピュータAがあります。コンピュータにはWebサーバーがインストールされ、ポート80を公開します。したがって、192.168.0.81
ローカルネットワーク上の他のコンピュータのWebブラウザのアドレスバーに入力すると、このページが表示されます。
ただし、このローカルネットワークには別のコンピュータがあります。192.168.0.129
私の使命は、これら2つのコンピュータを構成することです192.168.0.129
。192.168.0.81
送信されたすべてのパケットは192.168.0.81
通過し、192.168.0.129
ポート192.168.0.129
80で受信する必要があります。に転送されるすべてのトラフィックは192.168.0.81
。
試してみることができるソリューション。サーバーでこれを行い、次のように応答を送信するようにします192.168.0.129
。
route add default gw 192.168.0.129
ゲートウェイでこれを実行して、サーバーから外部の世界にトラフィックを転送できることを願っています。
echo 1 > /proc/sys/net/ipv4/ip_forward
ゲートウェイでこれを行い、受信したトラフィックをサーバーに転送してください。
iptables -t nat -A PREROUTING -p tcp -d 192.168.0.129 --dport 80 -j DNAT --to 192.168.0.81:80
しかし、これはうまくいきません。192.168.0.129
ネットワーク上の他のコンピュータのWebブラウザのアドレスバーに()を入力すると、192.168.0.185
このページの代わりにブラウザエラーが表示されます。私は何が間違っていましたか?
何が起こっているのかを知るために、両方のコンピュータで発行してすべてのパケットを記録してみました。
iptables -A INPUT -j LOG
iptables -A OUTPUT -j LOG
結果は次のとおりです。サーバーは元の要求者からパケットを受信し、いくつかのパケットを再送信しようとするようです。次の項目が表示されます。
Dec 19 23:23:25 debian kernel: (...) IN= OUT=eth0 MAC=(...) SRC=192.168.0.185 DST=192.168.0.81 LEN=60 TOS=0x00 PREC=(blah blah this and subsequent stuff omitted for brevity)
Dec 19 23:23:25 debian kernel: (...) IN= OUT=eth0 SRC=192.168.0.81 DST=192.168.0.185 LEN=60 TOS=0x00 PREC=(...)
ただし、ゲートウェイログには関連トラフィックが表示されないようです。
この問題をどのように解決しますか?