ICMP重定向:如何使用icmpush进行测试

分享于 

2分钟阅读

电脑

  繁體 雙語

问题:

我想了解在接收到ICMP重定向时,路由表如何更改路由表。 因为我使用


icmpush -v red -sp current-gateway -gw new-gateway -dest google.com -c host -prot tcp my-eth1-ip-address



( 返回成功),但结果是

 
route -n 



 

我已经检查过了。当然,我已经检查了


cat/proc/sys/net/ipv4/conf/eth1/accept_redirects



这是 1,这是一个 Ubuntu 12机器,最后一个稳定版本的内核,没有防火墙安装。

所以问题是:有什么可能出错?


回答 1:

根据 Documentation/networking/ip-sysctl.txt,默认情况下,重定向仅适用于路由表中已经列出的那些网关。






secure_redirects - BOOLEAN


 Accept ICMP redirect messages only for gateways,


 listed in default gateway list.


 secure_redirects for the interface will be enabled if at least one of


 conf/{all,interface}/secure_redirects is set to TRUE,


 it will be disabled otherwise


 default TRUE





回答 2:

一个假设:icmpush的调用不使用外部接口 eth1,而是主机一个 lo,因这里内核不能识别它是正确的。 此外,在非常旧的linux内核版本中,这些路由没有在 route -n的响应中显示。 如上所述,route -nC的响应可能是包含临时重定向路由的正确方法。

关于接受发送到另一个数据包的重定向的@grawity,: 你有没有读到? 因为我对你会有兴趣的。



test  RED  Redirect  ICMP