標籤:service 伺服器 虛擬機器 linux 記錄
最近收到Iptables伺服器警示"nf_conntrack: table full, dropping packet."。經過對日誌分析,最終將問題解決了。給大家分享一下。
問題分析:
ip_conntrack是linux NAT的一個跟蹤串連條目的模組,與Iptables相關,ip _conntrack模組會使用一個雜湊表記錄 tcp 通訊協議的 established connection記錄,當這個雜湊表滿了的時候,便會導致nf_conntrack: table full, dropping packet錯誤,由於該物理機運行多虛擬機器,雜湊表滿的幾率很大。
處理辦法:
處理方法有兩種。
修改/etc/modprobe.d/nf_conntrack.conf配置並關閉iptables服務:
more /etc/modprobe.d/nf_conntrack.conf
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/37/C1/wKiom1OunH_ifpMcAAAxzWICCsA919.jpg" title="blog1.png" alt="wKiom1OunH_ifpMcAAAxzWICCsA919.jpg" />
開啟options nf_conntrack hashsize=131072 調整nf_conntrack表大小。
service iptables stop
chkconfig iptables off
2.修改/etc/sysctl.conf中ip_conntrack的值
net.netfilter.nf_conntrack_max = 655350 #設定最大跟蹤串連數655350,該設定會增大記憶體開銷。
net.netfilter.nf_conntrack_tcp_timeout_established = 300 #設定跟蹤串連儲存5小時。
sysctl -p
3.總結
防火牆有條件交給上層硬體裝置完成會更好,使用系統防火牆一定要做調優;如果不需要防火牆的跟蹤功能,規則簡單的可以開啟NOTRACK選購,條件允許的情況下就刪除它。
本文出自 “系統營運” 部落格,請務必保留此出處http://davidbj.blog.51cto.com/4159484/1431961