我正在處理原始以太網幀。我的Linux機器上有一個以太網接口eth0和一個虛擬VLAN接口eth0.100。我的RAW套接字綁定到虛擬接口eth0.100。問題是,當VLAN標記(VLAN ID = 100)幀從外部傳輸到此接口時,我的應用程序會獲得同一以太網幀的兩個副本。從應用程序我看不出這些幀之間的差異,有效載荷的內容是完全相同的。我的界面不是在混雜模式下操作。通過RAW接口在虛擬VLAN接口上覆制以太網幀
我用tcpdump的捕捉幀和下面是結果
- eth0的:這得到一幀被VLAN標記 - 100
- eth0.100:這得到一幀這是不VLAN標記。
如果我綁定到eth0,我仍然得到該幀的兩個副本。但是如果我刪除eth0.100並綁定到eth0,我只會得到一個副本。我的應用程序是否獲取了兩個幀的拷貝,一個來自eth0,另一個來自eth0.100,即使我只綁定到eth0.100?
我試圖使用BPF,但我不確定在eth0.100上使用哪種過濾器。
代碼怎麼樣? – someuser
其正常的原始套接字編程。我已經綁定了虛擬接口eth0.100,這是唯一的區別。 – Neo
我們不知道你什麼是正常的。我可以提供查看tcpdump(或wireshark)源代碼。 – someuser