いつの間にか下記のエラーが頻発するようになっていた。
kernel: printk: 2 messages suppressed.
iptables を使っているとき、接続数が増えてくると /var/log/messages に上記のようなエラーが表示されることがあるらしい。
このエラーメッセージの意味は iptables の ip_conntrack という接続テーブルが一杯になってパケットが破棄されたという意味です。
まず、現在の ip_conntrack の最大値を確認するには、次のコマンドで確認する。
[root@hoge ~]# cat /proc/sys/net/ipv4/ip_conntrack_max 65536
次に、現在の ip_conntrack の数を確認するには、次のコマンドで確認します。
[root@hoge ~]# cat /proc/sys/net/ipv4/netfilter/ip_conntrack_count 25
とりあえず、明示的にip_conntrack_maxの値を設定する。
/etc/sysctl.conf に下記を追記する。
# Controls the use of TCP syncookies net.ipv4.tcp_syncookies = 1
この設定を有効にするために、次のコマンドを実行します。
[root@hoge ~]# sysctl -p net.ipv4.ip_forward = 0 net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.default.accept_source_route = 0 kernel.sysrq = 0 kernel.core_uses_pid = 1 net.ipv4.tcp_syncookies = 1 kernel.msgmnb = 65536 kernel.msgmax = 65536 kernel.shmmax = 4294967295 kernel.shmall = 268435456 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 fs.aio-max-nr = 1048576 fs.file-max = 6815744 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048586 net.ipv4.netfilter.ip_conntrack_max = 65535
とえあえず、この設定で様子をみることにする。
0 件のコメント:
コメントを投稿