我尝试使用 Cisco Packet Tracer(版本 5.3.2)在实验室中观察 ICMP 重定向,但没有看到它们,这让我相信要么是我的实验室配置不正确,要么是我对 ICMP 重定向的理解不正确,要么是 Packet Tracer 不支持/不使用 ICMP 重定向。以下是我认为关于 ICMP 重定向的真实情况:
当满足以下所有条件时,路由器会发送 ICMP 重定向:
数据包进入路由器的接口与数据包路由出的接口相同。
源 IP 地址的子网或网络与路由数据包的下一跳 IP 地址位于同一子网或网络。
该数据报不是源路由的。
路由器内核配置为发送重定向。
我已经在 Cisco Packet Tracer 中设置了实验室,如图所示,当从 PC1 ping 到 PC3 时,我期望看到来自 Router1 的 ICMP 重定向。我没有看到 ICMP 重定向,看起来 Router1 实际上正在通过 Router2 路由所有数据包。我在 Router1(和 Router2)上启用了 IP ICMP 调试,但在两个控制台中都没有看到任何 ICMP 重定向活动。我也没有在 PC1 的路由表中看到到 PC3 网络的路由,我认为这证实了 ICMP 重定向没有发生。我在路由器 1 和 2 上仅使用静态路由。我对 ICMP 重定向的理解是否不正确,或者我的实验室配置是否存在问题,或者 Packet Tracer 是否不支持/不使用 ICMP 重定向?
答案1
这是三年前的问题,但浏览了以前未回答的赞同问题,所以说:这是 Packet Tracer 的错。我推断如何在 Cisco IOS 中禁用 ICMP 重定向数据包?
笔记:
首先,应该避免使用 ICMP 重定向,它们的唯一用途是在设计欠佳的网络中,即使如此,没有它,网络也可能运行得更好。阅读:http://www.cymru.com/gillsr/documents/icmp-redirects-are-bad.htm
我想你已经检查过 R1 配置中没有包含“no ip redirect”。它可能不是“默认”,但它是非常常见的。