当目标机器脱机时,Windows 10 arpcaching在尝试失败后陷入困境

将我们的开发团队从7升级到Windows 10之后,我们遇到了ARP高速caching问题,其中机器具有正确的IP-MAC映射高速caching,但是由于在目标机器的电源循环期间连接失败,该types无效。 在Windows 10上,而不是在Windows 7上,目标计算机无法连接到ARPcaching清除。 我可以重现这个问题如下,其中10.10.10.10是正确的IP地址和01:23:45:67:89:AB是目标机器的正确的MAC地址:

  1. 从closures的目标机器开始,并通过整个testing进行ping:

    ping -t 10.10.10.10 

Ping正在回复“请求超时”,ARPcaching包含,如预期的那样

 10.10.10.10 00:00:00:00:00:00 invalid 
  1. 开启目标机器。 Ping开始获取答复,并且ARPcaching更新为

     10.10.10.10 01:23:45:67:89:AB dynamic 

到现在为止还挺好。

  1. closures目标机器。 Ping开始报告“请求超时”,ARPcaching保持不变

     10.10.10.10 01:23:45:67:89:AB dynamic 
  2. 大约40秒后,ping响应一个请求的“Destination host unreachable”,然后返回报告“Request timed out”,ARPcaching变为

     10.10.10.10 01:23:45:67:89:AB invalid 
  3. 打开目标计算机的电源,ping(以及任何其他连接)将不会find它,直到您清除ARPcaching,或者至less删除具有无效types的正确IP-MAC映射的违规项。

考虑到开发环境中的目标机器在开发过程中往往需要电源循环,我该如何防止ARPcaching进入这种状态? 手动操纵ARPcaching是不可持续的,在移植到Windows 10之前没有人报告过这个问题。

Windows 7的function正如人们所期望的那样,也就是说,我们期望的是:ARPcaching经历与上述相同的阶段。 Ping通过在目标机上电之前回答“目标主机不可达”开始,而不是Windows 10的“请求超时”,并且在关机后不断返回到“目标主机不可达”,而不是Windows 10仅报告一次。 当机器启动时,连接立即build立,ARPcaching返回

 10.10.10.10 01:23:45:67:89:AB dynamic 

无需先清除任何条目。

开发人员的具体设置是通过一个简单的非托pipe8端口千兆交换机连接到几个Beaglebone Blacks(运行Linux的小型ARMembedded式主板)的Windows工作站。 IP地址由保留的DHCP分配,并且每次BeagleBee上电时都能成功地获取地址。 当一台Windows 10计算机有无效ARP条目需要删除时,ARPcaching中没有Beaglebone的其他计算机可以成功连接到目标计算机。