Ich habe mehrere Debian Squeeze (6.0.6 auf dem neuesten Stand) als Router verwendet.
Wenn eine Verbindung unterbrochen ist, senden sie ICMP-Weiterleitungen an lokale Hosts. Dies ist das Standardverhalten von Debian und einigen anderen. Sobald die Verbindung wieder hergestellt ist, können die Hosts sie erst nach einem Neustart erreichen.
Ich möchte nicht, dass ICMP-Umleitungen von diesen Routern gesendet werden.
Ich habe getestet echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
und sysctl -w net.ipv4.conf.all.send_redirects=0
und net.ipv4.conf.all.send_redirects=0
in /etc/sysctl.d/local.conf
jede dieser Lösungen den richtigen Wert gelegt/proc/sys/net/ipv4/conf/all/send_redirects
Aber ...
der Kernel sendet weiterhin ICMP-Weiterleitungen. Auch nach einem Neustart:
$ 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
Und die Routing-Tabelle lokaler Hosts (Windows-Computer) ist verschmutzt.
Das kann ich mit netfilter verhindern:
iptables -t mangle -A POSTROUTING -p icmp --icmp-type redirect -j DROP
Irgendeine Idee, warum die übliche Methode nicht funktioniert?
Und wie kann man verhindern, dass ICMP-Umleitungen gesendet werden, ohne Netfilter zu verwenden?
quelle
all
überschreibt nicht, führt bitweise Operationen aus. Sehen Sie diese Antwort überall
vs.default
.send_redirects
Ist einOR
Parameter, so wird das Setzenall.send_redirects
auf 0 durch die Einstellung der Schnittstelle übertroffen.