一次由ip_conntrack跟踪连接库满导致的大量丢包现象排除

简介:
刚上线不久的一台服务器,晚上高峰时有很多客户反映连不上服务器,通过在本地测试发现有的连接可以连上但有的不行,赶紧连上服务器查看日志,发现大量如下错误... 
kernel: ip_conntrack: table full, dropping packet. 
kernel: printk: 1 messages suppressed. 
kernel: ip_conntrack: table full, dropping packet. 
kernel: printk: 2 messages suppressed. 
kernel: ip_conntrack: table full, dropping packet. 
kernel: printk: 1 messages suppressed. 
ip_conntrack 这个东西是连接跟踪数据库(conntrack database),代表NAT机器跟踪连接的数目(不过只要打开iptables就会开始跟踪)如果这个东西满了结果可想而知 
赶紧查看当前的值发现很快就能到2万多 
wc -l /proc/net/ip_conntrack 
23722 /proc/net/ip_conntrack 
看看最大值限制 
cat /proc/sys/net/ipv4/netfilter/ip_conntrack_max 
65536 
访问稍大一点就会突破这个值 
保留时间是多久? 
cat /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established 
432000 
默认是5天,没必要这么久 
先临时调大看看效果 
echo 655350 > /proc/sys/net/ipv4/netfilter/ip_conntrack_max 
echo 10800 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established 
改完后观察了一段时间,发现服务器连接正常,没有再发生类似情况 
修改/etc/sysctl.conf 
net.ipv4.netfilter.ip_conntrack_max = 655360 
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 10800 
sysctl -p 立即生效 

OK问题排除,在上线前没有估计好服务器的访问量,从而忽略了对一些内核参数的修改。这点需要我以后多注意。



本文转自    geekwolf   51CTO博客,原文链接:http://blog.51cto.com/linuxgeek/998983

相关文章
|
10月前
|
安全 网络协议 网络安全
网络扫描与网络监听
网络扫描与网络监听
229 0
|
虚拟化
问题解决:网络自动失败 您的网络可能并未使用dhcp协议
问题解决:网络自动失败 您的网络可能并未使用dhcp协议
381 0
问题解决:网络自动失败 您的网络可能并未使用dhcp协议
|
网络协议 Linux 网络安全
【TCP/IP】【调试】丢包、流不通、错包等问题查证手段系列之三——Netfilter hook函数
【TCP/IP】【调试】丢包、流不通、错包等问题查证手段系列之三——Netfilter hook函数
217 0
【TCP/IP】【调试】丢包、流不通、错包等问题查证手段系列之三——Netfilter hook函数
|
网络协议 Linux 网络安全
【TCP/IP】【调试】丢包、流不通、错包等问题查证手段系列之二——防火墙
【TCP/IP】【调试】丢包、流不通、错包等问题查证手段系列之二——防火墙
645 0
【TCP/IP】【调试】丢包、流不通、错包等问题查证手段系列之二——防火墙
|
网络协议
【TCP/IP】【调试】丢包、流不通、错包等问题查证手段系列之一——日志方式
【TCP/IP】【调试】丢包、流不通、错包等问题查证手段系列之一——日志方式
275 0
|
算法 网络协议 Linux
Netfilter 连接跟踪与状态检测的实现
内核版本:2.6.12 本文只是一部份,详细分析了连接跟踪的基本实现,对于ALG部份,还没有写,在整理笔记,欢迎大家提意见,批评指正。 1.什么是连接跟踪 连接跟踪(CONNTRACK),顾名思义,就是跟踪并且记录连接状态。Linux为每一个经过网络堆栈的数据包,生成一个新的连接记录项(Connection entry)。此后,所有属于此连接的数据包都被唯一地分配给这个连接,并标识连接的状态。连接跟踪是防火墙模块的状态检测的基础,同时也是地址转换中实现SNAT和DNAT的前提。 那么Netfilter又是如何生成连接记录项的呢?每一个数据,都有“来源”与“目的”主机,发起连接的主机称为“来
385 0
|
网络协议 Shell
tcpdump 方式检测ip 网段 扫段 tcp并发数攻击防御shell 脚本
tcpdump 自定义抓包时间将信息存入文件, 以systemd 系统服务方式进行启动
648 0
|
网络安全 网络架构 开发者
网络稳定的第二道屏障: 带外网络DHCP异常排查方案
网络管理通常可分为带外管理(out-of-band)和带内管理(in-band)两种管理模式,带外网络是通过独立于数据网络之外的专用管理通道对机房网络设备(路由器、交换机、防火墙等)、服务器设备(小型机、服务器、工作站)以及机房电源系统进行集中化整合管理的网络集中管理系统。当企业网络建成后,网络上会传输各种企业的业务数据,如果业务网络出现问题,就需要通过带外网络来进行故障的排查,保障系统的稳定。
网络稳定的第二道屏障: 带外网络DHCP异常排查方案