一种获取虚拟机的因特网协议地址的方法和系统的制作方法

文档序号:8365607阅读:171来源:国知局
一种获取虚拟机的因特网协议地址的方法和系统的制作方法
【技术领域】
[0001]本发明涉及网络技术领域,特别涉及一种获取虚拟机的因特网协议(IP)地址的方法和系统。
【背景技术】
[0002]云计算(Cloud Computing)是指基于互联网的超级计算模式,即把原来在本地计算机或远程服务器中的计算,通过网络分布在大量计算机上进行协同工作。它是一种新兴的共享基础架构的方法,可以将巨大的系统连接在一起以提供各种IT服务。
[0003]虚拟技术是云计算的基石。把一台物理机虚拟出多个虚拟机,再把这些虚拟机租用给不同的用户,用户通过付费使用这些虚拟资源。
[0004]虚拟局域网(Virtual Local Area Network, VLAN)是一种建构于局域网交换技术(LAN Switch)的网络管理的技术,网管人员可以借此通过控制交换机有效分派出入局域网的数据包到正确的出入端口,达到对不同实体局域网中的设备进行逻辑分群(Grouping)管理,并降低局域网内大量数据流通时,因无用数据包过多导致壅塞的问题,以及提升局域网的信息安全保障。
[0005]在虚拟机的配置信息中,可以对虚拟机的CPU个数、内存、媒质访问控制(MAC)地址等信息进行配置。在外界与虚拟机的交互中,IP地址是一个重要的操作接口,对虚拟机的操作和使用大多要通过IP地址来进行,但是IP地址通常会通过DHCP获得,物理机不能直接获取虚拟机的IP地址。

【发明内容】

