web-dev-qa-db-ja.com

ロードバランサーサーバーにconntrackが必要ですか?

ロードバランサーとして3つのプライベート専用サーバーがあります。そして、このプライベート専用サーバーへのIPアドレスパブリックサインがあります。突然、これら3つのLBサーバーの1つがnf_conntrack: table full, dropping packet

私の専用サーバーの仕様は32コアです。 256GB。私はいくつかのnf_conntrackを読み、最終的にconntrack_maxを約400万に増やすことを計画しています。しかし、サーバーパフォーマンスの経験と専門家である皆さんからのより多くの推奨が必要です。

Conntrackはいつ必要ですか?一方、これはプライベートIPを備えた専用サーバーであり、NATゲートウェイではありません。conntrackを削除する必要がありますか?

1
Nicky Puff

Linux netfilter には、ステートフルファイアウォール、NAT、および一般的なパケットマングリングなど、いくつかの用途があります。ステートフルファイアウォールは、ルーター以外の設定ですぐに使用できる可能性がありますが、他の何かである可能性があります。

ホストレベルのファイアウォールは便利であり、conntrackを完全に削除することは難しいため、この制限に達しないように適切なサイズを設定してください。

2分間のフローの総数を見積もります。アプリケーション接続をログに記録し、 conntrack-tools またはパケットキャプチャを使用します。必要な桁数を取得するには、安全率を掛けます。 400万は高い数字ですが、もっともらしいです。それぞれが数百バイトのメモリを消費しますが、数百GBのボックスでは1GBまたは2GBは大した問題ではありません。

net.netfilter.nf_conntrack_maxの新しい値を/etc/sysctl.d/にドロップすることに加えて、nf_conntrackハッシュサイズのサイズを変更します。大まかに最大/ 4をconntrackし、2の累乗に切り上げます。

古いカーネルを含むいくつかの詳細については、 RHEL KB 8721 ip_conntrackまたはnf_conntrack:テーブルがいっぱいです。パケットをドロップします を参照してください。

1
John Mahowald