iptables-mod-tee は、WAN インターフェイスから発信されるトラフィックを監視するために使用されます。

iptables-mod-tee は、WAN インターフェイスから発信されるトラフィックを監視するために使用されます。

ここに画像の説明を入力してください。

192.168.0.1/24eth1LAN()とパブリックIP 140.82.118.4()eth2の間で標準(即時使用可能)NATを実行するOpenWrtルータ(v18.06.5、r7897-9d401013fc)があります。ルータにはiptables-mod-teeモジュールがロードされ実行されています。

eth2私の目標は、インターフェイスからWANへのトラフィックを監視することです。モニタリングは、LAN(位置192.168.0.3)にある「Wireshark」を実行しているコンピュータによって行われます。

ping 8.8.8.8たとえば、LAN上の他のコンピュータ(たとえば、から)から==および==を送信した192.168.0.2ときにWANインターフェイスに送信されるIP / ICMPエコー要求を表示したいとします。ip.src140.82.118.4ip.dst8.8.8.8eth2

次のコマンドを使用して、「Wireshark」を実行しているホストに複製されたパケットを送信するようにiptablesを変更しました。
iptables -t mangle -A POSTROUTING -o eth2 -j TEE --gateway 192.168.0.3

ip.src動作しますが、「Wireshark」は==192.168.0.2およびip.dst== ...を使用してIP / ICMP Echo要求を表示します。これはSNAT(または迷彩)以前のように見える8.8.8.8ので、間違っています!ip.src

私のパブリックWANインターフェイスのIPである必要ip.srcがあります140.82.118.4。そうしないと、8.8.8.8 hostICMP Echo 応答をどこに送信するかはわかりませんが、ping コマンドはホストから ICMP Echo 応答を受信して​​いるため8.8.8.8です。 。

なぜこれが起こり、それを解決するには?

答え1

mangle の POSTROUTING ルールは nat の POSTROUTING ルールの前に実行されます。したがって、mangleのPOSTROUTINGでTEE操作を実行するとソースNATは発生しません。...以下のiptables図を参照してください。https://th.bing.com/th/id/R.aa2afe9a3c09b762af0b59c8670c7740?rik=SvxGxvrwso1veg&riu=http%3a%2f%2flinux-ip.net%2fnf%2fnfk-traversal.png 9m WO pRiFTZsA5qJ0HMDQZo%3d&risl= &pid =ImgRaw&r=0

iptables図

関連情報