Eu tenho vários Debian Squeeze (6.0.6 atualizados) usados como roteadores.
Quando um link está inoperante, eles enviam redirecionamentos de ICMP para hosts locais. Este é o comportamento padrão do Debian e vários outros. Assim, quando o link voltar à vida, os hosts não poderão acessá-lo até a reinicialização.
Não quero que nenhum redirecionamento ICMP seja enviado desses roteadores.
Eu testei echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
e sysctl -w net.ipv4.conf.all.send_redirects=0
coloquei net.ipv4.conf.all.send_redirects=0
em /etc/sysctl.d/local.conf
cada uma dessas soluções colocar o valor certo em/proc/sys/net/ipv4/conf/all/send_redirects
Mas ...
o kernel continua enviando redirecionamentos de ICMP. Mesmo após uma reinicialização:
$ 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
E a tabela de roteamento de hosts locais (computadores Windows) está poluída.
Eu posso evitar isso com o netfilter:
iptables -t mangle -A POSTROUTING -p icmp --icmp-type redirect -j DROP
Alguma idéia de por que o método usual não funciona?
E como impedir que o redirecionamento ICMP seja enviado sem usar o netfilter?
fonte
all
não substitui, faz operações bit a bit. Veja esta resposta sobreall
vs.default
.send_redirects
é umOR
parâmetro, portanto, a configuraçãoall.send_redirects
para 0 será superada pela configuração da interface.