web-dev-qa-db-ja.com

このエラーを修正するにはどうすればよいですか:「ipsetv6.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
d10nte

Voipblスクリプトには、次の行が含まれています:ipset create voipbl_temp hash:ipおよび:

ipset swap voipbl_temp voipbl
ipset destroy voipbl_temp || true 

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

1
d10nte