虚拟DHCP的实现方法与流程

文档序号:12040293阅读:443来源:国知局
虚拟DHCP的实现方法与流程
本发明涉及虚拟网络技术领域,特别涉及一种虚拟DHCP的实现方法。

背景技术:
虚拟网络是一种包含至少部分是虚拟网络链接的计算机网络。虚拟网络链接是在两个计算设备间不包含物理连接,而是通过网络虚拟化来实现,即两个结点之间的连接并不需要传统网络建设所需的点到点的物理链路,而是架构在网络平台之上的逻辑链路。基于虚拟设备的虚拟网络通常含有数量众多的虚拟机。虚拟机(VirtualMachine,VM)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。通过虚拟机软件,便可以在一台物理主机上模拟出一台或多台虚拟的计算机,这些虚拟机完全就像真正的计算机那样进行工作,例如可以安装操作系统、安装应用程序、访问网络资源等等。同物理主机一样,虚拟机在虚拟网络中进行通信同样需要一个唯一的IP地址。虚拟机的IP地址可以由用户自己定义,也可以通过DHCP来给虚拟机分配。对于一个多个节点动态接入的网络来说,通常采取使用DHCP进行IP地址分配的方式。DHCP(DynamicHostConfigurationProtocol,动态主机设置协议)是一种使网络管理员能够集中管理和自动分配IP地址的通信协议。在IP网络中,每个连接Internet的设备都需要分配唯一的IP地址。DHCP使网络管理员能够从中心结点监控和分配IP地址。当某台计算机移到网络中的其它位置时,能自动收到新的IP地址。随着云计算技术的飞速发展,虚拟网络技术也在迅速发展并日益成熟。针对虚拟网络中虚拟机数量众多、节点动态接入、网络虚拟化的特点,传统的DHCP分配IP地址的方式已无法适应虚拟网络的需求,因此,有必要针对虚拟网络研究出更加适合的IP地址分配方式。

