比如在一个网段内有一台主机A,两台路由器B和C.
A的默认网关设成B,当A要跟一个外网的机器D通讯的时候会将这些数据发送给路由器B,如果路由器B对照D的地址段查找自己的路由表后发现到D网段的下一跳地址是C,也就是说对于B来说,这些数据进出都在同一个接口上,大可不必经过B折腾这么一下,如果能让这些数据直接走C出去不是更好么?于是icmp redirect起作用了,如果icmp redirect在B的接口起用了的话,B就会发一个icmp redirect 信息给A说,这些数据,你丫直接给C好了,表再给我了,这样A以后到D段的数据就直接给C了
这样的好处在处理多出口的时候能实现自动的主机路由配置,但是有可能使路由不按照你想象的路径进行转发造成理解上偏差
哦,对了发送icmp redirect的条件还有一个是在没有指定源路由的情况下