2012-02-15 5 views
2

2つのインタフェース(eth0、eth1)がブリッジされたマシン上で送受信するrawソケットを作成します。rawソケットでのブリッジ転送を無効にする

socket(AF_PACKET, SOCK_RAW, 0xabcd); 

私のプロトコルはいくつかのブロードキャストパケットを送信し、私はそれを私自身で転送したいと思います。

特定のパケットの転送を無効にするにはどうすればよいですか?

答えて

0

作業の数週間後、私は自分のドライバを修正し、特定のパケットをnetlink経由でユーザーの土地に転送しました。 転送された後、特定のパケットが破棄されたため、ブリッジはこれらのパケットを転送しません。

0

iptables/ebtablesを使用してブリッジ経由で転送を停止し、プログラムでlibpcapを使用して、プログラムで転送するパケット/フレームを取得できるように思えます。 hackishのようなものかもしれませんが、マシンのファイアウォール/ブリッジ転送ルールに関係なく、libpcapはあなたが聞きたいパケットだけを配送することができます。

また、一致するパケットをユーザー空間に配信するiptablesターゲットもあります。それらを使用して、カーネルでそれらを配信し、それらをアプリケーションに残して再送信することができます。

関連する問題