转自:http://www.51testing.com/?uid-124415-action-viewspace-itemid-132203
虚拟世界的MAC地址
先看一下真实世界的MAC地址是如何分配,如何保证没有重复的。
每块网卡都有一个MAC地址,MAC地址是一个6字节、也即48bit的数据。前3字节称为OUI
,是由IEEE组织注册给网络设备生产商的;每个厂商拥有一个或多个OUI,彼此不同。后三字节则是由网络设备生产商分配给自己生产的每一个拥有MAC地址的设备,互不重复。
在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
这一段(我的推测,不一定准确),则是用于ESX 3上的自动生成的MAC地址(包括VM和Service Console)
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地址
MAC地址冲突的检测与解决
MAC地址一旦生成,就不会再有变化,除非上面所述的四项因素发生改变(最可能发生的就是第三项,VM在服务器上的路径改变)。
尽管如此,由于散列算法本身的特征,还是有万一发生MAC地址冲突的可能(可能性极小,和年末ジャンボ中头彩的几率差不多)。ESX
Server会不断跟踪和检测运行中和挂起(Suspend)的VM,以保证没有MAC地址冲突。但是已经关闭电源的VM是不在检查对象之内的。
因此,万一一台VM启动时ESX检测到MAC地址冲突,它会分配给VM的虚拟网卡一个新的MAC地址。所以从这个意义上说,VM的MAC地址是可能发生变化的——只是这个概率实在太小。
手动指定MAC地址
手动指定MAC地址仅用于一些极其特殊的情况,通常是进行P2V的时候。例如,某物理服务器上的软件,其License已经与该服务器的MAC地址
绑定,如果MAC地址改变则软件无法运行;再如,某些底层网络软件以MAC地址来鉴别机器时,为了不做更改能够继续使用,在P2V的时候也要手动指定
MAC地址。
打开一个VM的.vmx文件,可以看到如下设置:(如果有多块NIC的话,那么就会有ethernet0、ethernet1、ethernet2……)
ethernet0.addressType = "generated"
ethernet0.generatedAddress = "00:0c:29:9b:fb:18"
这说明该NIC是自动生成的MAC地址。只需如下更改即可变为手动分配的MAC地址:
ethernet0.addressType = "static"
ethernet0.address = "00:50:56:00:00:01"
其中的00:50:56:00:00:01就是手动指定的MAC地址。
分享到:
相关推荐
支持安装客户机的操作系统包括:windows/linux/mac os/novell netware/solaris/vmware esx等。可以设置虚拟机的磁盘容量:虚拟机的硬盘作为一个或多个文件存储在主机的物理磁盘中。这些文件最初很小,随着您向...
【会攻击VMware虚拟机的新病毒Crisis】是一款针对Mac OS X系统的主要恶意软件,近期的安全研究人员发现,部分Crisis变种还能感染VMware虚拟机和Windows Mobile设备。这款病毒自2011年7月下半月开始传播,被多个防毒...
5 高级网络 41 Internet 协议版本 6 41 网络策略 42 更改 DNS 和路由配置 53 MAC 地址 54 TCP 分段清除和巨帧 55 NetQueue 和网络性能 58 VMDirectPath Gen I 58 VMware, Inc. 3 6 网络佳做法、场景和故障排除 61 ...
收集网络中的 MAC 地址用于审计和过滤目的虚拟机: ranesxconf:跟踪 VMWare 主机服务器(ESX 和 vCenter)配置的更改视窗: :跟踪 Windows 服务器配置的更改ranwinad:跟踪 Active Directory 中的更改(组、用户、...
- **MAC地址管理**:允许管理员指定虚拟机的MAC地址,有助于网络设备的识别和追踪。 - **TCP分段清除和巨帧**:优化网络性能的技术,适用于需要高吞吐量的应用场景。 - **NetQueue和网络性能**:通过调整NetQueue...
然而,此工具包突破了这一限制,使得用户可以在Windows、Linux环境下的VMware产品以及ESX和ESXi虚拟机监控程序上运行Mac OS X。 该工具包主要通过提供一个定制的VMware Tools映像文件——darwin.iso来实现其功能。...
每个VMware OUI、物理ESX主机的SMBIOS UUID以及基于VMMAC地址名称的哈希值,都可以在.vmx文件中找到。 ESX虚拟交换机能够将虚拟机彼此以及与物理网络连接起来,它是在运行时构建的。它由一系列小型功能单元组成,...
VMware Workstation 是一款功能强大的桌面虚拟计算机软件,提供用户可在单一的桌面上同时运行不同的操作系统,和进行开发、测试 、部署新的应用程序的最佳解决方案。 VMware Workstation可在一部实体机器上模拟完整...
- 基于源 MAC 哈希的路由: 根据 MAC 地址的奇偶性分配流量至不同的上行接口。 - 明确故障切换顺序: 设定主备关系,当主要上行口出现故障时自动切换至备用上行口。 - **通知交换机**: 通常设置为“是”,以便在上行...
4. **MAC地址**:MAC地址管理的重要性及其实现方式。 5. **TCP分段清除和巨帧**:高级网络优化技术的介绍。 6. **NetQueue和网络性能**:NetQueue技术及其对网络性能的影响。 7. **VMDirectPath Gen I**:一种用于...
- **VMware Fusion**:专为Mac设计的虚拟机管理软件。 - **VMware ESXi**:一种裸机管理程序,可以直接安装在服务器硬件上,用于构建企业级虚拟化环境。 - **VMware GSX Server**:用于创建高性能的虚拟服务器环境。...
VMware View解决方案主要依托于VMware ESX Server和VMware vCenter Server,而Citrix XenDesktop则基于Citrix XenServer和Citrix XenCenter。在虚拟桌面配置方面,VMware View使用的是VMware View Manager和VMware ...
在ESX Server的网卡配置中,网卡仅作为桥接模式存在,并不直接绑定MAC地址。因此,必须在Host ESX Server上开启promiscuous mode,以确保网络包能被正确地传递给Guest ESX Server的Service Console。 总结起来,...