Mam kilka Debian Squeeze (do tej pory 6.0.6) używanych jako routery.
Gdy łącze jest wyłączone, wysyłają przekierowania ICMP do lokalnych hostów. Jest to domyślne zachowanie Debiana i kilku innych. Więc kiedy link wróci do życia, gospodarze nie mogą go połączyć, dopóki nie uruchomią się ponownie.
Nie chcę, aby z tych routerów wysyłane było przekierowanie ICMP.
Przetestowałem echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
i sysctl -w net.ipv4.conf.all.send_redirects=0
oraz wprowadzenie net.ipv4.conf.all.send_redirects=0
do /etc/sysctl.d/local.conf
każdej z tych roztworu umieścić odpowiednią wartość do/proc/sys/net/ipv4/conf/all/send_redirects
Ale ...
jądro ciągle wysyła przekierowania ICMP. Nawet po ponownym uruchomieniu:
$ 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
Tabela routingu lokalnych hostów (komputerów z systemem Windows) jest zanieczyszczona.
Mogę temu zapobiec za pomocą netfiltera:
iptables -t mangle -A POSTROUTING -p icmp --icmp-type redirect -j DROP
Masz pojęcie o tym, dlaczego zwykła metoda nie działa?
Jak zapobiec wysyłaniu przekierowań ICMP bez korzystania z netfiltera?
źródło
all
nie zastępuje, wykonuje operacje bitowe. Zobacz tę odpowiedź oall
wersetachdefault
.send_redirects
jestOR
parametrem, więc ustawienieall.send_redirects
0 będzie atutem ustawienia interfejsu.