LinuxシステムのローカルIPトラフィックがLAN(WireSharkを介してトラフィックをキャプチャするネットワーク)を通過するように強制する方法についていくつかのスレッドがあることを知っていますが、すべてのソリューションにはIPアドレスの変更が含まれています。
今私の設定は次のようになります。
- 1つのインターフェイスと2つのIP(192.168.1.2(eth0:0)と192.168.1.3(eth0:1))を持つLinux PC
- 192.168.1.2を受信するサーバー
- 192.168.1.2に接続されたクライアント(192.168.1.3にバインド)
私の質問は:LinuxカーネルがIPアドレスとポートを変更せずにIPパケットがネットワーク(スイッチ+ Wiresharkを搭載したPC)を通過するように強制することで、WireSharkに192.168.1.2と192.168.1.3をソースと宛先として認識させることができますありますか? (そしてその逆も同様)?
前述したように、ここでIPの変更に対するいくつかの答えを見つけました。ネットワークセグメントからのローカルTCPパケットの強制キャプチャそして別のものがあります:ローカルIPトラフィックを外部インターフェイスに強制する
ドライバやカーネルを修正しなければ不可能でしょうか?私はCプログラマーなので、カーネルの修正を追求する必要がある場合は、これが可能な解決策かもしれません。
-
いくつかの調査を終えた後:
sysctlパラメータaccept_localとrp_filterを組み合わせて、可能な解決策を見つけました。 「ローカルソースアドレスを持つパケットを許可します。適切なルーティングと組み合わせることで、2つのローカルインターフェイスパケット間の有線を介してデータを転送し、正しく許可するために使用できます。」試してみて、1つのインターフェイスと仮想IPでのみ機能しているかどうかをお知らせします。
私はいくつかのルートテーブルの代替案を試しましたが、1つのインターフェイスではこれは可能ではないと思います。
答え1
Linuxを使用している場合lo
(ループバック)インターフェイスからパケットをキャプチャできます。トラフィックを回線に強制的に接続する必要はありません。