Persistance de nf_conntrack_max à travers les redémarrages

10

Dans /procJ'ai deux entrées pour nf_conntrack_max:

/ proc / sys / net / netfilter / nf_conntrack_max
/ proc / sys / net / nf_conntrack_max

Le fait de pointer vers la même valeur que de changer l'un change également l'autre. Avec ces deux éléments dans /etc/sysctl.conf:

net.netfilter.nf_conntrack_max = 65528
net.ipv4.netfilter.ip_conntrack_max = 65535

La valeur reste 32764 après un redémarrage afin que les modifications ne fonctionnent pas. Quelqu'un a-t-il déjà rencontré cela? Je suppose que ces valeurs sont appliquées avant que les modules pertinents ne soient chargés, mais j'espérais que quelqu'un connaît peut-être déjà la solution.

Kyle Brandt
la source
Avez-vous déjà trouvé une solution à cela?
Stu Thompson
@Stu: Non, je suis juste devenu paresseux et j'ai écrit un travail cron pour les régler :-P
Kyle Brandt

Réponses:

11

c'est parce que /proc/sys/net/nf_conntrack_maxcompter sur le module nf_conntrack. mais ce module ne sera pas chargé par défaut au démarrage du système.

mais si tu cours

iptables -t nat -L

ou

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

ce module se charge automatiquement et réglé sur le nombre maximum que votre soutien du système (le nombre maximum est 65536 si vous RAM est> 4G, mais il varie dans le système différent.) , vous pouvez le mettre à un plus grand nombre (comme 6553600) dans /etc/sysctl.conf) .

Solution :

ajoutez une ligne à la fin du fichier /etc/modules:

nf_conntrack

ces modules seraient chargés au démarrage du système avant d'être sysctlexécutés.

Ethan Xu
la source
merci :) - bien que j'aie aussi eu une mauvaise configuration qui a arrêté le chargement
Christian
3

Parce que ça devrait être:

net.netfilter.nf_conntrack_max = 65535

Et maintenant, vous pouvez définir cela sans redémarrer avec: sysctl -p /etc/sysctl.conf

Maciej Lasyk
la source
2

Je n'utilise pas Ubuntu, mais en y réfléchissant dans mon état d'esprit CentOS, j'ai émis la même hypothèse que vous - les sysctls sont appliqués trop tôt. Certaines recherches ont révélé qu'il s'agissait d'un bogue déposé depuis 2006 .

Il semble que mettre un autre lien symbolique en priorité> S40 pour exécuter à nouveau le script d'initialisation procps ferait probablement ce dont vous avez besoin. D'après le résumé du bogue, il semble qu'une ré-architecture de la méthodologie Ubuntu sysctl soit en ordre (et, de manière amusante, le bogue a été attribué à quelqu'un qui ne savait pas qu'il avait été attribué et ne pouvait pas s'en empêcher).

Evan Anderson
la source