【发布时间】:2015-07-29 14:16:53
【问题描述】:
问题是:如何使用 netfilter NFQUEUE before defragment 将数据包排入用户空间?
根据Linux kernel source,nf_defrag_ipv4安装在NF_INET_PRE_ROUTING(在iptables/nftables中称为PREROUTING)和NF_INET_LOCAL_OUT(OUTPUT)。
所以我为NF_INET_LOCAL_OUT 尝试了以下反碎片整理 nftables 过滤器(原始:https://stackoverflow.com/a/30638753/5167443),但我仍然收到de碎片数据包。
sudo nft add table filter
sudo nft add chain filter predefrag { type filter hook output priority -- -450 \; }
sudo nft add filter predefrag skuid nfqhooked counter queue num 42
在上述过滤器中,-450 代表优先于NF_IP_PRI_CONNTRACK_DEFRAG=-400。即,过滤器应该在nf_defrag_ipv4之前工作。
我正在使用 Linux 3.19 (Ubuntu 15.04) 和 this my own binding 为 libnetfilter_queue.so.1。
【问题讨论】:
标签: linux-kernel iptables netfilter ip-fragmentation