PC在什么时候会发出ARP查询呢?

ping一个本网段地址的时候(大家可以抓包来验证一下)。代理arp_代理

看清楚了,PC-A的IP地址是/16位,PC-D的IP地址是/24位,所以当PC-A去ping PC-D的时候,PC-A认为是ping同一个网段,会发出ARP请求,这个时候ARP请求就到了路由器上了。路由器如果开启了代理ARP功能,会代替PC-D给PC-A回应,告诉PC-A路由器的e0口MAC地址00-00-0c-94-36-ab就是PC-D的MAC地址,完成代理ARP操作,保护了PC-D的MAC地址隐私。
 

实例配置:

 

  交换机连接两台PC(A和B),最初的时候他们都在一个vlan1内,分别配置IP地址 172.16.1.2/16和172.16.2.2/16 ,均未配置网关,此时可以Ping同对方。

  将A加入vlan1 ,vlanif配IP:172.16.1.1/24

 

  将B加入vlan2 ,vlanif配IP:172.16.2.1/24

 

  此时ApingB是ping不通的。

 

  原因猜想:没有配置网关也没有配置代理ARP,所以ping不通

 

  当我配置上两个端口的代理ARP,此时发现还是Ping不同。

 

  此时查看了A的ARP表,发现表中记录172.16.2.2的MAC地址是B的地址。

 

  此时A发出去的包中封装的MAC地址是B的,当vlanif收到该帧时,会丢弃该报文

 

  将A的ARP表清空(arp –d),此时再pingB,发现可以Ping通了,A中记录的关于172.16.2.2的MAC地址已经是vlanif1 的MAC了。