私はこれをLinuxで達成しようとしています(可能かどうかはわかりません)。インターフェイス上のすべてのIPパケットを傍受し、そのパケットを特定の一連のユーザースペースプログラムに転送するプログラムを作成する必要があります。
傍受とは、IPパケットがマイプログラム(カーネルモジュールや特別なユーザースペースプログラムなど)によってキャプチャされた後、そのパケットがもはやIPスタックを通過しないことを意味します。
たとえば、オペレーティングシステムがA、B、C、D ...など、多くのプロセス(カーネルスペースまたはユーザースペース)を実行しているとします。 IPパケットが一部のインターフェイス(例:eth2)で受信された場合、A、Bのみがこのパケットを見て、他のすべてのプロセスがこのパケットの存在を知ることができることを願っています。
誰でも私を正しい方向に導くことができますか?
ベストアンサー1
私の考えでは、TUN/TAPインターフェース。どちらもユーザー空間プログラムをネットワークに接続します。 TUNインターフェイスはIP層で動作し、TAPインターフェイスはイーサネットレベルで動作します。
興味があれば、このチュートリアルはTUN / TAPインターフェースを起動するのに役立ちます。タイトルは次のとおりです。Tun/Tap インターフェースチュートリアル。
これが目的の答えでない場合は、解決したい問題に関する追加の背景情報を提供できます。