iptables 调试不再适用于 Debian 10(和 iptables-legacy;从 Debian 9 升级后)
iptables debugging no longer working with Debian 10 (and iptables-legacy; after upgrading from Debian 9)
我曾经能够在 Debian 9 主机上使用链 PREROUTING
和 OUTPUT
中的特定规则进行 iptables 调试(都在 table raw
) 和目标 TRACE
并如所述 here。当此类规则触发时,消息出现在 /var/log/kern.log
中。
主机在其 boot config 文件中有以下相关条目。事情显然在没有 CONFIG_IP_NF_TARGET_LOG
或 CONFIG_IP6_NF_TARGET_LOG
的情况下有效。 (我对 IPv4 流量感兴趣。)
CONFIG_NETFILTER_XT_TARGET_TRACE=m
CONFIG_IP_NF_RAW=m
CONFIG_IP6_NF_RAW=m
# CONFIG_IP_NF_TARGET_LOG missing
# CONFIG_IP6_NF_TARGET_LOG missing
CONFIG_NETFILTER_XT_TARGET_LOG=m
我现在已经将同一主机升级到 Debian 10 (Buster)。它使用 iptables-legacy
(不是默认的 iptables-nft
),因为这是在 Kubernetes 集群的上下文中。
我观察到的是相同的规则(例如 iptables -t raw -A PREROUTING -d $service_ip -p tcp -j TRACE
;$pod_ip
也一样)显然不再起作用,因为我没有在/var/log/kern.log
.
可能是什么原因以及如何进一步诊断? TRACE
功能可能需要与 Debian 10 不同的引导配置(不同的模块),或者 iptables-legacy
现在是否以某种方式阻碍?
现在看来,这种 iptables 调试实际上在 Debian 10 下仍然有效,就像我以前在 Debian 9 下所做的那样。
显然我在重新创建目标 Kubernetes service
s 等之前安装了 iptables 调试规则是一个错误。这样 iptable 规则和 Kubernetes 资源就集群 IP、节点端口而言不同步、pod IP 等,因此规则永远不会触发那些 service
s 等
的流量
我曾经能够在 Debian 9 主机上使用链 PREROUTING
和 OUTPUT
中的特定规则进行 iptables 调试(都在 table raw
) 和目标 TRACE
并如所述 here。当此类规则触发时,消息出现在 /var/log/kern.log
中。
主机在其 boot config 文件中有以下相关条目。事情显然在没有 CONFIG_IP_NF_TARGET_LOG
或 CONFIG_IP6_NF_TARGET_LOG
的情况下有效。 (我对 IPv4 流量感兴趣。)
CONFIG_NETFILTER_XT_TARGET_TRACE=m
CONFIG_IP_NF_RAW=m
CONFIG_IP6_NF_RAW=m
# CONFIG_IP_NF_TARGET_LOG missing
# CONFIG_IP6_NF_TARGET_LOG missing
CONFIG_NETFILTER_XT_TARGET_LOG=m
我现在已经将同一主机升级到 Debian 10 (Buster)。它使用 iptables-legacy
(不是默认的 iptables-nft
),因为这是在 Kubernetes 集群的上下文中。
我观察到的是相同的规则(例如 iptables -t raw -A PREROUTING -d $service_ip -p tcp -j TRACE
;$pod_ip
也一样)显然不再起作用,因为我没有在/var/log/kern.log
.
可能是什么原因以及如何进一步诊断? TRACE
功能可能需要与 Debian 10 不同的引导配置(不同的模块),或者 iptables-legacy
现在是否以某种方式阻碍?
现在看来,这种 iptables 调试实际上在 Debian 10 下仍然有效,就像我以前在 Debian 9 下所做的那样。
显然我在重新创建目标 Kubernetes service
s 等之前安装了 iptables 调试规则是一个错误。这样 iptable 规则和 Kubernetes 资源就集群 IP、节点端口而言不同步、pod IP 等,因此规则永远不会触发那些 service
s 等