J'ai plusieurs Debian Squeeze (6.0.6 à jour) utilisés comme routeurs.
Lorsqu'un lien est arrêté, ils envoient des redirections ICMP vers des hôtes locaux. Il s'agit du comportement par défaut de Debian et de plusieurs autres. Ainsi, une fois le lien rétabli, les hôtes ne peuvent pas l'atteindre avant le redémarrage.
Je ne veux pas qu'une redirection ICMP soit envoyée à 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 mis net.ipv4.conf.all.send_redirects=0
dans /etc/sysctl.d/local.conf
chacune de ces solutions mettre la bonne valeur dans/proc/sys/net/ipv4/conf/all/send_redirects
Mais ...
le noyau continue d'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 routage des hôtes locaux (ordinateurs Windows) est polluée.
Je peux empêcher cela avec netfilter:
iptables -t mangle -A POSTROUTING -p icmp --icmp-type redirect -j DROP
Une idée de pourquoi la méthode habituelle ne fonctionne pas?
Et comment empêcher l'envoi d'une redirection ICMP, sans utiliser netfilter?
la source
all
ne remplace pas, il effectue des opérations au niveau du bit. Voir cette réponse au sujetall
contredefault
.send_redirects
est unOR
paramètre, donc le réglageall.send_redirects
à 0 sera remplacé par le réglage de l'interface.