我现在用libpcap抓GRE包转发,我觉得效率不是很好。
所以我决定使用 netfilter 进行转发,但我对此并不陌生。谁能给我一个
使用 netfilter 捕获 IP 或 GRE 数据包的简单示例?谢谢!
目前尚不清楚您要完成什么。您是在尝试捕获数据包进行分析(如 wireshark 或 tcpdump),还是通过 GRE 隧道转发流量?
如果您尝试捕获流量进行分析,则使用 netfilter 没有多大意义。使用 QUEUE 目标之类的东西将数据包传递到用户空间可能是可能的,但我怀疑你会比使用带有合适 BPF 规则的 libpcap 获得更好的性能。
如果您尝试通过 GRE 隧道转发流量,通常的做法是设置 gre 隧道接口;做man ip
,看看“隧道”部分。隧道接口(例如 gre0)是系统路由表可以向其发送数据包的普通网络接口。