慎改网卡MAC地址

网络设备

笔者的办公室有七八台电脑,它们通过交换机与NETGEAR 无线宽带路由器MR814的局域网端口连接,而笔记本电脑则通过该路由器的无线信号连接到Internet上。有一天办公室一台安装了Windows 2000的台式电脑忽然无法上网了,而其它计算机则都很正常。

按照通常步骤,首先检查该机的网络设置。TCP/IP协议安装正确,IP地址为固定IP,网关及IE选项设置正确。

在命令提示符下,输入:

PING 127.0.0.1 返回结果正常(表明本机的TCP/IP协议工作正常)。

PING 192.168.0.55(本机IP地址)(返回结果正常,表明网卡工作正常)。

PING 192.168.0.1 (路由器IP地址)(显示无法连接)。

根据现象推断,应该是网络连接故障。首先怀疑网线的问题,但是更换网线后故障依旧。把网线连接到交换机的其它端口,问题仍然无法解决。

再通过IPCONFIG命令检查TCP/IP网络基本设置时发现一个问题:本机网卡的MAC地址显示为:01-00-F2-FF-FF-FF,因为后六位全部是F,感觉有些异常,于是怀疑是不是更改过网卡的MAC地址。由于本机的网卡属性中没有提供直接修改MAC地址的选项,所以要通过注册表进行修改。在“开始”菜单的“运行”中输入regedit.exe,打开注册表编辑器,展开注册表到HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Class\{4D36E9 72-E3 25-11CE-BFC1-08002BE103 18}子键,在子键下的0000,0001,0002等分支中查找DriverDesc的值,并根据该值确定网卡属于哪一个分支。在该分支下查找字符串NetworkAddress的值,果然为01-00-F2-FF-FF-FF,将该值清空后,重新启动计算机,故障消失(图1)。

50-g13-1-1.jpg
图1

经过了解得知,该机的用户确实根据网上的一些文章更改了网卡的MAC地址。那么哪些MAC地址会造成网卡工作不正常呢?经过反复试验发现,在Windows XP或Windows 2000下,当网卡的12位MAC地址的第2位被改为奇数(即十六进制中的1、3、5、7、9、B、D、F)后,这块网卡就无法正常工作了。这时,在Windows XP的设备管理器中,用于有线连接的网卡会以黄色的感叹号显示设备无法正常启动(图2),而内置的MiniPCI无线网卡却没有任何错误提示。在Windows 2000下,无论是有线连接还是无线连接,尽管网卡无法正常工作,网卡或网络连接却没有任何提示。

50-g13-1-2.jpg
图2

同时,在试验中还发现如下现象:

1.当MAC地址不足12位或MAC地址全为0时,这个MAC地址会被忽略掉,网卡本身真正的MAC地址仍然有效。

2.即使在Windows下为网卡更换了合适的MAC地址,有时由于地址解析协议(ARP)高速缓存的原因,致使MAC列表得不到及时更新,这也会造成暂时性的网络故障。