我有几个Debian压缩(6.0.6最新)用作路由器。
当链接关闭时,它们将ICMP重定向到本地主机。这是Debian和其他几个人的默认行为。因此,一旦链接恢复正常,主机直到重新启动才能到达它。
我不想任何ICMP重定向被从那些路由器发送。
我测试了echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects和sysctl -w net.ipv4.conf.all.send_redirects=0,并把net.ipv4.conf.all.send_redirects=0放到了/etc/sysctl.d/local.conf中
所有这些解决方案都将正确的值放入/proc/sys/net/ipv4/conf/all/send_redirects中。
但是..。
内核继续发送ICMP重定向。即使在重新启动之后:
$ 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本地主机(Windows计算机)的路由表受到污染。
我可以用netfilter来防止这种情况:
iptables -t mangle -A POSTROUTING -p icmp --icmp-type redirect -j DROP
知道为什么通常的方法不起作用吗?
以及如何防止ICMP重定向被发送,而不使用netfilter?
发布于 2012-12-10 12:56:23
正确的命令是:echo 0 | tee /proc/sys/net/ipv4/conf/*/send_redirects
因为要禁用它,必须在“all”和“interface_name”上有0。
在/etc/sysctl.conf或类似的文件中,您必须设置'all‘+’默认‘(或'all’+‘接口’,但在处理该文件时,接口可能还不存在)。
https://unix.stackexchange.com/questions/57941
复制相似问题