在 iptables 的 PREROUTING 链中使用 cgroup 匹配

在 iptables 的 PREROUTING 链中使用 cgroup 匹配

我已经在链中使用net_cls(网络分类器)cgroup 。当我尝试使用它时,出现以下错误:/sys/fs/cgroup/net_clsPOSTROUTINGPREROUTING

[2514253.432875] x_tables: ip_tables: cgroup match: used from hooks REROUTING, but only valid from INPUT/OUTPUT/POSTROUTING

你知道为什么我们不能使用 cgroup match 吗PREROUTING?有什么解决方法吗?

答案1

所有来自外部网络接口的传入数据包在与任何进程关联之前都会经过 PREROUTING 链(毕竟,它们可能只是被转发,而不会接触任何进程)。因此您无法将任何cgroup信息与这些数据包关联起来。

仅当数据包经过 INPUT 链(将由某个进程读取)、或 OUTPUT 链(由某个进程写入)或来自 OUTPUT 链后的 POSTROUTING 链时,才可能将任何cgroup信息与其关联。

由于您没有包含有关您试图解决的实际问题的任何信息(这表明这是一个XY-问题),我无法建议任何解决方法(或正确的解决方案)。

相关内容