分布式虚拟DHCP服务提供系统和方法转让专利

申请号 : CN201610644901.3

文献号 : CN106101301A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张群轼

申请人 : 汉柏科技有限公司

摘要 :

本发明提供一种分布式虚拟DHCP服务提供系统,包括:一个或多个租户,每个租户对应一个或者多个适配于各自虚拟网络的虚拟机,该多个虚拟机连接到一个虚拟交换机,每个虚拟网络经由虚拟交换机对应一个命名空间,每个命名空间启动一个dnsmasq进程负责提供DHCP服务。本申请提出的系统可以避免地址资源的浪费,同时可以实现DHCP流量隔离,并且支持多用户操作。

权利要求 :

1.一种分布式虚拟DHCP服务提供系统,其特征在于,包括:一个或多个租户,每个租户对应一个或者多个适配于各自虚拟网络的虚拟机,该多个虚拟机连接到一个虚拟交换机,每个虚拟网络经由虚拟交换机对应一个命名空间,每个命名空间启动一个dnsmasq进程负责提供DHCP服务。

2.根据权利要求2所述的系统,其特征在于,所述每个租户建立一个或者多个虚拟网络,每个虚拟网络对应于一个虚拟机,每个虚拟机都连接到虚拟机交换机,在连接处设置独立VLAN标签。

3.根据权利要求1所述的系统,其特征在于,所述每个虚拟网络都配置虚拟DHCP服务,设置IP地址范围。

4.根据权利要求1所述的系统,其特征在于,所述dnsmasq进程布置在命名空间中,每个虚拟网络对应一个命名空间,一个虚拟DHCP对应的所有dnsmasq进程使用相同的Listen IP。

5.根据权利要求1所述的系统,其特征在于,所述命名空间通过端口对连接到虚拟机交换机上,并且每个命名空间的连接处设置与虚拟网络对应的VLAN标签。

6.根据权利要求1所述的系统,其特征在于,所述系统还包括:连接到所述虚拟交换机的第二虚拟交换机,该第二虚拟交换机用于设置禁止DHCP报文从主机发出,该设置针对每个虚拟机单独进行;

每台主机上的DHCP服务允许使用相同的Listen IP地址。

7.一种基于权利要求1-6的系统提供DHCP服务的方法,其特征在于,包括:网络控制节点接收到建立虚拟DHCP服务的请求,把此请求下发给每台主机上的代理端程序;

代理端程序负责建立命令空间,在其内启动dnsmasq,并且建立虚拟交换机的端口对;

把命名空间、虚拟机与第一虚拟交换机分别对应连接,并在连接处打上VLAN标签。

说明书 :

分布式虚拟DHCP服务提供系统和方法

技术领域

[0001] 本发明涉及通信技术领域,更具体地,涉及面向云计算多租户的分布式虚拟DHCP服务提供系统和方法。

背景技术

[0002] 动态主机配置协议(Dynamic Host Configuration Protocol,DHCP)通常被应用在大型的局域网络环境中,主要作用是集中管理和分配IP地址,使网络环境中的主机动态获得IP地址、Gateway地址和DNS服务器地址等信息,并提升地址的使用率。
[0003] DHCP协议采用客户端/服务器模型,主机地址的动态分配任务由网络主机驱动。当DHCP服务器接收到来自网络主机申请地址的信息时,才会向网络主机发送相关的地址配置等信息,以实现网络主机地址信息的动态配置
[0004] 目前,在云计算环境中,虚拟机可采用手动方式配置IP地址,也可以使用虚拟DHCP服务获取IP地址,使用虚拟DHCP服务相比手动方式更加方便。当前云计算产品中实现DHCP服务的方式一般是在网络控制节点上启动一个dnsmasq进程来处理虚拟机的DHCP请求。
[0005] 由于提供DHCP服务的dnsmasq都是运行在一台主机上,所以存在单点故障问题。为了避免此问题,会采用集群的方式部署,让dnsmasq进程运行在多台主机上。这又带来一个新的问题,由于每个dnsmasq进程需要一个listen IP来监听虚拟机的DHCP请求,当dnsmasq部署过多时,会占用太多的IP资源。相反,如果dnsmasq部署过少又会降低稳定性。

发明内容

