Linux NAT哈希表满致使服务器丢包

发现ECS Linux服务器出现间歇性丢包的状况,经过tracert、mtr等手段排查,外部网络未见异常。web

同时,以下图所示,在系统日志中重复出现大量以下错误信息:服务器

Jun 13 15:20:23 web3 kernel: nf_conntrack: table full, dropping packet.
Jun 13 15:20:24 web3 kernel: nf_conntrack: table full, dropping packet.
Jun 13 15:20:24 web3 kernel: nf_conntrack: table full, dropping packet.
Jun 13 15:20:25 web3 kernel: nf_conntrack: table full, dropping packet.
Jun 13 15:20:25 web3 kernel: nf_conntrack: table full, dropping packet.
Jun 13 15:20:25 web3 kernel: nf_conntrack: table full, dropping packet.
Jun 13 15:20:25 web3 kernel: nf_conntrack: table full, dropping packet.
Jun 13 15:20:25 web3 kernel: nf_conntrack: table full, dropping packet.
Jun 13 15:20:25 web3 kernel: nf_conntrack: table full, dropping packet.
Jun 13 15:20:25 web3 kernel: nf_conntrack: table full, dropping packet.网络

ip_conntrack是Linux系统内NAT的一个跟踪链接条目的模块。ip_conntrack模块会使用一个哈希表记录 tcp 通信协议的 established connection记录,当这个哈希表满了的时候,便会致使nf_conntrack: table full, dropping packet错误。tcp

在Centos 5.x上是以下的设置:ide

用户能够尝试经过修改以下内核参数来调整ip_conntrack限制。操做方式简述以下:spa

1. 在终端下输入以下指令编辑系统内核配置:.net

# vi /etc/sysctl.conf日志

2. 设置或修改以下参数:orm

#哈希表项最大值ip

net.ipv4.netfilter.ip_conntrack_max = 655350

#超时时间,默认状况下 timeout 是5天(432000秒)

net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 1200

3. 在终端下输入以下指令使上述配置生效:

#sysctl -p

在Centos 6.x上是上是以下的设置:

1. 在终端下输入以下指令编辑系统内核配置:

# vi /etc/sysctl.conf

2. 设置或修改以下参数:

#哈希表项最大值

net.netfilter.nf_conntrack_max = 655350

#超时时间,默认状况下 timeout 是5天(432000秒)

net.netfilter.nf_conntrack_tcp_timeout_established = 1200

3. 在终端下输入以下指令使上述配置生效:

相关文章
相关标签/搜索