如何对Windows Server 2008上的ARP缓存进行管理

互联网2017-06-15

  地址解析协议(ARP)属于TCP/IP协议栈的组成部分,作用是将网络IP地址映射到设备MAC地址上。简单地说,它与DNS的关系就如同硬币的正面与反面。当一台系统呼叫DNS主机时,DNS首先返回的是该主机名的网络IP地址。接下来,系统就可以通过网络IP地址在本地ARP缓存找出对应的设备MAC地址。如果系统中没有本地ARP映射的话,ARP请求就会被发送出去。三层交换机和路由器都会保存自有的ARP缓存并分开管理。

  如果假设系统邻机缓存被破坏或者当中存在不正确条目的话,将会出现什么样的问题呢?以正在运行的网站为例来说,表明连接存在不一致问题的ICMP请求响应以及“网站无法显示”错误就属于典型的情况。基本上,如果我们已经证实DNS记录信息正确无误,而正在运行的系统又出现了不一致连接问题的话,邻机缓存就应该属于需要重点关注的部分。

  在ARP缓存(邻居缓存)中,可以包含两种基本类型条目:固定条目(静态条目)和动态条目。动态条目的内容经常会是不完整、易获取、过时、延误以及可探测的。因此,我的建议是利用动态条目作为默认设置,而将静态条目作为补充。下面,我们就以如何在共享原有DNS名称和IP地址的情况下对服务器进行替换为例来进行说明。在这种情况下,我们会考虑利用临时静态映射将新服务器加入到路由器ARP表中。接下来的工作,就是删除服务器上原有的ARP缓存。

  为了查看Windows Server 2008上的邻机(ARP)缓存,我们就需要打开命令行窗口,并输入下面的命令:

  NETSH INTERFACE IPv4 SHOW NEIGHBORS

  ARP -a

  为了删除Windows 2008服务器上现有的非固定ARP缓存条目,我们需要运行下面的命令:

  NETSH INTERFACE IPv4 DELETE NEIGHBORS

  或者我们也可以使用如下命令:

  ARP -d *

  运行下面的命令,就可以将一条固定ARP缓存(邻居缓存)条目加入到列表之中:

  NETSH INTERFACE IPv4 ADD NEIGHBORS InterfaceNameOrIndex IPAddress MACAddress STORE=ACTIVE PERSISTANT

  ARP -S IPAddress MACAddress InterfaceAddress

  结论:

  对于网络来说,邻机缓存(或者原有的说法ARP缓存)属于至关重要但往往会被忽视的部分。在出现不正确条目或者缓存损坏等情况时,就会导致服务器在连接特定地址时出现异常和不一致连接的情况。当服务器上的一块网卡出现了问题而另一块网卡采用的又是不同MAC地址时,这种问题出现的概率尤为突出。因此,在遇到Windows 服务器出现网络连接故障问题,而又找不出确切原因时,我就会选择查看该缓存中的固定映射,并删除动态条目进行重建处理。