获取mac地址的方法、虚拟机管理器及系统的制作方法
【专利摘要】本发明实施例提供一种获取MAC地址的方法、虚拟机管理器及系统,其中,本发明的方法主要包括:虚拟机管理器截获虚拟机发送的地址解析协议ARP请求包;从所述ARP请求包中提取目的网间协议IP地址;根据预设算法和所述目的IP地址获取所述目的IP地址对应的媒体访问控制MAC地址;生成携带所述目的IP地址对应的MAC地址的ARP响应包;将所述ARP响应包发送给所述虚拟机。与现有技术相比,本发明能够在保证虚拟机获得正确MAC地址的情况下,抑制ARP请求的进一步广播,从而避免造成ARP广播风暴。
【专利说明】
获取MAC地址的方法、虚拟机管理器及系统
技术领域
[0001]本发明实施例涉及互联网技术领域,尤其涉及一种获取MAC地址的方法、虚拟机管理器及系统。
【背景技术】
[0002]MAC (Media Access Control,媒体访问控制)地址是用于表示互联网上每一个站点的标识符,ARP (Address Resolut1n Protocol,地址解析协议)是一种根据IP (InternetProtocol,网间协议)地址获取MAC地址的协议。在虚拟化环境下,当源虚拟机需要与目的虚拟机通信时,需要先获知目的虚拟机的IP地址和MAC地址,而源虚拟机往往只能获知目的虚拟机的IP地址,而不能获知目的虚拟机的MAC地址,例如,源虚拟机第一次访问目的虚拟机,所以源虚拟机的ARP缓存中没有存储目的虚拟机的IP地址与MAC地址。在这种情况下,需要利用ARP协议获取目的虚拟机的MAC地址。
[0003]现有技术中,利用ARP协议获取MAC地址的具体实现方式为:源虚拟机通过广播的方式向局域网内的其他虚拟机发送ARP请求包;接收到ARP请求包的虚拟机会检测该ARP请求包的目的IP地址是否与自身的IP地址匹配;若检测结果为不匹配,则该虚拟机会将该ARP请求包丢弃;若检测结果为匹配,则该虚拟机会将携带自身MAC地址的ARP响应包反馈给源虚拟机;源虚拟机接收到ARP响应包后,会将目的虚拟机的IP地址和MAC地址存储至ARP缓存中一段时间,并利用目的虚拟机的IP地址与MAC地址实现与目的虚拟机之间的通
?目O
[0004]由于源虚拟机是通过广播ARP请求的方式获得目的虚拟机的MAC地址的,所以当局域网内含有大量的虚拟机时,源虚拟机就会大量广播ARP请求包,从而很可能会造成ARP广播风暴。此外,当黑客想要对局域网内的各个虚拟机的基本信息进行分析时,也会大量广播ARP请求包,从而造成ARP广播风暴。因此,在虚拟化环境下,如何避免ARP广播风暴是当今一大难题。
【发明内容】
[0005]本发明实施例提供一种获取MAC地址的方法、虚拟机管理器及系统,用以解决现有技术中在虚拟化环境下获取MAC地址时易产生ARP广播风暴的问题。
[0006]第一方面,本发明实施例提供一种获取MAC地址的方法,包括:
[0007]虚拟机管理器截获虚拟机发送的地址解析协议ARP请求包;
[0008]从所述ARP请求包中提取目的网间协议IP地址;
[0009]根据预设算法和所述目的IP地址获取所述目的IP地址对应的媒体访问控制MAC地址;
[0010]生成携带所述目的IP地址对应的MAC地址的ARP响应包;
[0011 ] 将所述ARP响应包发送给所述虚拟机。
[0012]第二方面,本发明实施例提供一种虚拟机管理器,包括:
[0013]截获单元,用于截获虚拟机发送的地址解析协议ARP请求包;
[0014]提取单元,用于从所述截获单元截获的所述ARP请求包中提取目的网间协议IP地址;
[0015]获取单元,用于根据预设算法和所述提取单元提取的所述目的IP地址获取所述目的IP地址对应的媒体访问控制MAC地址;
[0016]生成单元,用于生成携带所述获取单元获取的所述目的IP地址对应的MAC地址的ARP响应包;
[0017]发送单元,用于将所述生成单元生成的所述ARP响应包发送给所述虚拟机。
[0018]第三方面,本发明实施例提供一种获取MAC地址的系统,所述系统包括:虚拟机管理器和地址管理平台,其中,所述虚拟机管理器包括如第二方面所述的虚拟机管理器;
[0019]所述地址管理平台,用于为虚拟机分配网间协议IP地址;
[0020]所述地址管理平台,还用于根据预设算法和所述IP地址获取所述IP地址对应的媒体访问控制MAC地址,并将所述MAC地址分配给所述虚拟机。
[0021 ] 本发明实施例提供的获取MAC地址的方法、虚拟机管理器及系统,能够当存在某物理机内的虚拟机发送ARP请求包时,位于该物理机和操作系统之间的中间软件层(即虚拟机管理器)会直接截获ARP请求包,并计算出与ARP请求包中的目的IP地址相对应的MAC地址,最后将携带该MAC地址的ARP响应包反馈给该虚拟机。由此可知,在虚拟机获取MAC地址的过程中,由于虚拟机发送的所有ARP请求包都被虚拟机管理器所截获,所以不会将ARP请求包广播至局域网内的所有虚拟机,从而当局域网内的虚拟机数量较多时,不会存在大量ARP请求包在局域网内进行广播的情况,进而避免了广播风暴的发生。
【附图说明】
[0022]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0023]图1为本发明实施例提供的一种获取MAC地址的方法的流程图;
[0024]图2为本发明实施例提供的一种虚拟机管理器的组成框图;
[0025]图3为本发明实施例提供的另一种虚拟机管理器的组成框图;
[0026]图4为本发明实施例提供的一种获取MAC地址的系统示意图。
【具体实施方式】
[0027]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0028]本发明实施例提供了一种获取MAC地址的方法,如图1所示,该方法包括:
[0029]101、虚拟机管理器截获虚拟机发送的ARP请求包。
[0030]其中,虚拟机是指通过软件模拟的、具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实际应用中,虚拟机的内存、CPU (Central ProcessingUnit,中央处理器)和磁盘都是由运行在物理机与软件系统之间的中间软件层虚拟机管理器(hypervisor)为其分配的,虚拟机之间的通信也会由hypervisor进行管理。因此,当hypervisor检测到局域网内存在虚拟机发送ARP请求包时,会截获该虚拟机发送的所有ARP请求包,以便后续直接根据ARP请求包做ARP响应处理。
[0031]102、从ARP请求包中提取目的IP地址。
[0032]其中,ARP请求包中存储有源虚拟机的IP地址(即源IP地址)、源虚拟机的MAC地址、目的虚拟机的IP地址(即目的IP地址)和目的虚拟机的MAC地址(当目的虚拟机的MAC地址未知,且为了广播请求目的虚拟机的MAC地址时,目的虚拟机的MAC地址往往被设置为FF-FF-FF-FF-FF-FF)等基本信息,所以通过对ARP请求包进行解析,可以从中提取出目的IP地址。
[0033]103、根据预设算法和目的IP地址获取目的IP地址对应的MAC地址。
[0034]之所以hypervisor能够根据目的IP地址计算出目的虚拟机的MAC地址,是因为在目的虚拟机启动之前,地址管理平台先给目的虚拟机分配了一个IP地址,然后根据预设算法计算出对应IP地址的MAC地址,最后将计算出的MAC地址分配给该目的虚拟机。此夕卜,由于目的虚拟机要想进行网络通信,需要通过虚拟网卡才能实现,所以还要为虚拟网卡分配IP地址和MAC地址。其中,虚拟网卡的IP地址和目的虚拟机的IP地址相同,虚拟网卡的MAC地址与目的虚拟机的MAC地址相同。
[0035]需要说明的是,与目的虚拟机相类似的,其他虚拟机在启动之前,地址管理平台也会根据预设算法为其分配IP地址和MAC地址,然后根据虚拟机的IP地址和MAC地址设置对应虚拟网卡的IP地址和MAC地址。
[0036]104、生成携带目的IP地址对应的MAC地址的ARP响应包。
[0037]由于源虚拟机(即步骤101中的虚拟机)发送ARP请求包的目的是为了获得目的虚拟机的MAC地址,所以当hypervisor根据预设算法计算出对应目的IP地址的MAC地址后,可以生成携带MAC地址的ARP响应包,以便将该ARP响应包发送给源虚拟机,供源虚拟机根据ARP响应包中MAC地址与目的虚拟机进行数据交互。
[0038]其中,在hypervisor侧生成的ARP响应包与现有技术中在目的虚拟机侧生成的ARP响应包相同。
[0039]105、将ARP响应包发送给虚拟机。
[0040]在步骤104中提及,在生成携带MAC地址的ARP响应包后,hypervisor需要将该ARP响应包发送给虚拟机(即步骤104中的源虚拟机),以便源虚拟机从ARP响应包中获取目的虚拟机的MAC地址,从而根据该MAC地址直接访问目的虚拟机。
[0041 ] 此外,当源虚拟机获得目的虚拟机的MAC地址后,会将目的虚拟机的IP地址和MAC地址存储到ARP缓存中,并存储一段时间,以便后续直接从ARP缓存中获取目的虚拟机的MAC地址,从而提高获取MAC地址的速率。
[0042]需要说明的是,本发明实施例中的源虚拟机和目的虚拟机可以位于同一个物理机内,也可以位于不同的物理机内。但是,无论位于同一个物理机,还是不同的物理机,当源虚拟机向外广播ARP请求包时,都会被与源虚拟机同属一个物理机的hypervisor所截获。
[0043]本发明实施例提供的获取MAC地址的方法,能够当存在某物理机内的虚拟机发送ARP请求包时,位于该物理机和操作系统之间的中间软件层(即虚拟机管理器)会直接截获ARP请求包,并计算出与ARP请求包中的目的IP地址相对应的MAC地址,最后将携带该MAC地址的ARP响应包反馈给该虚拟机。由此可知,在虚拟机获取MAC地址的过程中,由于虚拟机发送的所有ARP请求包都被虚拟机管理器所截获,所以不会将ARP请求包广播至局域网内的所有虚拟机,从而当局域网内的虚拟机数量较多时,不会存在大量ARP请求包在局域网内进行广播的情况,进而避免了广播风暴的发生。
[0044]此外,由于hypervisor截获了源虚拟机发送的所有ARP请求包,所以其他虚拟机不会接收到ARP请求包,从而避免了非目的虚拟机接收到ARP请求包后,会主动向源虚拟机发送伪MAC地址,进而在一定程度上防止了 ARP欺骗。
[0045]进一步的,上述步骤103中,根据预设算法和目的IP地址获取目的IP地址对应的MAC地址的具体实现方法为:将目的IP地址的后三个字节映射到MAC地址的后三个字节,得到目的IP地址对应的MAC地址。
[0046]在上述实施例中提及,在各个虚拟机启动之前,地址管理平台根据预设算法为各个虚拟机分配了 IP地址和MAC地址。该预设算法可以为:将IP地址的后三个字节映射到MAC地址的后三个字节,将固定的三个字节(预先设定的固定不变的三个字节)映射到MAC地址的前三个字节。因此,当hypervisor从ARP请求包中提取目的IP地址后,可将该目的IP地址的后三个字节映射到对应目的IP地址的MAC地址的后三个字节,将固定的三个字节映射到该MAC地址的前三个字节,从而获得与目的IP地址对应的MAC地址,进而可将携带MAC地址的ARP响应包反馈给虚拟机。
[0047]需要说明的是,由于IP地址一般用十进制表示,MAC地址一般用十六进制表示,所以当将IP地址的后三个字节作为MAC地址的后三个字节时,需要将IP地址的后三个字节内容由十进制转换为十六进制,再加上已知的、固定的MAC地址的前三个字节,最终获得符合标准的MAC地址。
[0048]示例性的,目的IP地址为192.168.1.21,MAC地址的前三个字节为00-23-5A,则将目的IP地址的后三个字节作为MAC地址的后三个字节后,最终获得的MAC地址为00-23-5A-A8-1-15。
[0049]进一步的,对于上述步骤101中截获虚拟机发送的ARP请求包的具体实现方式可以为:
[0050]al、截获虚拟机发送的ARP数据包。
[0051]在实际应用中,hypervisor会实时监测与其同属一个物理机内的虚拟机发送出去的数据包,以及其他物理机内的虚拟机发送过来的数据包,并对这些数据包进行相应的处理。具体的,hypervisor会先截获经过的每一个数据包,然后判断截获的数据包是否为ARP数据包;若截获的数据包不是ARP数据包,则hypervisor会将该截获的数据包进行继续发送处理;若截获的数据包为ARP数据包,则hypervisor不会对该截获的数据包进行继续发送处理,而会对该截获的数据包进行步骤a2_a3所述的处理方式进行处理。
[0052]a2、判断ARP数据包是否为ARP请求包。
[0053]当hypervisor确定截获的数据包为ARP数据包时,会进一步判断该ARP数据包是否为ARP请求包。
[0054]其中,判断ARP数据包是否为ARP请求包的具体实现方式可以为:根据ARP数据包中操作码的内容判断ARP数据包是否为ARP请求包。
[0055]具体的,ARP数据包中的操作码字段用于标识该ARP数据包的操作类型,即可以用于标识该ARP数据包是ARP请求包,还是ARP响应包,还是其他类型的数据包(如RARP请求包、RARP响应包)。因此,hypervisor可直接根据操作码中的内容来判断该ARP数据包是否为ARP请求包。在实际应用中,当操作码中的内容为“ I”时,表示该ARP数据包为ARP请求包;当操作码中的内容为“ 2 ”时,表示该ARP数据包为ARP响应包;当操作码中的内容为“ 3 ”时,表示该ARP数据包为RARP请求包;当操作码中的内容为“ 4 ”时,表示该ARP数据包为RARP响应包。因此,hypervisor可通过判断操作码中的内容是否为“I”来确定该ARP数据包是否为ARP请求包。
[0056]a3、若ARP数据包为ARP请求包,则保留ARP请求包。
[0057]当hypervisor确定获得的ARP数据包为ARP请求包时,需要将其保留下来,而不会对其进行继续发送处理,以便通过抑制ARP请求避免产生ARP广播风暴。当hypervisor确定获得的ARP数据包不是ARP请求包时,可以对其进行继续发送处理。
[0058]进一步的,由于在上述方法实施例中,hypervisor已抑制了 ARP请求包向其他虚拟机进行进一步广播,所以其他虚拟机接收不到ARP请求包,从而在正常情况下往往不会存在其他虚拟机向源虚拟机发送ARP响应包的情况。然而,ARP协议的工作原理不仅包括发送了 ARP请求才接收ARP响应,还包括随时接收外来的ARP响应,从而更新本地的ARP缓存。因此,在攻击者没有接收到源虚拟机发送的ARP请求包的前提下,常常会主动向源虚拟机发送伪ARP响应包(即携带错误对应关系的IP地址和MAC地址的响应包),从而造成ARP欺骗。
[0059]因此,为了进一步避免ARP欺骗,本发明的另一个实施例还提出了以下方案:当hypervisor确定获得的ARP数据包为ARP响应包时,丢弃该ARP响应包。由此可知,当hypervisor丢弃虚拟机发送的ARP响应包后,本该接收该ARP响应包的虚拟机就不能接收到该ARP响应包,只能接收到hypervisor发送的正常的ARP响应包,从而避免因接收到其他虚拟机发送的伪ARP响应包而造成ARP欺骗。
[0060]进一步的,依据上述方法实施例,本发明的另一个实施例还提供了一种虚拟机管理器,如图2所示,该虚拟机管理器包括:截获单元21、提取单元22、获取单元23、生成单元24和发送单元25。其中,
[0061]截获单元21,用于截获虚拟机发送的地址解析协议ARP请求包;
[0062]提取单元22,用于从截获单元21截获的ARP请求包中提取目的网间协议IP地址;
[0063]获取单元23,用于根据预设算法和提取单元22提取的目的IP地址获取目的IP地址对应的媒体访问控制MAC地址;
[0064]生成单元24,用于生成携带获取单元23获取的目的IP地址对应的MAC地址的ARP响应包;
[0065]发送单元25,用于将生成单元24生成的ARP响应包发送给虚拟机。
[0066]本发明实施例提供的虚拟机管理器,能够当存在某物理机内的虚拟机发送ARP请求包时,位于该物理机和操作系统之间的中间软件层(即虚拟机管理器)会直接截获ARP请求包,并计算出与ARP请求包中的目的IP地址相对应的MAC地址,最后将携带该MAC地址的ARP响应包反馈给该虚拟机。由此可知,在虚拟机获取MAC地址的过程中,由于虚拟机发送的所有ARP请求包都被虚拟机管理器所截获,所以不会将ARP请求包广播至局域网内的所有虚拟机,从而当局域网内的虚拟机数量较多时,不会存在大量ARP请求包在局域网内进行广播的情况,进而避免了广播风暴的发生。
[0067]此外,由于虚拟机管理器截获了源虚拟机发送的所有ARP请求包,所以其他虚拟机不会接收到ARP请求包,从而避免了非目的虚拟机接收到ARP请求包后,会主动向源虚拟机发送伪MAC地址,进而在一定程度上防止了 ARP欺骗。
[0068]进一步的,获取单元23,用于将目的IP地址的后三个字节映射到MAC地址的后三个字节,得到目的IP地址对应的MAC地址。
[0069]进一步的,如图3所示,截获单元21,包括:
[0070]截获模块211,用于截获虚拟机发送的ARP数据包;
[0071 ] 判断模块212,用于根据截获模块211获取的ARP数据包中操作码的内容判断ARP数据包是否为ARP请求包,操作码用于标识ARP数据包的操作类型;
[0072]保留模块213,用于当判断模块212的判断结果为ARP数据包为ARP请求包时,保留ARP请求包。
[0073]进一步的,如图3所示,截获单元21,还包括:
[0074]丢弃模块214,用于当判断模块212的判断结果为虚拟机发送的ARP数据包为ARP响应包时,丢弃虚拟机发送的ARP响应包。
[0075]需要说明的是,上述实施例可以通过硬件处理器来实现相关功能。
[0076]进一步的,本发明的另一个实施例还提供了一种获取MAC地址的系统,如图4所示,该系统包括:虚拟机管理器31和地址管理平台32。其中,虚拟机管理器31包括如图2或图3所示的虚拟机管理器31 ;
[0077]地址管理平台32,用于为虚拟机分配网间协议IP地址;
[0078]地址管理平台32,还用于根据预设算法和IP地址获取IP地址对应的媒体访问控制MAC地址,并将MAC地址分配给虚拟机。
[0079]具体的,在局域网中的各个虚拟机启动前,需要设置好IP地址和MAC地址,以便在启动后与其他虚拟机进行通信。在实际应用中,各个虚拟机的IP地址和MAC地址可由局域网内的地址管理平台来分配。具体的,地址管理平台首先会为虚拟机分配一个IP地址,然后通过预设算法计算出对应该IP地址的MAC地址,最后将计算出的MAC地址分配给该虚拟机。
[0080]需要说明的是,地址管理平台为虚拟机分配的IP地址可以为A类地址,也可以为B类地址,还可以为C类地址,在此不做限定。
[0081]此外,由于虚拟机之间的网络通信需要通过虚拟网卡才能实现,所以当为设置完虚拟机的IP地址和MAC地址之后,还要设置对应虚拟机的虚拟网卡的IP地址和MAC地址。
[0082]具体的,当地址管理平台为虚拟机分配完IP地址和MAC地址后,可直接将该MAC地址分配给对应虚拟机的虚拟网卡。为了使该虚拟机能够收发数据包,还需要将为该虚拟机分配的IP地址设置到虚拟网卡上,即需要虚拟网卡的IP地址与对应虚拟机的IP地址相同。在实际应用中,为虚拟网卡设置IP地址的方法主要有两种。
[0083]其中,第一种方法为:在虚拟机启动之前,将虚拟机的IP地址和MAC地址写到DHCPServer (Dynamic Host Configure Protocol Server,动态主机配置协议服务器)的配置文件当中;当虚拟机启动后,虚拟机的系统会向DHCP Server请求虚拟网卡的IP地址;此时,DHCP Server会在配置文件中查找与该虚拟网卡的MAC地址相对应的IP地址,并将查找到的IP地址分配给该虚拟网卡。
[0084]第二种方法为:在虚拟机启动之前,为虚拟机的初始化脚本添加一个功能,即在虚拟机启动后、进行初始化时,读取预先设置的配置文件(该配置文件中存储有IP地址与MAC地址的对应关系),并基于该配置文件为虚拟网卡配置对应已知MAC地址的IP地址。
[0085]需要说明的是,本发明实施例中的虚拟机管理器为hypervisor。在局域网中,有多个物理机,每个物理机内含有一个虚拟机管理器和至少一个虚拟机。此外,局域网内还有一个为虚拟机分配IP地址和MAC地址的地址管理平台。因此,本发明实施例的系统中含有一个地址管理平台和至少一个虚拟机管理器。
[0086]本发明实施例提供的获取MAC地址的系统,能够当存在某物理机内的虚拟机发送ARP请求包时,位于该物理机和操作系统之间的中间软件层(即虚拟机管理器)会直接截获ARP请求包,并计算出与ARP请求包中的目的IP地址相对应的MAC地址,最后将携带该MAC地址的ARP响应包反馈给该虚拟机。由此可知,在虚拟机获取MAC地址的过程中,由于虚拟机发送的所有ARP请求包都被虚拟机管理器所截获,所以不会将ARP请求包广播至局域网内的所有虚拟机,从而当局域网内的虚拟机数量较多时,不会存在大量ARP请求包在局域网内进行广播的情况,进而避免了广播风暴的发生。
[0087]以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0088]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如R0M/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0089]最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
【主权项】
1.一种获取MAC地址的方法,其特征在于,所述方法包括: 虚拟机管理器截获虚拟机发送的地址解析协议ARP请求包; 从所述ARP请求包中提取目的网间协议IP地址; 根据预设算法和所述目的IP地址获取所述目的IP地址对应的媒体访问控制MAC地址; 生成携带所述目的IP地址对应的MAC地址的ARP响应包; 将所述ARP响应包发送给所述虚拟机。2.根据权利要求1所述的方法,其特征在于,所述根据预设算法和所述目的IP地址获取所述目的IP地址对应的MAC地址,包括: 将所述目的IP地址的后三个字节映射到MAC地址的后三个字节,得到所述目的IP地址对应的MAC地址。3.根据权利要求1或2所述的方法,其特征在于,所述截获虚拟机发送的ARP请求包,包括: 截获所述虚拟机发送的ARP数据包; 根据所述ARP数据包中操作码的内容判断所述ARP数据包是否为ARP请求包,所述操作码用于标识ARP数据包的操作类型; 若所述ARP数据包为ARP请求包,则保留。4.根据权利要求3所述的方法,其特征在于,若所述虚拟机发送的ARP数据包为ARP响应包,则所述方法进一步包括: 丢弃所述虚拟机发送的所述ARP响应包。5.一种虚拟机管理器,其特征在于,所述虚拟机管理器包括: 截获单元,用于截获虚拟机发送的地址解析协议ARP请求包; 提取单元,用于从所述截获单元截获的所述ARP请求包中提取目的网间协议IP地址;获取单元,用于根据预设算法和所述提取单元提取的所述目的IP地址获取所述目的IP地址对应的媒体访问控制MAC地址; 生成单元,用于生成携带所述获取单元获取的所述目的IP地址对应的MAC地址的ARP响应包; 发送单元,用于将所述生成单元生成的所述ARP响应包发送给所述虚拟机。6.根据权利要求5所述的虚拟机管理器,其特征在于,所述获取单元,用于将所述目的IP地址的后三个字节映射到MAC地址的后三个字节,得到所述目的IP地址对应的MAC地址。7.根据权利要求5或6所述的虚拟机管理器,其特征在于,所述截获单元,包括: 截获模块,用于截获所述虚拟机发送的ARP数据包; 判断模块,用于根据所述截获模块获取的所述ARP数据包中操作码的内容判断所述ARP数据包是否为ARP请求包,所述操作码用于标识ARP数据包的操作类型; 保留模块,用于当所述判断模块的判断结果为所述ARP数据包为ARP请求包时,保留所述ARP请求包。8.根据权利要求7所述的虚拟机管理器,其特征在于,所述截获单元,进一步包括: 丢弃模块,用于当所述判断模块的判断结果为所述虚拟机发送的ARP数据包为ARP响应包时,丢弃所述虚拟机发送的所述ARP响应包。9.一种获取MAC地址的系统,其特征在于,所述系统包括:虚拟机管理器和地址管理平台,其中,所述虚拟机管理器包括如权利要求5至8中任一项所述的虚拟机管理器; 所述地址管理平台,用于为虚拟机分配网间协议IP地址; 所述地址管理平台,还用于根据预设算法和所述IP地址获取所述IP地址对应的媒体访问控制MAC地址,并将所述MAC地址分配给所述虚拟机。
【文档编号】H04L29/12GK105872117SQ201510701345
【公开日】2016年8月17日
【申请日】2015年10月26日
【发明人】岳龙广
【申请人】乐视云计算有限公司