web-dev-qa-db-ja.com

ip_conntrack_countの接続が多すぎます

私のサーバーのconntrackテーブルには120万を超える接続があり、制限を増やし続けていますが、テーブルは増え続けています(ただし、単調ではありません。時々ダウンします)。

$ cat /proc/sys/net/ipv4/netfilter/ip_conntrack_count
1278865

これは、netstatが非常に合理的であるという事実にもかかわらず当てはまります。

$ netstat -ant | wc -l
908

カーネル2.6.32-5-AMD64でDebianを実行しています。 conntrackテーブルが最近の接続情報を保持していることを理解しているため、netstatよりも大きくなると予想されますが、この動作は依然としてかなり極端に見えます。ボックスは主にWebサーバーとして使用されており、Apacheのmod_pythonは接続の処理に使用されています。これらの外部に接続があってはなりません。余分なmod_pythonスレッドは実行されておらず(ps -efは正常に見え、topは正常に見えます)、Apacheとmod_pythonからのエラーログは正常に見えます。 (プライバシー上の理由から、詳細なエラーログ情報を投稿することはできません)。

Ip_conntrackでは、IPアドレスはかなり分散されており、ポート443上にあるように見えます(HTTPSを介して排他的にサービスを提供するWebサーバーで予想されるように)。何がIP接続の暴走を引き起こしているのかわかりません。また、これが既知の問題であることを示唆する情報をインターネット上で見つけることができません。 Apache構成または原因となる可能性のあるものはありますか?他のアイデア?どうもありがとう。

3
Dan

質問に答えるには、sysctl.confでnet.netfilter.nf_conntrack_tcp_timeout_establishedを設定できます。デフォルトは5日程度で、443のトラフィックに影響を与えることなく大幅に短縮できます。 net.ipv4.netfilter.ip_conntrack_maxもバンプアップできます。

4
phuqm

新しいカーネルで追跡を確認するには、「conntrack」パッケージをインストールしてconntrack -Lを実行する必要があります。 conntrackテーブルのリストが表示されます。 「/ proc/net/ip_conntrack」ファイルは非推奨になりました。

0
Dom