我正在使用原始以太网帧。我的 Linux 机器上有一个以太网接口 eth0 和一个虚拟 VLAN 接口 eth0.100。我的 RAW 套接字绑定到虚拟接口 eth0.100。问题是,当一个带有 VLAN 标记(VLAN ID=100)的帧从外部传输到这个接口时,我的应用程序会得到同一个以太网帧的两个副本。从应用程序中我看不到这些帧之间的区别,有效载荷的内容完全相同。我的界面未在混杂模式下运行。
我使用 tcpdump 来捕获帧,下面是结果
- eth0:这会得到一个带有 VLAN 标记的帧 - 100。
- eth0.100:这会得到一个没有 VLAN 标记的帧。
如果我绑定到 eth0,我仍然会得到两个帧副本。但是如果我删除 eth0.100 并绑定到 eth0,我只会得到一份副本。我的应用程序是否获得了框架的两份副本,一份来自 eth0,一份来自 eth0.100,即使我只绑定到 eth0.100 ?
我尝试使用 BPF,但不确定在 eth0.100 上使用什么过滤器。