机器A 10.167.27.10 在A上的路线如下:
0.0.0.0 10.167.27.1 0.0.0.0 UG 0 0 0 eth0
10.167.28.20 10.167.27.11 255.255.255.255 UGH 0 0 0 eth0
10.167.27.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
机器B 10.167.27.11 B上的路线像:
default 10.167.27.1 0.0.0.0 UG 0 0 0 eth0
10.167.27.0 * 255.255.255.0 U 0 0 0 eth0
在B上ip_forward和accept_redirects设置为1。
机器C为10.167.28.20。我可以从B pingC。 由于存在使用B作为A上的网关的C路由,因此我认为如果从A ping C,则会收到ICMP重定向消息。但实际上我没有得到任何答复。
我在B的eth0上进行了tcpdump,然后看到ICMP到达了。但是为什么不转发它们呢?
更新:
在B上,当处理ICMP数据包时,我使用Netfilter挂钩函数输出日志。我添加到FORWARD挂接点的日志已打印,并且路由结果正确。但是未打印POST ROUTING挂接点处的日志。我很困惑...