raw Ethernetフレームで作業しています。私はLinuxマシン上にイーサネットインターフェイスeth0と仮想VLANインターフェイスeth0.100を持っています。私のRAWソケットは仮想インターフェイスeth0.100にバインドされています。問題は、VLANタグ付き(VLAN ID = 100)フレームがこのインターフェイスに外部から送信されると、アプリケーションが同じイーサネットフレームの2つのコピーを取得することです。アプリケーションからは、これらのフレームの違いを見ることはできません。ペイロードの内容はまったく同じです。私のインターフェイスはプロミスキャスモードでは動作していません。RAWソケットを介した仮想VLANインターフェイス上のイーサネットフレームの複製
Iは、フレームをキャプチャするためのtcpdumpを使用し、以下の結果
- はeth0である:これは、VLANはタグ付けされて一つのフレームを取得 - 100
- eth0.100を:これは、VLANはありません一つのフレームを取得しますタグ付き。
eth0にバインドすると、まだフレームのコピーが2つ取得されます。しかし、eth0.100を削除してeth0にバインドすると、ただ1つのコピーが得られます。私のアプリケーションはフレームの2つのコピーを取得していますか?eth0から1つ、eth0.100から1つだけですが、eth0.100にバインドされていますか?
BPFを使用しようとしましたが、eth0.100で使用するフィルタがわかりません。
コードについてはどうですか? – someuser
通常のrawソケットプログラミング。私は仮想インターフェイスeth0.100にバインドしましたが、それは唯一の違いです。 – Neo
私たちはあなたにとって何が正常であるか分かりません。私はtcpdump(またはwireshark)のソースコードを見ることができます。 – someuser