iptables connlimit-above は予想よりも多くの接続を可能にします。

iptables connlimit-above は予想よりも多くの接続を可能にします。

kubernetesノードでIPごとの接続制限を設定するためにiptables connlimitを使用しようとしています。 VMの各コンテナには異なるソースIP(オーバーレイネットワーク)があるため、connlimitを使用すると機能します。ルールを追加しました。

iptables -I FORWARD 1 -p tcp --syn -m connlimit --connlimit-above 25 --connlimit-mask 32 -j REJECT --reject-with tcp-reset

コンテナに外部サービスへの50の接続をバーストさせることでこれをテストしています。これは最初の最初の発症中に機能します。 25個の接続、25個の接続が拒否されました。 conntrackテーブルに正しいソースIPを持つ25のエントリを表示できます。

数秒待ってからスクリプトを実行して別の50個の接続(そのうち25個はまだESTABLISHED状態)を作成しようとすると、さらに25個の接続が通過する可能性があります。これで、conntrackテーブルで同じソースIPを使用して、すべての確立された50の接続を表示できるようになりました。望ましい結果は、25のオリジナルがまだ接続されている限り何も起こらないということです。

私は何が間違っていましたか?

コンテナネットワークの構成方法のため、入力チェーンの代わりに転送を使用しています。

ベストアンサー1

おすすめ記事