Linux siempre envía redireccionamiento ICMP

14

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_redirectsy sysctl -w net.ipv4.conf.all.send_redirects=0y poniendo net.ipv4.conf.all.send_redirects=0en /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?

Gregory MOUSSAT
fuente

Respuestas:

14

El comando correcto es: echo 0 | tee /proc/sys/net/ipv4/conf/*/send_redirects
Porque debe tener 0 en 'todos' y en 'nombre_interfaz' para deshabilitarlo.

En /etc/sysctl.confun archivo similar, debe establecer 'todos' + 'predeterminado' (o 'todos' + 'interfaz', pero es posible que la interfaz ya no exista cuando se procesa este archivo).

Bertrand SCHITS
fuente
55
¿Cuál es el punto del directorio "todos" entonces? Tuve la vaga impresión de que sobrescribiría los valores de todas las demás entradas.
Elrond
@Elrond, allno sobrescribe, realiza operaciones bit a bit. Ver esta respuesta acerca allvsdefault . send_redirectses un ORparámetro, por lo que la configuración all.send_redirectsde la interfaz superará la configuración a 0.
Leif Arne Storset