[0006] 本发明提供一种克服上述问题或者至少部分地解决上述问题的面向云计算多租户的分布式虚拟DHCP服务提供系统和方法。
[0007] 根据本发明的一个方面,提供一种分布式虚拟DHCP服务提供系统,包括:一个或多个租户,每个租户对应一个或者多个适配于各自虚拟网络的虚拟机,该多个虚拟机连接到一个虚拟交换机,每个虚拟网络经由虚拟交换机对应一个命名空间,每个命名空间启动一个dnsmasq进程负责提供DHCP服务。
[0008] 其中,所述每个租户建立一个或者多个虚拟网络,每个虚拟网络对应于一个虚拟机,每个虚拟机都连接到虚拟机交换机,在连接处设置独立VLAN标签。
[0009] 其中,所述每个虚拟网络都配置虚拟DHCP服务,设置IP地址范围。
[0010] 其中,所述dnsmasq进程布置在命名空间中,每个虚拟网络对应一个命名空间,一个虚拟DHCP对应的所有dnsmasq进程使用相同的Listen IP。
[0011] 其中,所述命名空间通过端口对连接到虚拟机交换机上,并且每个命名空间的连接处设置与虚拟网络对应的VLAN标签。
[0012] 其中,所述系统还包括:连接到所述虚拟交换机的第二虚拟交换机,该第二虚拟交换机用于设置禁止DHCP报文从主机发出,该设置针对每个虚拟机单独进行;
[0013] 每台主机上的DHCP服务允许使用相同的Listen IP地址。
[0014] 其中,基于上述系统提供DHCP服务的方法,包括:
[0015] 网络控制节点接收到建立虚拟DHCP服务的请求,把此请求下发给每台主机上的代理端程序;
[0016] 代理端程序负责建立命令空间,在其内启动dnsmasq,并且建立虚拟交换机的端口对;
[0017] 把命名空间、虚拟机与第一虚拟交换机分别对应连接,并在连接处打上VLAN标签。
[0018] 本申请提出的装置和方法可以避免地址资源的浪费,同时可以实现DHCP流量隔离,并且支持多用户操作。

附图说明

[0019] 图1为根据本发明实施例的分布式虚拟DHCP服务提供装置的架构示意图。

具体实施方式

