|  | 
 
 发表于 2007-1-8 12:48:24
|
显示全部楼层 
| 确实很奇怪。以下是网上搜索到的解释,LZ可以参考下: 
 ---------------------------
 前两天同事抓到了包括MAC地址全0的包,在讨论和请教牛人后,大概得出的结论是这种MAC地址在共享网络下面是有效的。据说long long ago时这种MAC地址和主机地址部分全0的IP地址一样,是用于广播的(rain提供)。不过现在这种MAC好像已经不再作为特殊地址保留(scz测试),而部分系统如BSD系列还保留主机地址全0的IP地址的广播效果。
 scz的详细测试结果如下:
 
 
 以下为引用:
 
 1) Linux
 
 Linux下ifconfig修改MAC地址前必须先down掉相应接口,改了MAC之后再
 up。但是Linux下将MAC设置成全零后(此时无错误提示),相应接口up失败:
 
 ifconfig eth0 hw ether 00:00:00:00:00:00
 
 Linux虽然自身无法设置全零MAC,但可与全零MAC的系统正常通信。
 
 2) x86/Solaris
 
 x86/Solaris 9不必down/unplumb接口,可直接修改MAC地址:
 
 ifconfig dnet0 ether 00:00:00:00:00:00
 
 全零MAC地址可与同一HUB上的Windows系统通信。
 
 3) Windows 98/NT/2000/XP/2003
 
 Windows XP通过GUI界面设置全零MAC时无错误提示,但真实通信时仍然使用原MAC,
 "ipconfig -all"查看得到的MAC地址也是原MAC。
 
 Windows 98/2000/XP都可与全零MAC的系统正常通信,NT/2003未测试,应该也是可以
 的。
 
 XP下MAC地址在注册表中的相应位置:
 
 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlClass{4D36E972-E325-11CE-BFC1-08002bE10318}<nnnn>
 
 NetCfgInstanceId    REG_SZ  {可变串}
 NetworkAddress      REG_SZ  000000111111
 
 4) x86/FreeBSD
 
 FreeBSD下ifconfig修改MAC地址前不必down掉相应接口,可直接修改,并且全零MAC
 地址与同一HUB上的Windows系统通信无误:
 
 ifconfig lnc0 ether lladdr 00:00:00:00:00:00
 
 各种系统是否接受全零MAC地址是实现相关的,并不统一。注意,上述系统不但在同
 一子网,而且在同一HUB上。一般交换机不接受全零MAC地址,导致ARP解析失败,无
 法获取目标MAC,IP通信自然也就失败。
 | 
 |