Gdzie jest właściwe miejsce na ustawienie net.netfilter.nf_conntrack_buckets?

12

Obecnie próbuję ustawić net.netfilter.nf_conntrack_buckets podczas uruchamiania. Początkowo zakładałem, że można to zrobić za pomocą sysctl.conf, ale net.netfilter.nf_conntrack_buckets (i inne konfiguracje net.netfilter) wcale nie zostały zastosowane. Dodanie sysctl -p do rc.local pozwoliło na zastosowanie wszystkich konfiguracji net.netfilter, z wyjątkiem net.netfilter.nf_conntrack_buckets. Zauważę też, że próba ustawienia tego z terminala przy użyciu sysctl -w powoduje błąd: odmowa dostępu do klucza „net.netfilter.nf_conntrack_buckets”

# This should be applied at boot
net.netfilter.nf_conntrack_max=1966080
net.netfilter.nf_conntrack_buckets=245760

Gdzie jest to właściwe miejsce?

KelchM
źródło

Odpowiedzi:

11

Myślę, że parametr sysctl służy wyłącznie do przeglądania. Będziesz chciał użyć /sys/module/nf_conntrack/parameters/hashsizeinterfejsu do zmian w środowisku wykonawczym i hashsizeopcji modułu, aby ustawić go podczas początkowego ładowania modułu.

Chcesz wpis w /etc/modprobe.d/pliku, który wygląda mniej więcej tak:

options nf_conntrack hashsize=XXXXX

Andrew B.
źródło
Zauważyłem, że jeśli ustawisz rozmiar skrótu za pomocą / sys / module / nf_conntrack / parameters / hashsize, net.netfilter.nf_conntrack_buckets sysctl nie zostanie zaktualizowany, a jeśli zrobisz to przez modprobe, a następnie uruchom ponownie, to zostanie zmieniony. Czy to oznacza, że ​​zmiana wartości za pomocą pierwszej metody nie do końca stosuje nową wartość?
i
5

W nawiązaniu do odpowiedzi Andrew B.

Z jakiegoś powodu dokumentacja RHEL zaleca umieszczenie w tym celu wykonywalnego skryptu powłoki o nazwie takiej jak nf_conntrack_hashsize.modulesrozszerzenie /etc/sysconfig/modules. Nie mam pojęcia dlaczego. Treści wyglądałyby następująco:

#!/bin/sh
exec /sbin/modprobe nf_conntrack hashsize=262144
Richard Barrell
źródło
Wydaje się, że jest to potrzebne, jeśli chcesz załadować dodatkowe moduły, które w innym przypadku nie zostałyby załadowane. [quote] Możesz określić dodatkowe moduły do ​​załadowania, tworząc nowy <nazwa_pliku> .modules [/ quote]
hbogert 30.01.2017
1

Musisz umieścić plik o nazwie np. Localhost w katalogu /etc/modprobe.d/.

Wewnątrz tego pliku dodaj następujące wiersze (wartość jest przykładem):

options nf_conntrack hashsize=333333

A teraz, im szybszym rozwiązaniem jest restart, drugą opcją jest próba przeładowania modułu jądra nf_conntrack, co jest nieco trudne, ponieważ jest powiązane z innymi uruchomionymi modułami.

Sprawdź wynik za pomocą:

cat /sys/module/nf_conntrack/parameters/hashsize
Ricardo Fraile
źródło