[0020] 下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
[0021] 图1示出根据本发明实施例的面向云计算多租户的分布式虚拟DHCP服务提供系统的框图,如图1所示,该系统总的包括:多个租户,每个租户对应一个或者多个适配于各自虚拟网络的虚拟机,该多个虚拟机连接到一个虚拟交换机,每个虚拟网络经由虚拟交换机对应一个命名空间,每个命名空间启动一个dnsmasq进程负责提供DHCP服务。
[0022] 其中,如图1所示,图中示出两个主机,每个主机分别有2个租户,包括租户A和租户B,其中,租户A建了2个虚拟网络,租户B建了一个虚拟网络。其中,在每个虚拟网络中都建立一个虚拟机,为了让每个虚拟机都能通过DHCP服务获取IP,在虚拟网络上都配置了虚拟DHCP服务,设置了IP地址范围。
[0023] 其中,虚拟机连接到虚拟机交换机上,并且在连接处设置VLAN标签。例如,虚拟机1连接虚拟机交换机1的端口上设置了VLAN 100标签,虚拟机2连接虚拟机交换机1的端口上设置了VLAN 200标签,虚拟机3连接虚拟机交换机1的端口上设置了VLAN 300标签。
[0024] 另外,为了区分每个虚拟网络的DHCP服务,系统建立了多个命名空间,把dnsmasq进程启动在命名空间中,每个虚拟网络对应一个命名空间,每个命名空间启动一个dnsmasq进程负责提供DHCP服务,这样就允许不同dnsmasq之间的IP地址可以重叠。其中,每个主机上的dnsmasq进程可以使用相同Listen IP的原因是:在主机出口的虚拟机交换机上,限制了DHCP报文的流出,每个主机上虚拟机或者dnsmasq不会收到其他主机上dhcp报文。dhcp报文并不是被特定的程序拦截,dnsmasq进程只负责响应dhcp报文(走DHCP正常处理流程),拦截工作是由虚拟机交换机上设置的flow规则担当。
[0025] 其中,这些命名空间通过端口对连接到虚拟机交换机1上,并且打上与虚拟网络对应的VLAN标签,例如,对应于虚拟网络1的命名空间端口上设置了VLAN 100标签,对应于虚拟网络2的命名空间的端口上设置了VLAN 200标签,对应于虚拟网络3的命名空间的端口上设置了VLAN 300标签。这样,DHCP流量就能实现相互隔离,同时实现与自己所在网络的虚拟机进行互通。
[0026] 根据上述情况,在每台主机上都部署与图1中相同的系统,只是连接的虚拟机可能不同。
[0027] 另外,同时在每台主机上布置连接到虚拟交换机1的虚拟交换机2,该虚拟交换机2上设置禁止DHCP报文从主机发出的规则。规则对每个虚拟机单独设置,这样不会影响其他虚拟机,因为客户可能想使用外部DHCP服务,这样不论是内部还是外部DHCP服务都能支持。由于内部DHCP流量不会出主机,所以每台主机上的DHCP服务都可以使用相同的Listen IP地址,也就是说整个分布式DHCP服务只使用整个网段中一个IP地址作为监听地址。
[0028] 在该系统的应用过程中,网络控制节点接收到建立虚拟DHCP服务的请求,网络控制端程序会把此任务下发给每台主机上的代理端程序,代理端程序负责建立命令空间,在其内启动dnsmasq,并且建立端口对,把命名空间与虚拟交换机连接上,并在连接处打上VLAN标签。其中,在虚拟交换机2上建立的Flow规则是在虚拟机建立时,通过代理端程序设置到虚拟交换机2中。
[0029] 其中可以看到,本申请采用在主机内部DHCP报文进行拦截,而不采用传统的DHCP报文请求流程,例如在主机出口虚拟交换机上限制了DHCP报文流出主机。本申请的一个虚拟机网络对应一个DHCP服务,而不是如传统在主机上对应多个DHCP服务。本申请能够支持多租户,每个租户对应一个虚拟网络,对应的DHCP地址段独立。
[0030] 根据本申请的第二实施例,提供一种面向云计算多租户的分布式虚拟DHCP服务提供方法,该方法包括:网络控制节点接收到建立虚拟DHCP服务的请求,把此请求下发给每台主机上的代理端程序;代理端程序负责建立命令空间,在其内启动dnsmasq,并且建立虚拟交换机的端口对,把命名空间、虚拟机与第一虚拟交换机分别对应连接,并在连接处打上VLAN标签。
[0031] 另外,布置第二虚拟交换机,对每个虚拟机单独设置,禁止DHCP报文从主机发出。从而不会影响其他虚拟机,并且因为客户可能想使用外部DHCP服务,这样不论是内部还是外部DHCP服务都能支持。由于内部DHCP流量不会出主机,所以每台主机上的DHCP服务都可以使用相同的Listen IP地址,也就是说整个分布式DHCP服务只使用整个网段中一个IP地址作为监听地址。
[0032] 其中,多个租户,每个租户对应一个或者多个适配于各自虚拟网络的虚拟机,该多个虚拟机连接到一个虚拟交换机,每个虚拟网络经由虚拟交换机对应一个命名空间,每个命名空间启动一个dnsmasq进程负责提供DHCP服务。
[0033] 其中,在每个虚拟网络中都建立一个虚拟机,为了让每个虚拟机都能通过DHCP服务获取IP,在虚拟网络上都配置了虚拟DHCP服务,设置了IP地址范围。
[0034] 其中,虚拟机连接到虚拟机交换机上,并且在连接处设置VLAN标签。例如,虚拟机1连接虚拟机交换机1的端口上设置了VLAN 100标签,虚拟机2连接虚拟机交换机1的端口上设置了VLAN 200标签,虚拟机3连接虚拟机交换机1的端口上设置了VLAN 300标签。
[0035] 另外,为了区分每个虚拟网络的DHCP服务,系统建立了多个命名空间,把dnsmasq进程启动在命名空间中,每个虚拟网络对应一个命名空间,每个命名空间启动一个dnsmasq进程负责提供DHCP服务,这样就允许不同DHCP之间的IP地址可以重叠。
[0036] 其中,这些命名空间通过端口对连接到虚拟机交换机1上,并且打上与虚拟网络对应的VLAN标签,例如,对应于虚拟网络1的命名空间端口上设置了VLAN 100标签,对应于虚拟网络2的命名空间的端口上设置了VLAN 200标签,对应于虚拟网络3的命名空间的端口上设置了VLAN 300标签。这样,DHCP流量就能实现相互隔离,同时实现与自己所在网络的虚拟机进行互通。
[0037] 最后,本申请的方法仅为较佳的实施方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。