目前正在考虑只使用pcap嗅探同一个接口的可能性,并使用pcap_inject注入数据包。
使用以下任何一种方法都可以轻松解决问题:
可是:
pcap监听eth0 / realworld的情况更接近“pcap通过源魔法监听和丢弃”/,pcap通过eth0的句柄发送数据包,以便将它们路由出去。 libpcap没有捕获使用相同库注入同一接口的数据包的理论基础是什么 - 例如,注入的数据包不会通过所有Berkeley的数据包过滤器代码?
实用测试TBD。
答案 0 :(得分:1)
可能只是忽略接收路径中属性为skb->pkt_type == PACKET_OUTGOING
的数据包。
答案 1 :(得分:1)
您的问题难以解析,但如果我理解正确,您正在寻找一种方法来捕获排除您注入的数据包。您可以使用捕获筛选器来执行此操作,该筛选器仅查看发送到计算机上相关接口的内容...
ether dst aa:bb:cc:dd:ee:ff
......或者除了在相关接口上发送的内容之外的所有内容:
not ether src aa:bb:cc:dd:ee:ff
这将影响您的机器以外的流量,但是如果您捕获并注入,那么您可能无论如何都不关心自己机器的数据包。如果您需要更多自定义内容,则应该很难识别刚刚在捕获的数据包中发送的数据包。 (我想这就是校验和的意思,但我没有看到立即表格问题。)