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


12

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

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

回答:


11

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

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

options nf_conntrack hashsize=XXXXX


/ sys / module / nf_conntrack / parameters / hashsizeを使用してハッシュサイズを設定すると、net.netfilter.nf_conntrack_buckets sysctlは更新されず、modprobeを使用してそれを再起動すると変更されることに気付きました。それは、最初の方法で値を変更しても、新しい値が完全に適用されないということですか?
-andresp

5

アンドリューBの答えにさらに:

何らかの理由で、RHELのドキュメントでは、代わりにnf_conntrack_hashsize.modules拡張子のような名前の実行可能なシェルスクリプトを置くことを推奨しています/etc/sysconfig/modules。理由はわかりません。内容は次のようになります。

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

そうでなければロードされなかったであろう追加のモジュールをロードしたいならば、これが必要であるように思われます。[引用]新しい<file_name> .modules [/ quote]
-hbogert

1

たとえば、localhostなどのファイルを/etc/modprobe.d/ディレクトリ内に配置する必要があります。

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

options nf_conntrack hashsize=333333

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

以下を使用して結果を確認します。

cat /sys/module/nf_conntrack/parameters/hashsize
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.