scapy中的数据包匹配行为

bit*_*lip 5 scapy matching packet

背景:

我正在使用scapy来测试一个网络设备,它可以通过交换源/目标MAC,IP地址和第4层端口号来选择性地回送数据包.交换可被选择用于layer_2_only,layers_2_and_3,layers_2_3_and_4.我在服务器上运行scapy,将数据包传输到设备并验证发回的数据包是否根据设置交换了相应的源/目标字段.

问题:

srploop()发送数据包和接收匹配的scapy 方法适用于PING和ARP等消息类型.我发现如果我发送UDP数据包并且源/目标端口没有被环回设备反转,那么scapy不会像对待那样对回环数据包.当环回设备反转端口号时,数据包被检测为匹配.

问题:

  1. 有没有办法覆盖或以其他方式影响scapy的数据包匹配逻辑?例如,能够在第4层禁用匹配将是有用的.我查看了文档,并没有发现任何暗示这是可能的.

  2. 还有另一种方法可以达到这个目的.我已尝试使用send()后跟,sniff()但我没有成功使用该方法捕获回复.

Asi*_*ake 2

对于问题的第二部分,您可能想尝试我在Scapy 无法在使用多线程时嗅探数据包中提到的方法。

基本上,在单独的线程上运行嗅探器并将返回流量过滤到队列中,然后可以从正在执行send(). 因此,您可以同时进行发送和接收(在两个线程上)。

唯一的问题是,在我的特定设置中,我在嗅探器中遇到了一些奇怪的行为,当在单独的线程上运行时,它无法应用过滤器。希望你会有更好的运气。

更新:嗅探器的问题已解决(请参阅上面链接的我的问题)。

希望这可以帮助!