答え1
確認してみてくださいチャート。緑色のボックスはを表し、iptables
青いボックスはを表しますebtables
(無視)。
OUTPUT
したがって、ローカルアプリケーションによって生成されたパケットのみがチェーンを通過するのに対して、他の場所POSTROUTING
からルーティングされたパケットを含むすべてのパケットはチェーンを通過することを見ることができます。
NAT(Network Address Translation)には2つのサブケースがあります。SNAT変換源泉データパケットのアドレス、DNAT変換目的地パケットのアドレスです。
どのチェーンでも次のいずれかを実行できます。 DNATを実行できnat/PREROUTING
、nat/OUTPUT
同時にSNATnat/POSTROUTING
もnat/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のトラフィックを送信します。
私の考えでは、それが私が望むのが事実であり、あなたが要求するものではないかと思います。