現在、起動時にnet.netfilter.nf_conntrack_bucketsを設定しようとしています。私は当初、これはsysctl.confを介して実行できると想定していましたが、net.netfilter.nf_conntrack_buckets(および他のnet.netfilter構成)はまったく適用されませんでした。 sysctl -pをrc.localに追加すると、net.netfilter.nf_conntrack_bucketsを除くすべてのnet.netfilter構成を適用できます。また、sysctl -wを使用して端末からこれを設定しようとすると、「エラー:キー 'net.netfilter.nf_conntrack_bucketsでアクセスが拒否されました」が発生することにも注意してください。
# This should be applied at boot
net.netfilter.nf_conntrack_max=1966080
net.netfilter.nf_conntrack_buckets=245760
これを行うための正しい場所はどこですか?
Sysctlパラメータは表示専用だと思います。ランタイムの変更には/sys/module/nf_conntrack/parameters/hashsize
インターフェースを使用し、モジュールの初期ロード中にhashsize
モジュールオプションを使用して設定する必要があります。
次のような/etc/modprobe.d/
ファイルのエントリが必要です。
options nf_conntrack hashsize=XXXXX
アンドリューBの答えに加えて:
何らかの理由で、 RHELドキュメント は、代わりにnf_conntrack_hashsize.modules
拡張のような名前の実行可能シェルスクリプトを/etc/sysconfig/modules
に入れることをお勧めします。なぜか分かりません。内容は次のようになります。
#!/bin/sh
exec /sbin/modprobe nf_conntrack hashsize=262144
/etc/modprobe.d/ディレクトリ内にlocalhostなどのファイルを置く必要があります。
このファイル内に次の行を追加します(値は例です):
options nf_conntrack hashsize=333333
そして今、より迅速な解決策は再起動です、他のオプションはnf_conntrackカーネルモジュールのリロードを試みることですが、他の実行中のモジュールとリンクされているため、少し難しいです。
結果を確認する:
cat /sys/module/nf_conntrack/parameters/hashsize