Tengo varios Debian Squeeze (6.0.6 actualizado) utilizados como enrutadores.
Cuando un enlace está inactivo, envían redirecciones ICMP a los hosts locales. Este es el comportamiento predeterminado de Debian y varios otros. Entonces, una vez que el enlace vuelve a la vida, los hosts no pueden alcanzarlo hasta que se reinicia.
No quiero que se envíe ninguna redirección ICMP desde esos enrutadores.
Probé echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
y sysctl -w net.ipv4.conf.all.send_redirects=0
y poniendo net.ipv4.conf.all.send_redirects=0
en /etc/sysctl.d/local.conf
cada uno de esos solución de poner el valor a la derecha en/proc/sys/net/ipv4/conf/all/send_redirects
Pero ...
el núcleo sigue enviando redireccionamientos ICMP. Incluso después de reiniciar:
$ 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
Y la tabla de enrutamiento de los hosts locales (computadoras con Windows) está contaminada.
Puedo evitar esto con netfilter:
iptables -t mangle -A POSTROUTING -p icmp --icmp-type redirect -j DROP
¿Alguna idea de por qué el método habitual no funciona?
¿Y cómo evitar que se envíe la redirección ICMP sin usar netfilter?
fuente
all
no sobrescribe, realiza operaciones bit a bit. Ver esta respuesta acercaall
vsdefault
.send_redirects
es unOR
parámetro, por lo que la configuraciónall.send_redirects
de la interfaz superará la configuración a 0.