全0的MAC地址 (00:00:00:00:00:00)

时间:2021-02-04 12:48:41
全0的MAC地址 (00:00:00:00:00:00)

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) 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通信自然也就失败。