このエラーを修正するにはどうすればいいですか: 「ipset v6.11: ハッシュがいっぱいなので、これ以上要素を追加できません」

このエラーを修正するにはどうすればいいですか: 「ipset v6.11: ハッシュがいっぱいなので、これ以上要素を追加できません」

voipbl の更新スクリプトを手動で実行すると、ipset から次のエラーが発生します。ipset v6.11: ハッシュがいっぱいなので、これ以上要素を追加できませんブラックリストに載っている IP の一部がまだファイアウォールを通過しているようなので、手動で実行しています。ipset のマニュアル ページを見ると、ハッシュ サイズや要素の最大数を増やすことが関係しているようですが、どちらもうまくいかないようです。

セットのリストは次のとおりです。

CommandMe-> ipset voipbl -l
    Name: voipbl
    Type: hash:ip
    Header: family inet hashsize 2048 maxelem 200000
    Size in memory: 16460
    References: 1
    Members:

セットに含まれたアドレスの数は、次のようになります。

CommandMe-> ipset -l |wc -l
65549

マニュアルによると、セットに格納できる要素のデフォルトの最大数は 65536 です。その制限を超えているようですが、65549 を超える要素を取得することはできません。

ブラックリストには約 80000 個のアドレスがあります。ipset が残りの IP (65550-80000) をハッシュに保存できなかったためにこのエラーが発生しているのでしょうか? どなたか正しい方向を示していただけませんか? よろしくお願いします!

答え1

voipbl スクリプトには次の行が含まれています:ipset create voipbl_temp hash:ipまた、次の行も含まれています:

ipset swap voipbl_temp voipbl
ipset destroy voipbl_temp || true 

ハッシュ サイズ/最大要素の変更は、voipbl_temp ipset を作成する行に対して行う必要がありました。

関連情報