Augmenter ip_conntrack_max en toute sécurité?

9

Je vois de temps en temps ce qui suit dans mes journaux:

noyau: ip_conntrack: table pleine, suppression de paquet.

Actuellement, j'ai ip_conntrack_max réglé sur 65536 (par défaut, RHEL5).

En gardant à l'esprit l'utilisation de la mémoire, combien puis-je augmenter en toute sécurité cette valeur? J'ai 4 Go de RAM sur cette boîte. L'une des fonctions de cette machine est en tant que serveur de contenu statique, ce qui explique probablement le nombre élevé de connexions, et signifie également que je voudrais conserver autant de mémoire du système d'exploitation utilisée pour la mise en cache que possible.

Quelle est également la différence entre les deux suivants? / proc / sys / net / ipv4 / netfilter / ip_conntrack_max / proc / sys / net / ipv4 / ip_conntrack_max

Que dois-je modifier?

Merci!

Neil
la source

Réponses:

9

Tout d'abord, posez-vous une question: votre configuration nécessite-t-elle un suivi de connexion? S'il ne s'agit que d'un serveur et que le pare-feu / NAT est effectué ailleurs, vous pouvez probablement désactiver conntrack tous ensemble.

Deuxièmement, vérifiez si vos entrées conntrack ont ​​du sens. Parfois, les tables conntrack sont remplies de déchets en raison d'une mauvaise configuration du réseau ou du pare-feu. Ce sont généralement des entrées pour des connexions qui n'ont jamais été entièrement établies. Cela peut arriver par exemple lorsque le serveur reçoit des paquets SYN de connexion entrants, mais les réponses du serveur sont toujours perdues quelque part sur le réseau.

Les seules machines sur lesquelles j'avais un message «ip_conntrack: table pleine» et qui avaient besoin d'augmenter ip_conntrack_max (au lieu de fixer la configuration), où les routeurs faisaient du NAT pour des réseaux assez gros (des milliers de points de terminaison).

Si vous savez que vous avez besoin de conntrack et qu'il doit vraiment être plus gros qu'il ne l'est, augmentez le nombre jusqu'à ce que vous n'obteniez plus de messages «table pleine». Et regardez l'utilisation de la mémoire.

Certaines statistiques sur l'allocation de mémoire pour les objets conntrack se trouvent dans le fichier / proc / slabinfo.

Jacek Konieczny
la source
6

Le chemin avec "netfilter" est l'ancienne façon de se référer au même paramètre. Vous pouvez modifier l'un ou l'autre fichier.

# cat / proc / sys / net / ipv4 / ip_conntrack_max  
655360
# cat / proc / sys / net / ipv4 / netfilter / ip_conntrack_max
655360
# echo 655361> / proc / sys / net / ipv4 / ip_conntrack_max
# cat / proc / sys / net / ipv4 / netfilter / ip_conntrack_max
655361
BrianEss
la source
Dans ubuntu 10.04 / 2.6.32-45-server, seul ipv4 / netfilter / ip_conntrack_max existe
okwap
Votre réponse est différente de celle de antmeetspenguin.blogspot.tw/2011/01/…
okwap