Linux envoie toujours la redirection ICMP

J'ai plusieurs Debian Squeeze (6.0.6 à jour) utilisé comme routeurs.
Quand un lien est en panne, ils envoient des redirections ICMP aux hôtes locaux. C'est le comportement par défaut de Debian et de plusieurs autres. Donc, une fois que le lien reprend vie, les hôtes ne peuvent pas l'atteindre avant le redémarrage.

Je ne veux pas de redirection ICMP à partir de ces routeurs.

J'ai testé echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects et sysctl -w net.ipv4.conf.all.send_redirects=0 et en mettant net.ipv4.conf.all.send_redirects=0 dans /etc/sysctl.d/local.conf
Chacune de ces solutions met la bonne valeur dans /proc/sys/net/ipv4/conf/all/send_redirects

Mais…
le kernel continue à envoyer des redirections ICMP. Même après un redémarrage:

 $ tcpdump -n -i eth0 00:56:17.186995 IP 192.168.0.254 > 192.168.0.100: ICMP redirect 10.10.13.102 to host 192.168.0.1, length 68 

Et la table de routing des hôtes locaux (ordinateurs Windows) sont pollués.

Je peux prévenir cela avec netfilter:
iptables -t mangle -A POSTROUTING -p icmp --icmp-type redirect -j DROP

Toute idée de pourquoi la méthode habituelle ne fonctionne pas?
Et comment éviter que la redirection ICMP soit envoyée, sans utiliser netfilter?

La bonne command est: echo 0 | tee /proc/sys/net/ipv4/conf/*/send_redirects echo 0 | tee /proc/sys/net/ipv4/conf/*/send_redirects
Parce que vous devez avoir 0 sur 'all' et sur 'interface_name' pour le désactiver.

Dans le file /etc/sysctl.conf ou similaire, vous devez définir 'all' + 'par défaut' (ou 'all' + 'interface mais l'interface peut ne pas exister quand ce file est traité).