ユーザ用ツール

サイト用ツール


01_linux:01_net:ip_contrack

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
01_linux:01_net:ip_contrack [2013/09/03 00:13] matsui01_linux:01_net:ip_contrack [2021/09/06 22:42] (現在) matsui
行 1: 行 1:
 +====== ip_contrack ======
  
 +iptablesでは、関連したパケットを追跡するために/proc/net/ip_conntrackというファイルを作り、パケットの情報を記録しておきます。
 +このip_conntrackに記録できる上限数を決めているのが/proc/sys/net/ipv4/ip_conntrack_max。
 +システムで自動的に設定されるデフォルト値は搭載されているメモリーによって異なり、1GBで30000強、2GB以上で65536ぐらいになります。
 +
 +1GBのメモリーを積んでいる場合、1時間あたりのアクセス数が100,000ページビュー程度までならデフォルト値でも問題ないのですが、
 +ぞれ以上になってくるとip_conntrack_maxの値を超えてしまい、パケットが捨てられてしまうという事態に陥ります。
 +ip_conntrack_maxの値を超えると、コンソールに以下のようなメッセージが出力されます。
 +
 +<code>
 +ip_conntrack: maximum limit of 65536 entries exceeded
 +</code>
 +
 +/proc/net/ip_conntrackを見ると、ESTABLISHEDが大量に保存されている
 +<code console>
 +# cat /proc/net/ip_conntrack
 +tcp      6 431999 ESTABLISHED src=192.168.100.50 dst=192.168.10.11 sport=62856 dport=22 packets=2107 bytes=129391 src=192.168.10.11 dst=192.168.100.50 sport=22 dport=62856 packets=2254 bytes=161844 [ASSURED] mark=0 secmark=0 use=1
 +tcp      6 431867 ESTABLISHED src=182.48.51.190 dst=192.168.10.11 sport=44108 dport=22 packets=1493774 bytes=185262756 src=192.168.10.11 dst=182.48.51.190 sport=22 dport=44108 packets=1491669 bytes=201699448 [ASSURED] mark=0 secmark=0 use=1
 +</code>
 +
 +  * これのMAX値が、ip_conntrack_max(デフォルト:65536)
 +  * これのESTABLISHED が保持される時間が、ip_conntrack_tcp_timeout_established(デフォルト 432000秒=(5日間))
 +===== ①現在の値確認=====
 +
 +==== CentOS5 ====
 +
 +<code console>
 + # cat /proc/sys/net/ipv4/netfilter/ip_conntrack_count
 + # cat /proc/sys/net/ipv4/ip_conntrack_max
 + 65536
 +
 + # cat /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established
 + 432000
 +</code>
 +
 +==== CentOS6/CentOS7 ====
 +
 +<code>
 +# cat /proc/net/nf_conntrack | wc -l
 +14471
 +
 +# cat /proc/sys/net/netfilter/nf_conntrack_count
 +14475
 +
 +# cat /proc/sys/net/netfilter/nf_conntrack_max
 +65536
 +# cat /proc/sys/net/nf_conntrack_max
 +65536
 +
 +</code>
 +
 +===== ②変更 =====
 +
 +==== CentOS5 ====
 +
 +<code console>
 + # cp -a /etc/sysctl.conf /etc/sysctl.conf.org
 + # vi /etc/sysctl.conf
 + net.ipv4.netfilter.ip_conntrack_max = 1210856
 + net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 43200
 +</code>
 +
 +
 +==== CentOS6/CentOS7 ====
 +<code>
 +net.netfilter.nf_conntrack_max = 1210856
 +net.nf_conntrack_max = 1210856
 +</code>
 +
 +===== ③反映 =====
 +
 +<code console>
 + # sysctl -p
 + または
 + # sysctl net.ipv4.netfilter.ip_conntrack_max=1200000
 + # sysctl net.nf_conntrack_max=1200000
 +</code>
 +
 +===== ④変更の確認 =====
 +<code console>
 + # cat /proc/sys/net/ipv4/ip_conntrack_max
 + 1210856
 +
 + # cat /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established
 + 259200 3日
 + 172800 2日
 + 86400 1日
 + 43200 半日
 +</code>
 +
 +===== ④確認(sysctl) =====
 +
 +<code>
 +# sysctl net.netfilter.nf_conntrack_max net.nf_conntrack_max net.netfilter.nf_conntrack_generic_timeout
 +net.netfilter.nf_conntrack_max = 1210856
 +net.nf_conntrack_max = 1210856
 +net.netfilter.nf_conntrack_generic_timeout = 600
 +</code>
 +
 +
 +===== ⑤ip_contrackのエラー =====
 +
 +  kernel: nf_conntrack: table full, dropping packet
 +===== 参考 =====
 +[[https://nazx.jp/x/CentOS_TIPS_002]]
 +
 +{{tag>iptables conntrack}}