MAC 对照表可从ieee获得
http://standards-oui.ieee.org/oui/oui.txt
。。。。。
这个MAC对照表资源是从wireshark源码中获取的。 每块网卡都有一个MAC地址,MAC地址是一个6字节、也即48bit的数据。前3字节称为OUI,是由IEEE组织注册给网络设备生产商的;每个厂商拥有一个或多个OUI,彼此不同。后三字节则是由网络设备生产商分配给自己生产的每一个拥有MAC地址的设备,互不重复。 原理就是根据MAC地址前3字节来判断的,前3个字节、对应制造商的名称 此TXT资源是MAC前3字节与对应制造商的名称的对应关系表,如下所示: 000000 Xerox 000001 Xerox 000002 Xerox 000003 Xerox 000004 Xerox 000005 Xerox 000006 Xerox 000007 Xerox 000008 Xerox 000009 Xerox 00000A Omron Tateisi Electronics CO. 00000B Matrix 。。。。。。 001110 Maxanna Technology Co. 001111 Intel 001112 Honeywell Cmss 。。。。。。 001301 IronGate S.L. 001302 Intel Corporate 001303 GateConnect Technologies GmbH 001838 PanAccess Communications 001839 Cisco-Linksys 00183A Westell Technologies 00183B Cenits Co. 。。。。。。 001D09 Dell 001D0A Davis Instruments 001D0B Power Standards Lab 001D0C MobileCompia 。。。。。。 005055 Doms A/S 005056 VMWare 005057 Broadband Access Systems 有19037个不同制造商,见资源文件txt Wireshark解析MAC地址时会把前三个字节解析为一个公司的名字。 例如: MAC Address: 00:1D:09:14:D2:7E (Dell) MAC Address: 00:1E:4F:E7:FE:F9 (Dell) MAC Address: 00:13:02:81:7C:36 (Intel Corporate) MAC Address: 00:11:11:74:02:72 (Intel) MAC Address: 00:1D:72:8C:8B:96 (Wistron) MAC Address: 00:18:39:84:8B:84 (Cisco-Linksys) MAC Address: 00:50:56:C0:00:01 (VMWare) .. 虚拟化:
在VM的世界中,每一台拥有虚拟NIC(网卡)的设备当然也拥有MAC地址。
这虚拟网卡的MAC地址,当然也是按照规定,前三字节为OUI,后三字节逐一分配给每个设备。
由于虚拟网卡的”制造商“是VMware,XenSource,微软 等虚拟平台软件的生产商,OUI当然就分配给了他们。
VMware VM所使用的OUI
按照VMware ESX 3的[Server Configuration Guide ]的说法,VMware的使用下面的三个OUI作为VM的MAC地址:
00:0C:29 – 用于自动生成的MAC地址
00:50:56 – 用于手动设置的MAC地址
00:05:69 – 曾经用于旧版本的VM(大约是在ESX 1.5的时代),在ESX 3中已经不再使用
但是在实际应用中,发现00:50:56这一MAC地址段并不是完全用于手动设置的MAC地址:
00:50:56:00:00:00 – 00:50:56:3F:FF:FF
这一段MAC地址可以用于手动设置的MAC地址
00:50:56:40:00:00 – 00:50:56:FF:FF:FF
MAC地址的生成
OUI有了,后三字节如何生成呢?要知道虚拟机是经常被创建和销毁的,这一点不像实体PC。网卡生产商可以计算每年生产多少块网卡,从而为每块网卡分配不同的MAC地址; VMware却不可能计算出每年有多少台VM、有多少块虚拟网卡被创建。
VMware ESX Server的算法是,使用散列算法,通过VM的UUID来生成MAC地址。VM的UUID是每一台VM特有的、128bit的ID,是由ESX Server硬件SMBIOS的UUID、加上VM的路径生成的。因此,一台虚拟机的虚拟网卡的MAC地址就与下面四个因素有关:
VMware的OUI
Host (ESX Server)的SMBIOS中的UUID
VM在服务器上的路径
网卡的实体名 (Entity Name),用来确保同一VM上的不同网卡有不同的MAC地址
..