答案1
根据您的需要,我认为有两种方法可以实现您的目标。
您可以让重组过程自行完成,然后在重组成功后丢弃整个数据包。这仅在重组后的数据包超过接口 MTU 时才有效(否则您将无法区分重组后的数据包和“正常”数据包)。如果无法成功重组数据包,它们无论如何都会被丢弃,但 CPU 开销会更大。
另一种方法是修改源代码,并忽略nf_defrag_ipv4
您想要直接处理的协议的数据包。快速浏览一下,你会发现这应该可行,因为IP_NODEFRAG
RAW 套接字已经有一个选项 ( ) 可用于绕过重组代码。
说实话,我也希望对过滤的这一部分有更多的控制权,所以我会尝试修补以补救这种情况。
答案2
我想知道您是否可以使用 netfilter“原始”表,该表位于大多数连接跟踪挂钩之前。它有一个“NOTRACK”目标,您可以使用它来免除某些数据包的 conntrack,或者条件-f
本身也可以与一起使用--table raw
。