首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux总是发送ICMP重定向。

问Linux总是发送ICMP重定向。
EN

Unix & Linux用户
提问于 2012-12-08 00:29:15
回答 1查看 23.3K关注 0票数 15

我有几个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重定向。即使在重新启动之后:

代码语言:javascript
复制
$ 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?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 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’+‘接口’,但在处理该文件时,接口可能还不存在)。

票数 15
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/57941

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档