http://www.blogcn.com/user8/flier_lu/index.html?id=1139019&run=.0CEEA16
前两天同事抓到了包括MAC地址全0的包,在讨论和请教牛人后,大概得出的结论是这种MAC地址在共享网络下面是有效的。据说long long ago时这种MAC地址和主机地址部分全0的IP地址一样,是用于广播的(rain提供)。不过现在这种MAC好像已经不再作为特殊地址保留(scz测试),而部分系统如BSD系列还保留主机地址全0的IP地址的广播效果。
scz的详细测试结果如下:
以下为引用:
1) LinuxLinux下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 0000001111114) 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通信自然也就失败。