将我们的开发团队从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地址:
从closures的目标机器开始,并通过整个testing进行ping:
ping -t 10.10.10.10
Ping正在回复“请求超时”,ARPcaching包含,如预期的那样
10.10.10.10 00:00:00:00:00:00 invalid
开启目标机器。 Ping开始获取答复,并且ARPcaching更新为
10.10.10.10 01:23:45:67:89:AB dynamic
到现在为止还挺好。
closures目标机器。 Ping开始报告“请求超时”,ARPcaching保持不变
10.10.10.10 01:23:45:67:89:AB dynamic
大约40秒后,ping响应一个请求的“Destination host unreachable”,然后返回报告“Request timed out”,ARPcaching变为
10.10.10.10 01:23:45:67:89:AB invalid
打开目标计算机的电源,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的其他计算机可以成功连接到目标计算机。