首先说明,以下内容是我一个字一个字打出来的,不是在网上复制的,纯属原创: 这个问题我觉得你应该仔细分析一下,从你的描述看来,我得出以下假设: 1、你路由器的MAC地址表有部分客户机的静态绑定; 2、你每台客户机都作了“arp -s 网关ip 网关mac”的静态绑定; 3、某台机器掉线时它的arp表里的网关的IP-MAC是正确的,而路由器里对应该客户机IP的MAC地址不正确。 基于以上三点假设,为什么有的客户机还是会掉线呢?如果你理解了ARP协议,这就很好解释了。比如你某台客户机中了ARP欺骗病毒,那么该机会每隔一段时间对该网段内所有IP进行一次扫描,比如你的IP是,那么中病毒的电脑会对这254个IP地址分别发送一个ARP Response消息(也可能是多个指向广播地址的ARP Response消息),这个消息可以更新所有这254台电脑的ARP表,更改的结果是所有电脑的ARP表内IP是网关的IP,而MAC地址却是中病毒的电脑的MAC地址。这个病毒之所以设计成这样是因为这样可使这个网段内所有的流量通过中病毒的那台主机,然后再通过路由器,专业术语叫做“man in the middle”,也就是中间人攻击,此举可以盗取该网段所有密码信息(因为所有流量都通过了中病毒主机,所以它可以任意监听感兴趣的信息并加以记录)。 现在再说你的情况,你的每台客户机都作了静态绑定,所以它们不受这个ARP Response消息的影响。(前提是你的客户机都是WinXP及以上的操作系统,WinXP以下的系统不能创建永久的静态绑定,也就是说就算你绑定了,隔一段时间后绑定信息会超时)。但是据你所说你在路由器上只绑定了部分客户机的IP-MAC,那么问题就出来了。比如说你在路由器上绑定了的客户机的IP和MAC,那么在路由器接收到刚才所说的ARP Response消息时,会把之内的所有IP所对应的MAC绑定为中病毒电脑的MAC。这时,这54个IP地址所对应的客户机可以正常的找到路由器,但是路由器却不能正确地找到该客户机,也就是说通信只能从客户机到路由器,不能从路由器到客户机。所以你的部分客户机无法上网。 解决办法是: 1、所有客户机静态绑定网关,网关路由器绑定所有客户机的IP-MAC。 2、在局域网内的某台电脑上安装Sniffer_Pro或者OmniPeek等协议分析软件(也就是俗称的抓包软件),然后在连接这台电脑的交换机端口上配置port mirror,如果是傻瓜交换机,那么你就在这个端口上接一个集线器(一定要是集线器,物理层设备),然后把装OmniPeek的电脑接到这个集线器上,然后抓包分析。当你看到某台机器没有发出ARP Request却收到了ARP Response,那么发送ARP Response的主机的MAC地址就是种病毒的电脑的MAC地址。有了MAC地址就可以找到种病毒的电脑了。