デバイスに到着し、特定の宛先アドレスを持つパケットがたどるルートを見つけることができるツールを見つけようとしています。
ip route get
は、私が探しているほとんどのことを行います。
問題は、かなり複雑なルーティング環境でfwmarkがある場合に、パケットが正しいルートを見つけているかどうかをテストしたいことです。
理想的なツールは、fwmark(または他のプロパティ)を使用して一般的なパケットを偽装し、IpTablesチェーン全体とip route/ipルールセットを介して送信するか、返されるルートを見つけるだけです。
コマンドを実行して、特定のルートセットが意図したとおりに機能することを確認できるようにしたいと思います。
最小要件はip route get
のようなものですが、fwmarkをサポートしています。
この時点で、ルーティングのユーティリティをテストするための提案は大歓迎ですが!ルートがたまると、それはかなり速く複雑になります。
'ip route get'コマンドでmarkオプションを使用できます。また、このコマンドで送信元アドレスと入力および出力インターフェースを指定できます。
例:
ip route get 8.8.8.8 mark 0x20
-8.8.8.8アドレスへのマークされたパケットのルートを確認します。
ip route get 8.8.8.8 from 192.168.0.200 iif eth1
-eth1インターフェイスを介して受信した192.168.0.200ホストから転送されたパケットのルートを確認します。この場合、「from」アドレスがこのホスト(ローカルではない)上にない場合は、iifを指定する必要があります。
ip route get 8.8.8.8 from 192.168.0.100 iif eth1 mark 0x30
-前の例と同様ですが、マークを指定します。
Netfilterルールセットを介したパケットのパスをテストするには、TRACEターゲットとscapyを使用して目的のパケットを作成します。
お探しのツールの技術名は "packet crafter"
特定の製品推奨事項はServerFaultのトピックから外れていますが、独自のnpingの代替ツールを含むそのようなリストの1つは nmap project によって維持されており、 http://SecTools.org/)にあります。 tag/packet-crafters / そしてもう1つは Wikipedia にあります。