技术实现要素:
(一)所要解决的技术问题本发明的目的在于提供一种虚拟DHCP的实现方法,从而能够在虚拟网络中利用DHCP服务为虚拟机分配IP地址。(二)技术方案为了解决上述技术问题,本发明提出了一种虚拟DHCP的实现方法,所述方法包括:S1、虚拟网络中的控制节点接收到虚拟DHCP建立请求消息后,建立虚拟DHCP配置信息,并建立MAC地址与IP地址的二元组列表,所述二元组列表用于保存可用MAC地址与可用IP地址的一一对应关系;S2、所述控制节点将所述二元组列表以及所述虚拟DHCP配置信息发送给所述虚拟网络中的至少一个代理节点,所述代理节点根据所述虚拟DHCP配置信息建立DHCP服务;S3、当某一虚拟机加入所述虚拟网络时,所述虚拟机向所述控制节点发送MAC地址分配请求消息,所述控制节点从所述二元组列表中选择一个未使用的二元组,并将其中的MAC地址分配给所述虚拟机;S4、所述虚拟机通过广播发送IP地址分配请求消息,所述代理节点接收到所述IP地址分配请求消息后,从所述二元组列表中查找出与所述虚拟机的MAC地址相对应的IP地址并将其分配给所述虚拟机。可选的,所述虚拟DHCP建立请求消息包括可用IP地址。可选的,步骤S1具体包括:所述控制节点根据所述虚拟DHCP建立请求消息中的可用IP地址,为每一个可用IP地址创建一个对应的可用MAC地址,并保存到所述二元组列表。可选的,所述虚拟DHCP建立请求消息包括网关IP地址和DNS地址。可选的,步骤S1具体包括:所述控制节点根据所述虚拟DHCP建立请求消息中的网关IP地址和DNS地址,建立所述虚拟DHCP配置信息。可选的,步骤S4中,所述虚拟机通过广播发送IP地址分配请求消息具体包括:所述虚拟机通过发送DHCPDISCOVER广播包的方式发送所述IP地址分配请求消息。可选的,步骤S4之后进一步包括:S5、当所述控制节点检测到所述代理节点通讯中断时,将所述二元组列表以及所述虚拟DHCP配置信息发送给所述虚拟网络中的其他代理节点,其他代理节点根据所述虚拟DHCP配置信息建立DHCP服务。可选的,步骤S5进一步包括:所述控制节点与所述代理节点每隔固定时间间隔进行一次心跳测试,若所述控制节点在超过预设时间间隔后未收到所述代理节点发送的心跳包,则判定为所述代理节点通讯中断。可选的,所述固定时间间隔为15秒。可选的,步骤S1进一步包括:所述控制节点建立数据库,并将所述二元组列表以及所述虚拟DHCP配置信息保存到所述数据库。(三)有益效果本发明提出的技术方案能够在虚拟网络中基于控制节点和代理节点的协同工作实现虚拟DHCP,并通过DHCP服务为每一个虚拟机分配唯一的MAC地址及IP地址。采用虚拟DHCP来分配IP地址会大大提高工作效率,节省管理维护的成本。附图说明图1是本发明一个实施例的实现流程图。图2是本发明实施例1中建立DHCP服务A的示意图。图3是本发明实施例1中新建代理节点的示意图。图4是本发明一个实施例中建立多个虚拟DHCP的示意图。具体实施方式下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。本发明提出了一种虚拟DHCP的实现方法,如图1所示,所述方法包括:S1、虚拟网络中的控制节点接收到虚拟DHCP建立请求消息后,建立虚拟DHCP配置信息,并建立MAC地址与IP地址的二元组列表,所述二元组列表用于保存可用MAC地址与可用IP地址的一一对应关系;S2、所述控制节点将所述二元组列表以及所述虚拟DHCP配置信息发送给所述虚拟网络中的至少一个代理节点,所述代理节点根据所述虚拟DHCP配置信息建立DHCP服务;S3、当某一虚拟机加入所述虚拟网络时,所述虚拟机向所述控制节点发送MAC地址分配请求消息,所述控制节点从所述二元组列表中选择一个未使用的二元组,并将其中的MAC地址分配给所述虚拟机;S4、所述虚拟机通过广播发送IP地址分配请求消息,所述代理节点接收到所述IP地址分配请求消息后,从所述二元组列表中查找出与所述虚拟机的MAC地址相对应的IP地址并将其分配给所述虚拟机。本发明提出的技术方案能够在虚拟网络中基于控制节点和代理节点的协同工作实现虚拟DHCP,并通过DHCP服务为每一个虚拟机分配唯一的MAC地址及IP地址。采用虚拟DHCP来分配IP地址会大大提高工作效率,节省管理维护的成本。下面通过一个具体的实施例,对所述方法的优选实施方式进行举例说明。实施例1:首先用户需要在系统中建立一个虚拟网络,然后给这个虚拟网络建立一个虚拟DHCP。如图2所示,本实施例中的虚拟网络包括主机A、主机B和主机C,其中,主机A为该虚拟网络的控制节点,主机B和主机C为代理节点。用户在建立虚拟DHCP时,首先需要向控制节点发送虚拟DHCP建立请求消息,在该请求消息中,用户可以给出虚拟DHCP的名称、可用IP地址的范围、网关IP地址以及DNS的IP地址等信息。然后这个请求会发送给控制节点。在本实施例中,用户请求建立的虚拟DHCP的名称记为A。控制节点在收到虚拟DHCP建立请求消息后,会根据该虚拟DHCP建立请求消息中的可用IP地址,为每一个可用IP地址创建一个对应的可用MAC地址,并保存到二元组列表(MAC,IP)中,这里的(MAC,IP)是一个二元组结果集,用于保存可用MAC地址与可用IP地址的一一对应关系;同时,控制节点根据该虚拟DHCP建立请求消息中的虚拟DHCP的名称、网关IP地址和DNS地址,建立虚拟DHCP配置信息。另外,如图2所示,控制节点还可以建立数据库,并将所述二元组列表(MAC,IP)以及所述虚拟DHCP配置信息保存到所述数据库中,以方便后续查找。当控制节点发送建立虚拟DHCP的命令给代理节点时,所述二元组列表(MAC,IP)以及所述虚拟DHCP配置信息会一起传送过去。如图2所示,主机B和主机C上的代理节点在接收到控制节点的命令后,会建立响应的DHCP服务进程,即,主机B和主机C上的代理节点均会创建DHCP服务A,并共同为该虚拟网络中的虚拟机分配IP地址。当某一新建的虚拟机需要加入该虚拟网络时,这个新建的虚拟机首先会向控制节点发送MAC地址分配请求消息;控制节点接收到请求后,从(MAC,IP)中选择一个未使用的二元组,并将其中的MAC地址分配给这个新建的虚拟机;然后这个新建的虚拟机用这个MAC地址来建立自己的虚拟网卡。当这个新建的虚拟机启动后,会发送DHCP广播来请求IP地址;这时之前建立好的DHCP服务A会收到这个请求包,由于之前DHCP服务A的配置文件中已经包括了这个MAC的对应IP,所以这个已经指定好的IP就会分配给新建的虚拟机。这里虚拟机获取IP地址的过程与传统的DHCP服务相同,即:虚拟机通过发送DHCPDISCOVER广播包的方式发送IP地址分配请求消息;主机B或主机C上的代理节点在接收到该IP地址分配请求消息后,从二元组列表(MAC,IP)中查找出与该虚拟机的MAC地址相对应的IP地址,并将其发送给虚拟机,即,向虚拟机回复一个DHCPOFFER消息;虚拟机接受了IP地址后,向网络发送一个DHCPREQUEST广播包;最后代理节点向虚拟机回复一个DHCPACK消息,至此,虚拟机的IP地址分配完成。为了保证网络可靠运行,控制节点需要确认各个提供DHCP服务的代理节点能够一直保持正常通讯。因此,控制节点和代理节点之间每隔固定时间间隔(比如15秒)会进行一次心跳测试;当一台主机被关闭或者网线被拔除等情况下,控制节点就会发现无法与其上的代理节点进行通讯,这时控制节点会选择该虚拟网络中的另一台主机,并从数据库中取出所述二元组列表以及所述虚拟DHCP配置信息,然后发送虚拟DHCP建立命令给另一台主机上的代理节点,在另一台主机上重新建立DHCP服务,以保证DHCP服务的高可用性。如图3所示,原本由主机B上的代理节点建立并提供DHCP服务A。控制节点与主机B上的代理节点每隔固定时间间隔进行一次心跳测试。在某一时刻,控制节点在超过预设时间间隔后未收到主机B上的代理节点发送的心跳包,于是判定主机B上的代理节点通讯中断。因此,控制节点从该虚拟网络中选择了主机D,从数据库中取出(MAC,IP)以及DHCP服务A的配置信息,并发送给主机D上的代理节点;然后主机D上的代理节点建立DHCP服务A,并为该虚拟网络中的虚拟机分配IP地址。上述机制能够保证虚拟网络中总是有特定数量的代理节点提供IP地址分配服务,从而保证网络的高可靠性。需要说明的是,在系统中存在多个虚拟网络的情况下,某一主机上的代理节点既可以建立虚拟网络A的虚拟DHCP,同时也可以建立虚拟网络B的虚拟DHCP。如图4所示,系统中存在两个虚拟网络;其中一个虚拟网络需要建立DHCP服务A,另一个虚拟网络需要建立DHCP服务B;于是,主机B和主机C上均同时建立有DHCP服务A和DHCP服务B。由于虚拟网络之间是互相隔离的,因此,对其中一个虚拟网络中的新建虚拟机来说,它的IP地址分配请求只会被对应于该虚拟网络的DHCP服务接收到。综上,本发明提出的技术方案能够在虚拟网络中基于控制节点和代理节点的协同工作实现虚拟DHCP,并通过DHCP服务为每一个虚拟机分配唯一的MAC地址及IP地址。采用虚拟DHCP来分配IP地址会大大提高工作效率,节省管理维护的成本。以上所述仅是本发明的优选实施方式,应当指出,对于本领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和替换,这些改进和替换也应视为本发明的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1