内核:nf_conntrack:表已满,正在丢弃数据包;根本原因

内核:nf_conntrack:表已满,正在丢弃数据包;根本原因

我有一个基于 ARM9 处理器的修改版 Linux。它工作正常,但昨天我反复收到此错误:

kernel: nf_conntrack: table full, dropping packet

我有两个问题:

  • 我如何找出导致问题的原因(设备已工作一年多,没有任何问题)
  • 我做了一些研究,我可以通过暂时增加表的大小来解决这个问题 -echo "5096" > /proc/sys/net/ipv4/netfilter/ip_conntrack_max然后重新对处理器进行编程。如何永久增加表的大小?

编辑:(更多信息)

  • 的输出uname -mrsLinux 2.6.30.9 armv5tejl;的输出cat /proc/version:。此外,该发行版没有.Linux version 2.6.30.9 ([email protected]) (gcc version 4.4.1 (Sourcery G++ Lite 2009q3-67) ) #1 PREEMPT Thu Jan 23 11:58:19 CST 2014/etc/sysctl.conf

  • 我通过环回板上的两个物理以太网接口并将它们放在同一个 VLAN 上以创建环路并使板崩溃来更改流量。就在这之后出现kernel: nf_conntrack: table full, dropping packet。然而,在断开循环后,我不断收到kernel: nf_conntrack: table full, dropping packet.这可能是原因吗(我如何确定)?

答案1

问题很可能是流量变化。

您可以将相应的条目放入/etc/sysctl.conf

net.ipv4.netfilter.ip_conntrack_max = 5096

参见man 5 sysctl.confman sysctl

相关内容