TCPポート80を正しいマシンに汎用的に送信するようにiptablesをどのように設定しますか(これはすべて同じサブネット内にはありません)。
例:
[。] iptables -t nat -A PREROUTING -s 0.0.0.0//0 -p tcp -d $NATIP -j DNAT --to-destination $machineIP
_
iptables -t nat -A POSTROUTING -s $machineIP -p tcp -d 0.0.0.0//0 -j SNAT --to-source $NATIP
上記は単一のマシンとの間でパケットを正しく送信しますが、Nマシンに対してどのようにして行われますか。 192.168.1.0/25のような一般的な目的地を信じていないので。
カムバックが正しいIPに送ることができるように、どういうわけかパケットにタグを付けますか?
[。ね。]これは他のコマンドで行われますか?
最初にいくつかの考慮事項。あなたが持っている場合 0.0.0.0/0
ソースまたは宛先として、ルールに指定する必要はありません。
あなたの質問を考えると、あなたが各マシンのNATIP
を持っているならば、それは各マシンに1対のルールを作るという問題です。同じNATIP
を複数のマシンに使用したい場合は、ポートではない場合は区別するには、送信元IPです。そうでなければiptables、それ自体は、パッケージの送信先を選択できません。 (この問題に戻ります)
出力NAT]にすることができます。各マシンの場合は、1ルールを作成したり、テーブルを作成したり、翻訳したいすべてのIPとサブネットを設定したりできます。
iptables -t nat -N addrTranslate
iptables -t nat -A OUTPUT -s x.x.x.x -j addrTranslate
iptables -t nat -A OUTPUT -s y.y.y.y/24 -j addrTranslate
iptables -t nat -A addrTranslate -j SNAT --to z.z.z.z
_
複数のMachine NAT]の1つの代替案は、Apacheを使用してプロキシを設定することです。