iptablesとDNATを使用してターゲットIPアドレスを変更する

iptablesとDNATを使用してターゲットIPアドレスを変更する

PREROUTINGでDNATを試しています。チュートリアルを見つけました。ここ。これには次の文が含まれています。

これは、パケットが入ってくるとPREROUTINGチェーンで行われます。これは、Linuxシステム自体の他のすべて(ルーティング、パケットフィルタリング)で、パケットが「実際の」宛先に到達することを示していることを意味します。

最後の部分が何を意味するのか著者に尋ねたいですanything else on the Linux box itself will see the packet going to its 'real' destination

仮想デバイス(タブ)があり、着信ICMPパケットをそのタブデバイスにリダイレクトするテストを試みました。 (マイタブデバイスアドレスは、10.0.4.1/24タブデバイスを受信するプログラムがあるためUP状態です。)

# iptables -t nat -A PREROUTING -i eth0 -p icmp -j DNAT --to-destination 10.0.4.2

外部IPをpingする場合、ルールは使用されません(pktsiptablesの数はルールに対してまだ0です)。この観察は、著者が話すことに関連していますか?

答え1

あなたの最初の質問は、あなたが引用したテキストにすでに答えられています。

これは、パケットが入ってくるとPREROUTINGチェーンで行われます。これは、Linuxシステム自体の他のすべてを意味します。ルーティング、パケットフィルタリング)は「実際の」宛先に向かうパケットを見ることができます。

それがルーティングとパケットフィルタリングです。

2番目の質問:システム自体からpingを送信しているようです。だからパケットが来ないでしょう。入力するシステムなので、これらのパケットは PREROUTING チェーンを通過しません。システム外でこれらのパケットを生成する必要があります。

関連情報