DEPRECATED

On essaye de ne plus faire comme ça à Grenode (cf Livraisons IP).

Taille de la table arp trop petite

À Grenode on délivre actuellement des /32 aux membres dans des vlan dédiées : le routeur de Grenode concerné n'a donc pas d'ip dans le subnet à une ip du membre.

La machine du membre a donc une configuration réseau assez spéciale ou sa passerelle par defaut est sa propre ip et son netmask c'est du /32. Pour que cela marche, la machine au bout du vlan du membre fait du proxy arp. C'est à dire, qu'elle répond tout le temps son adresse mac quand la machine du membre demande une corespondance arp.

Une conséquence est que la table arp devient assez conséquentee lorsque qu'il y a beaucoup de connections simultanées. Le noyau se plaint alors de la sorte :

Neighbour table overflow

Les valeurs par défaut qui régissent le netoyage de la taille de la table arp ne sont plus suffisantes. Il convient alors de les changer, par exemple dans le fichier /etc/sysctl.d/local.conf :

net.ipv4.neigh.default.gc_thresh1 = 256
net.ipv4.neigh.default.gc_thresh2 = 2048
net.ipv4.neigh.default.gc_thresh3 = 4096
  • gc_thresh1 est la taille au dessous de laquelle le garbage collector n'est pas lancé
  • entre gc_thresh1 et gc_thresh2 le garbage collector est lancé au bout de 30 secondes (par défaut)
  • entre gc_thresh2 et gc_thresh3 le garbage collector est lancé au bout de 5 secondes (par défaut)
  • gc_thresh3 est la taille max de la table

Pour voir la taille de sa table arp :

arp -an | wc -l

Plus d'info : http://www.kernel.org/doc/man-pages/online/pages/man7/arp.7.html