我正在尝试捕获 ethertype 的流量0x88b8
。其中一些可能带有 vlan 标记,而另一些可能没有,但是and
andor
操作符的行为并不符合我的预期。
我的第一次尝试是这样的:
(vlan and ether proto 0x88b8) or ether proto 0x88b8
我同时在两台单独的笔记本电脑上测试了这个捕获过滤器,其中一台接收 vlan 标记的数据包,另一台接收未标记的数据包。
在这种情况下,接收未标记数据包的人什么也没收到。
我在pcap 过滤器手册页上搜索并找到了以下内容:
否定具有最高优先级。交替和串联具有相同的优先级并从左到右关联。
所以我认为订单在某种程度上很重要。因此,经过一些反复试验后,我确定了这一点:
ether proto 0x88b8 or (vlan and ether proto 0x88b8)
这适用于两台笔记本电脑。
我的测试是否产生了正确的表达?它在某种程度上是多余的吗?为什么它们不同,为什么后者有效?还有什么我应该注意的吗?