Où est le bon endroit pour définir net.netfilter.nf_conntrack_buckets?

12

J'essaie actuellement de définir net.netfilter.nf_conntrack_buckets au démarrage. J'ai d'abord supposé que cela pouvait être fait via sysctl.conf, mais net.netfilter.nf_conntrack_buckets (et d'autres configurations de net.netfilter) n'étaient pas appliqués du tout. L'ajout de sysctl -p à rc.local a permis d'appliquer toutes les configurations de net.netfilter à l'exception de net.netfilter.nf_conntrack_buckets. Je noterai également qu'essayer de définir cela à partir du terminal à l'aide de sysctl -w entraîne `` erreur: autorisation refusée sur la clé 'net.netfilter.nf_conntrack_buckets' '

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

Où est le bon endroit pour le faire?

KelchM
la source

Réponses:

11

Je pense que le paramètre sysctl est pour la visualisation uniquement. Vous souhaiterez utiliser l' /sys/module/nf_conntrack/parameters/hashsizeinterface pour les modifications d'exécution et l' hashsizeoption module pour la définir lors du chargement initial du module.

Vous souhaitez une entrée dans un /etc/modprobe.d/fichier qui ressemble à ceci:

options nf_conntrack hashsize=XXXXX

Andrew B
la source
J'ai remarqué que si vous définissez la taille de hachage via / sys / module / nf_conntrack / parameters / hashsize, le net.netfilter.nf_conntrack_buckets sysctl n'est pas mis à jour, tandis que si vous le faites via modprobe puis redémarrez, il est modifié. Est-ce à dire que la modification de la valeur via la première méthode n'applique pas complètement la nouvelle valeur?
andresp
5

Suite à la réponse d'Andrew B:

Pour une raison quelconque, la documentation RHEL recommande de mettre à la place un script shell exécutable avec un nom comme l' nf_conntrack_hashsize.modulesextension /etc/sysconfig/modules. Je ne sais pas pourquoi. Le contenu ressemblerait à:

#!/bin/sh
exec /sbin/modprobe nf_conntrack hashsize=262144
Richard Barrell
la source
Il semble que cela soit nécessaire si vous souhaitez charger des modules supplémentaires qui n'auraient pas été chargés autrement. [quote] Vous pouvez spécifier des modules supplémentaires à charger en créant un nouveau <nom_fichier> .modules [/ quote]
hbogert
1

Vous devez placer un fichier appelé, par exemple, localhost dans le répertoire /etc/modprobe.d/.

Dans ce fichier, ajoutez ces lignes (la valeur est un exemple):

options nf_conntrack hashsize=333333

Et maintenant, la solution la plus rapide est un redémarrage, l'autre option est d'essayer de recharger le module du noyau nf_conntrack, ce qui est un peu difficile car il est lié à d'autres modules en cours d'exécution.

Vérifiez le résultat avec:

cat /sys/module/nf_conntrack/parameters/hashsize
Ricardo Fraile
la source