我正在尝试(在GNS3,如果这是重要的话)与一个非常简单的拓扑三个路由器通过集线器连接。我试图从一个路由器切换到另一个路由器的时间,比如R1到R2。R3用ICMP重定向消息应答,导致R1重新向R2发出ping请求。循环在模拟网络上继续无限破坏。问题是为什么R3回复R1的消息不是指向它的(ping是从R1到R2)。

R3路由表:-
R3>enable
Password:
R3#show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
+ - replicated route, % - next hop override
Gateway of last resort is not set
10.0.0.0/8 is variably subnetted, 4 subnets, 2 masks
O 10.1.0.0/16 [110/2] via 192.168.0.1, 00:58:17, FastEthernet1/0
O 10.2.0.0/16 [110/2] via 192.168.0.2, 00:58:17, FastEthernet1/0
C 10.3.0.0/16 is directly connected, FastEthernet0/0
L 10.3.0.1/32 is directly connected, FastEthernet0/0
C 192.168.0.0/16 is directly connected, FastEthernet1/0
192.168.0.0/32 is subnetted, 1 subnets
L 192.168.0.3 is directly connected, FastEthernet1/0
R3#更新:问题不是ICMP重定向,而是任何路由器都会将它无法处理的ICMP ping数据包放置回它从网络洪泛到TTL过期之前到达的接口。
Update2:用开关代替集线器解决了这个问题。
发布于 2016-07-27 06:41:41
问题是,CISCO路由器假定它位于交换机后面,而不是集线器,因此在接收到错误MAC地址时,它会尝试“修复”这种情况(假设交换机有错误的端口/ MAC映射),方法是用自己的SRC MAC替换原始的SRC MAC,然后重发数据包(使用TTL-1)。当然,在集线器的情况下,它不仅不能修复这种情况,还会使情况变得更糟,因为现在其他路由器(在我们的例子中至少有一个)接收错误的MAC消息,导致“无限”泛滥。
发布于 2016-07-23 00:51:57
这是预期的行为。由于您最初使用的是集线器(除了接收到的接口之外,它将所有的数据包发送出去),路由器接收的包将发送给同一子网上的其他路由器。结果,这些路由器将重定向发送到ping始发者,告诉它“不要将您的数据包发送给我,直接发送到您试图ping的路由器。”
正如您所提到的,使用开关而不是集线器解决这个问题。这是因为交换机只确保ping指定的路由器接收数据包。由于子网上的其他路由器不接收这些数据包,它们不再发送重定向。
发布于 2016-07-28 02:39:53
R3可以有效地处理数据包。R3有一条R2退出f1/0的路线。
当路由器的下一个数据包跳出与接收到的接口相同时,您将得到ICMP重定向。
https://networkengineering.stackexchange.com/questions/33342
复制相似问题