NAT OUTPUTチェーンとNAT POSTROUTINGチェーンの違いは何ですか?

NAT OUTPUTチェーンとNAT POSTROUTINGチェーンの違いは何ですか?

NATテーブルのOUTPUTチェーンでNatingが行われた場合、POSTRでSNATの役割は何ですか?

NAT テーブルの OUTPUT チェーンで Nating を実行する場合、POSTROUTING で SNAT の役割は何ですか?

答え1

確認してみてくださいチャート。緑色のボックスはを表し、iptables青いボックスはを表しますebtables(無視)。

OUTPUTしたがって、ローカルアプリケーションによって生成されたパケットのみがチェーンを通過するのに対して、他の場所POSTROUTINGからルーティングされたパケットを含むすべてのパケットはチェーンを通過することを見ることができます。

NAT(Network Address Translation)には2つのサブケースがあります。SNAT変換源泉データパケットのアドレス、DNAT変換目的地パケットのアドレスです。

どのチェーンでも次のいずれかを実行できます。 DNATを実行できnat/PREROUTINGnat/OUTPUT同時にSNATnat/POSTROUTINGnat/INPUT実行できます(まだ有効であるかどうかわからない)。

答え2

@x-yuri私も出力NATについて混乱しましたが、ついに答えを得ました。ルートの前の NAT とルートの後の NAT の両方は、一部のパケットがインターフェイスに入ってくるときにそのアドレスを NAT したい外部 NAT に適しています。ただし、OUTPUT NATはローカルネットワークNATで動作します。つまり、パケットがアプリケーションで開始されるときを意味します。私はこれがこれをよりよく理解する良い例だと思います。 Nginxが行うように透過的にプロキシされるトラフィックのポートとIPアドレスを変更したい場合。次のようなものを使用できます。

iptables -t nat -A出力-p tcp --dport 80 -j DNAT --ターゲット192.168.100.10:8080

ポート8080でリッスンしているネットワーク192.168.100.10の別のホストにポート80のトラフィックを送信します。

私の考えでは、それが私が望むのが事実であり、あなたが要求するものではないかと思います。

関連情報