次のような設定になっています:
クライアント:
- 192.168.1.* の IP アドレス。
Raspbian ゲートウェイ:
- 192.168.1.20
Raspbian サーバー:
- 192.168.1.19
サーバーはポート 8000 でライブ カメラ フィードをホストしています。
このライブ フィードにゲートウェイ経由でアクセスし、iptables を使用してこれを実現したいと考えています。
次のルールを追加しました:
sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 8000 -j DNAT --to-destination 192.168.1.19
192.168.1.20:8000 にアクセスすると、接続がタイムアウトになります。少し読んでみると、応答を処理する別のルールを作成する必要があることがわかりました。これは、SNAT または MASQUARADE を使用して実行できます。
「クライアント」は異なる IP アドレスを持つことができるため、返信アドレスをハードコードしたくありません。しかし、TCP 要求で提供された送信元 IP アドレスを「記憶」し、応答でそれを「送信者への返信」アドレスとして戻すように iptables に指示するにはどうすればよいでしょうか。
試してみた:
sudo iptables -A POSTROUTING -t nat -o eth0 -j MASQUERADE
動作はしますが、今何をしているのかわかりません。MASQUERADE は何をしていますか?