ipconntrack 突然变得太大

ipconntrack 突然变得太大

我的服务器刚刚停机了 2 分钟。它每秒处理大约 400 个请求。我在 munin 报告中发现的唯一奇怪的事情是: http://monitor.wingify.com/munin/visualwebsiteoptimizer.com/lb1.visualwebsiteoptimizer.com-fw_forwarded_local.html

我该如何解释它,问题到底是什么,以及如何确保这种情况不再发生。

日志中没有任何异常。我应该调试什么以及如何调试。

答案1

在您的系统日志中您是否看到:

ip_conntrack: table full, dropping packet.

如果是,则说明您的 conntrack 表已满。您还可以使用以下命令检查当前跟踪的连接数:

username@localmachine:~$ cat /proc/slabinfo|grep conntrack
nf_conntrack_expect      0      0    248   16    1 : tunables    0    0    0 :   slabdata      0      0      0
nf_conntrack_ffffffff81d11da0   1499   1536    320   12    1 : tunables    0    0    0 : slabdata    128    128      0

第一个/第二个数字是系统当前正在跟踪的值(活动/总数)。您可以使用以下命令检查内核可以监视的当前最大连接数:

sysctl net.netfilter.nf_conntrack_max

对于 CentOS/Redhat,它被称为 ip_conntrack。如果您没有看到 nf_conntrack_max,请检查以下内容:

sysctl net.ipv4.netfilter.ip_conntrack_max

您可以使用 sysctl -w 命令增加:

sysctl -w net.netfilter.nf_conntrack_max=131072

例如。该数字取决于您的机器有多少内存以及内核是否可以存储连接信息。上述设置将 Ubuntu 默认设置 65536 翻倍。

找到合适的值后,将其添加到 /etc/sysctl.conf 文件中,以便在重新启动时应用它:

# increase the number of conntrack max
net.netfilter.nf_conntrack_max=131072

只要您的机器和上游网络设备能够处理流量,您就没问题。正如您提到的,了解导致流量增加的原因是一件好事。如果您遭受了 DDOS 攻击,您应该尝试找出一种反 DDOS 解决方案,该解决方案可能涉及软件防火墙或设备的组合,具体取决于您的应用程序和财务动机。

相关内容