[0006]有鉴于此,本发明提供一种获取虚拟机的IP地址的方法和系统,能够使服务器获得不同虚拟局域网络中虚拟机的IP地址,并通过获得的IP地址对虚拟机进行操作和使用。
[0007]为解决上述技术问题,本发明的技术方案是这样实现的:
[0008]一种获取虚拟机的IP地址的方法,应用包括客户端和服务端的网络中,所述服务器在所述客户端上配置虚拟机,并存储配置文件,配置的各虚拟机不都属于同一虚拟局域网;所述方法包括:
[0009]所述服务器在所述配置文件中获取需要查询IP地址的虚拟机的MAC地址,生成查询数据包并发送,其中,所述查询数据包用于查询所述虚拟机的IP地址;
[0010]所述客户端启动监听端口,监听到服务器发送的查询数据包时,根据该查询数据包生成反馈数据包,并发送给所述服务器;
[0011]所述服务器接收到所述客户端发送的反馈数据包时,确定接收到的反馈数据包中是否携带所述虚拟机的IP地址,如果是,更新到数据库中;否则,丢弃接收到的反馈数据包。
[0012]一种系统,所述系统包括服务器和客户端;
[0013]所述服务器,用于在所述客户端上配置虚拟机,并存储配置文件,配置的各虚拟机不都属于同一虚拟局域网;在所述配置文件中获取需要查询IP地址的虚拟机的MAC地址,生成查询数据包并发送,其中,所述查询数据包用于查询所述虚拟机的IP地址;接收到所述客户端发送的反馈数据包时,确定接收到的反馈数据包中是否携带所述虚拟机的IP地址,如果是,更新到数据库中;否则,丢弃接收到的反馈数据包;
[0014]所述客户端,用于启动监听端口,监听到服务器发送的查询数据包时,根据该查询数据包生成反馈数据包,并发送给所述服务器。
[0015]综上所述,本发明中服务器根据存储的属于不同虚拟局域网中的虚拟机的配置信息中的MAC地址,向客户端发送查询数据包,用于查询虚拟机的IP地址;服务器接收到客户端响应的反馈数据包时,获取虚拟机动态获取的IP地址。通过本发明的技术方案能够使服务器获得不同虚拟局域网络中虚拟机的IP地址,并通过获得的IP地址对虚拟机进行操作和使用。
【附图说明】
[0016]图1为本发明实施例中客户端中配置虚拟机的结构示意图;
[0017]图2为本发明实施例中获取虚拟机的IP地址的方法流程示意图;
[0018]图3为本发明具体实施例中应用于上述技术的系统示意图。
【具体实施方式】
[0019]为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明所述方案作进一步地详细说明。
[0020]本发明实施例中提出一种获取虚拟机的IP地址的方法,应用包括客户端和服务端的网络中,服务器通过与客户端之间的通信,获取客户端上虚拟机的动态IP地址。通过该方法能够使服务器获得不同虚拟局域网络中虚拟机的IP地址,并通过获得的IP地址对虚拟机进行操作和使用。
[0021]服务器在客户端上配置虚拟机,并存储配置文件,配置文件中包括配置的虚拟的MAC地址。配置的各虚拟机不都属于同一虚拟局域网。
[0022]参见图1,图1为本发明实施例中客户端中配置虚拟机的结构示意图。图1中配置了 N个虚拟机,其中虚拟机I和虚拟机2属于虚拟局域网I,虚拟机3属于虚拟局域网2,虚拟机N和虚拟机N-1属于局域网M,其他不再例举。
[0023]由于存在不同的虚拟机不都属于一个虚拟局域网,存在不同虚拟机属于同一局域网,使得通过传统的ARP协议无法获得虚拟机动态获取的IP地址。
[0024]参见图2,图2为本发明实施例中获取虚拟机的IP地址的方法流程示意图。具体步骤为:
[0025]步骤201,服务器在配置文件中获取需要查询IP地址的虚拟机的MAC地址,生成查询数据包并发送。
[0026]本步骤中的查询数据包用于查询所述虚拟机的IP地址;配置文件为存储的配置虚拟机的配置文件。
[0027]生成的查询数据包的源IP地址为本服务器的IP地址;目的IP为配置的IP地址,该配置的IP地址为用于查询虚拟机IP地址的IP地址,具体实现时,可以配置一个不常用的IP地址,即不会冲突的IP地址,如255.255.255.255 ;源MAC地址为本服务器的MAC地址;目的MAC地址为获取的虚拟机的MAC地址,即需要查询IP地址的虚拟机的MAC地址。
[0028]步骤202,客户端启动监听端口,监听到服务器发送的查询数据包时,根据该查询数据包生成反馈数据包,并发送给所述服务器。
[0029]在具体实现时,客户端可以通过listen函数启动监听端口,接收服务器发送的数据包。
[0030]客户端监听到查询数据包时,根据查询数据包中的目的MAC地址获知需要查询的是哪个虚拟机的IP地址。
[0031]客户端根据该查询数据包生成反馈数据包时,若该虚拟机已获得动态IP地址,反馈数据包的源IP地址为该虚拟机获得的动态IP地址;若所述虚拟机未获得动态IP地址,反馈数据包的源IP地址为所述查询数据包的目的IP地址;反馈数据包的目的IP为所述服务器的IP地址、源MAC地址为所述虚拟机的MAC地址、目的MAC地址为所述服务器的MAC地址。
[0032]步骤203,服务器接收到所述客户端发送的反馈数据包时,确定接收到的反馈数据包中是否携带所述虚拟机的IP地址,如果是,更新到数据库中;否则,丢弃接收到的反馈数据包。
[0033]在具体实现时,在查询数据包中通过Flag标识数据包的类型,如O标识查询数据包,I标识反馈数据包。
[0034]本步骤中确定该反馈数据包中是否携带所述虚拟机的IP地址,包括:
[0035]确定该反馈数据包的源IP地址,是否为查询数据包的目的IP地址,即是否为配置的IP地址的,如255.255.255.255 ;如果是,确定该反馈数据包中未携带所述虚拟机的IP地址;否则,确定该反馈数据包中携带所述虚拟机的IP地址。
[0036]服务器将反馈数据包中携带的虚拟机的IP地址更新到数据库中,具体包括:在数据库中查询该反馈数据包的源MAC地址,如果存在,更新数据库中所述源MAC地址对应的IP地址;如果不存在,则将该源MAC地址和IP地址绑定存储到数据库中。
[0037]在具体实现时,还可以为数据库中已绑定存储的源MAC地址和IP地址,设置老换时间,如果老化时间内还未更新该源MAC地址对应的IP地址,则将绑定存储的源MAC地址和IP地址删除。
[0038]通过上述实现,可见无论各虚拟机是否属于同一虚拟局域网,通过本发明提出的实现方法,都可以获得虚拟机通过DHCP动态获取的IP地址。服务器获取数据包之后,可以通过获取的IP地址来操作或使用虚拟机。
[0039]服务器还可以周期性地在所述配置文件中获取所有虚拟机的MAC地址,根据各虚拟机的MAC地址分别生成查询数据包并发送。
[0040]客户端监听到服务器发送的查询数据包时,根据监听到的各查询数据包分别生成反馈数据包,并发送给所述服务器。
[0041]服务器接收到所述客户端发送的各反馈数据包时,遍历接收到反馈数据包,对于任一反馈数据包确定其是否携带对应的虚拟机的IP地址,如果是,更新到数据库中;否则,丢弃接收到的反馈数据包。
[0042]这种采用心跳
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1