如何使用netfilter捕获数据包?

时间:2010-11-30 13:41:10

标签: c linux libpcap netfilter

我正在使用libpcap来捕获GRE数据包然后转发,我认为效率不是很好。

所以我决定用netfilter转发,但我是新手。有人可以给我一个

使用netfilter捕获IP或GRE数据包的简单示例?谢谢!

1 个答案:

答案 0 :(得分:1)

目前尚不清楚你想要完成什么。您是在尝试捕获数据包进行分析(如wireshark或tcpdump),还是通过GRE隧道转发流量?

如果您正在尝试捕获流量以进行分析,那么使用netfilter并没有多大意义。使用QUEUE目标之类的东西可能会将数据包传递给用户空间,但我怀疑你会比使用合适的BPF规则的libpcap获得更好的性能。

如果您尝试通过GRE隧道转发流量,通常的方法是设置gre隧道接口;执行man ip并查看“隧道”部分。隧道接口(例如gre0)是系统路由表可以发送数据包的普通网络接口。