web-dev-qa-db-ja.com

net.netfilter.nf_conntrack_bucketsを設定する正しい場所はどこですか?

現在、起動時に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

これを行うための正しい場所はどこですか?

12
KelchM

Sysctlパラメータは表示専用だと思います。ランタイムの変更には/sys/module/nf_conntrack/parameters/hashsizeインターフェースを使用し、モジュールの初期ロード中にhashsizeモジュールオプションを使用して設定する必要があります。

次のような/etc/modprobe.d/ファイルのエントリが必要です。

options nf_conntrack hashsize=XXXXX

11
Andrew B

アンドリューBの答えに加えて:

何らかの理由で、 RHELドキュメント は、代わりにnf_conntrack_hashsize.modules拡張のような名前の実行可能シェルスクリプトを/etc/sysconfig/modulesに入れることをお勧めします。なぜか分かりません。内容は次のようになります。

#!/bin/sh
exec /sbin/modprobe nf_conntrack hashsize=262144
5
Richard Barrell

/etc/modprobe.d/ディレクトリ内にlocalhostなどのファイルを置く必要があります。

このファイル内に次の行を追加します(値は例です):

options nf_conntrack hashsize=333333

そして今、より迅速な解決策は再起動です、他のオプションはnf_conntrackカーネルモジュールのリロードを試みることですが、他の実行中のモジュールとリンクされているため、少し難しいです。

結果を確認する:

cat /sys/module/nf_conntrack/parameters/hashsize
1
Ricardo Fraile