思科小型局域网的ARP连接

我有这样的怀疑,我感到很惭愧,所以有一个问题:为什么我没有连接?

情况很简单,我已经configuration了拓扑结构,并且在每台PC和相应的网关之间build立了连接。

问题是当我尝试ping PC1到PC0等另一个networking中的设备时,发生下一个事件

  1. PC1广播ARP来知道R0的MAC网关
  2. R0回复ARP到PC1
  3. PC1发送icmp包R0
  4. R0广播ARP来知道PC0的MAC
  5. PC0不答复,因为“ARP请求的发件人IP地址在与接收端口不同的networking中”。

所以我想知道为什么PC0不回复? 这是ARP的基本function?

显然,我configuration了2个静态路由(每个路由器上有一个路由器)将数据包路由到同一接口上的另一个networking。

on R1 : ip route 192.168.1.0 255.255.255.0 FastEthernet0/0 on R0 : ip route 172.16.200.0 255.255.255.0 FastEthernet0/0 

非常感谢您的回答!

=========================(EDIT)UPDATE / ANSWER =================== =============

在阅读RFC之后,我明白为什么这是行不通的。 那很简单,ARP还没有被开发/devise来响应(回复)来自另一个networking的请求。 在这种情况下,我强制转发(通过静态路由)到路由器不属于的networking。 在一些文档中,他们说这个协议是在第2层和第3层(第2.5层的LOL)之间的,但实际上他从来没有在第3层上发送关于第3层的信息。 所以当一个设备收到来自另一个networking的ARP请求时,他处理该帧(这是她翻译的帧中的IP),并在另一个networking中看到ARP请求发送者IP自动丢弃该帧。 为了在另一个networking中做一个ARP请求,我们需要一个设备Layer3作为一个ARP代理,他只需要转发arp的请求和回复,显然在每个networking上都有连接。 这是一个奇怪的devise,有点愚蠢,但更多地了解ARP / LAN的。 我想对那些回应并尝试帮助的人表示感谢。

如果你有一个路由器在中间,你正在跨广播域工作。 ARP /第2层通信是在mac地址之间明确完成的。

在典型情况下会发生什么:

PC 1(IP XXXX,MAC XX:XX:XX:XX:XX:XX)想要连接到PC 2(IP YYYY,MAC YY:YY:YY:YY:YY:YY)PC 1注意到IP YYYY不是“本地路由”,将报文发送到路由器(ip ZZZZ,mac ZZ:ZZ:ZZ:ZZ:ZZ:ZZ)

此时,离开PC1的数据包看起来像这样src ip = XXXX src mac = XX:XX:XX:XX:XX:XX,dst ip = YYYY,dst mac = ZZ:ZZ:ZZ:ZZ:ZZ:ZZ

交换机将数据包“切换”到路由器(因为它已经知道端口ZZ:ZZ:ZZ:ZZ:ZZ:ZZ插入),路由器知道IP YYYY在其它接口上,并将数据包路由到PC2相应地。

此时,离开路由器的数据包如下所示:src ip = XXXX src mac = ZZ:ZZ:ZZ:ZZ:ZZ:ZZ,dst ip = YYYY,dst mac = YY:YY:YY:YY:YY: YY

PC2在它的MAC地址上接受数据包…并且还注意到IP是注定要发给自己的…然后对数据包做任何事情。

PC1没有知道mac地址。 没有直接的方法来知道不在同一个广播域中的设备的MAC地址…因为“物理地址”(或MAC)只用于在本地与本地连接的设备进行通信。