我有以下配置(我会发布一张图片,但不足以容纳2名以上的代表):
PC1 (10.0.2.10/24)和PC2 (10.0.2.137/29)连接到集线器,集线器连接到接口FastEthernet0 0/1上的路由器(10.0.2.138/24)。
我用这个配置运行了两个测试。
第一个测试:我从PC1发送了一个ping到PC2,没有为这两个主机设置默认网关。PC1认为PC2在同一个子网中,所以它发送一个ARP广播。但事实并非如此,因此它没有收到任何答复。到目前一切尚好。结果
第二个测试:我将路由器设置为PC1和PC2's路由表中的默认网关。然后,我再次从PC1发送一个ping到PC2。这一次,PC2似乎直接回复了PC1's的ARP广播,而PC1继续发送PC2的ping请求。然后,PC2使用其路由表通过默认网关回复PC1,然后获得一个ICMP重定向来更新其路由缓存,以直接回复PC1。结果
我的困惑:当PC1's在不同的子网上广播时,PC2是如何回应它的?拥有默认网关是如何允许这样做的?一开始我以为使用代理ARP,但情况似乎并非如此,因为ARP数据包的源地址和目标地址是PC1和PC2的地址,而不是路由器的地址。
发布于 2016-02-08 03:47:19
您需要记住,ARP请求是一个广播,它将传递到广播域中的每个主机。连接到集线器的两台PC机都在同一个广播域上。
当PC1有一个网关,并且您试图从它的网络(向PC2)发送某个东西( ping )时,ping将转到网关;PC1将ARP查找网关地址(而不是PC2地址)并将ping发送到其配置的网关。
https://serverfault.com/questions/754625
复制相似问题