发明内容
本发明实施例提供了一种DHCP地址分配方法及DHCP服务器,用以解决DHCP地址分配过程中因未根据客户端DHCP-DISCOVER报文中的Option60选项进行地址分配所导致的为客户端分配的IP地址松散,不易于管理的问题。
为此,本发明实施例采用如下技术方案:
本发明实施例提供了一种DHCP地址分配的方法,该方法包括:DHCP服务器上存储有至少2个待分配IP地址的地址段;
所述DHCP服务器接收到DHCP客户端的DHCP请求报文后,提取所述请求报文的Option60选项;
所述DHCP服务器将提取到的Option60选项与其记录的Option60选项进行匹配;
若匹配到Option60选项,则根据对应于匹配到的Option60选项所记录的IP地址或IP地址段,为所述DHCP客户端分配相应IP地址段的IP地址;
若未匹配到Option60选项,则从所述至少2个IP地址段中选择1个地址段,为所述DHCP客户端分配该IP地址段的IP地址,并在接收到所述DHCP客户端接受IP地址的确认报文后,记录从所述DHCP客户端的DHCP请求报文中提取到的Option60选项,并对应记录为该DHCP客户端分配的IP地址或该IP地址所属的IP地址段。
本发明实施例还提供了一种DHCP服务器,所述DHCP服务器上存储有至少2个待分配IP地址的地址段;该DHCP服务器包括:控制模块,提取模块、匹配模块、地址分配模块、学习模块和存储模块,其中:
提取模块,用于在接收到DHCP客户端的DHCP请求报文后,提取所述请求报文的Option60选项;
控制模块,用于指示所述匹配模块将所述提取模块提取到的Option60选项与所述存储模块存储的Option60选项进行匹配,指示所述地址分配模块根据匹配结果进行地址分配,并在所述匹配模块未匹配到Option60选项的情况下,在接收到DHCP客户端接受IP地址的确认报文后,指示所述学习模块记录Option60选项以及对应的IP地址或该IP地址所属的IP地址段;
匹配模块,用于根据所述控制模块的指示,将所述提取模块提取到的Option60选项与所述存储模块存储的Option60选项进行匹配;
地址分配模块,用于根据所述控制模块的指示,在所述匹配模块匹配到Option60选项时,根据所述存储模块中对应于匹配到的Option60选项所记录的IP地址或IP地址段,为所述DHCP客户端分配相应IP地址段的IP地址;在未匹配到Option60选项时,从所述至少2个IP地址段中选择1个地址段,为所述DHCP客户端分配该IP地址段的IP地址;
学习模块,用于根据所述控制模块的指示,在接收到所述DHCP客户端接受IP地址的确认报文后,记录从所述DHCP客户端的DHCP请求报文中提取到的Option60选项,并对应记录为该DHCP客户端分配的IP地址或该IP地址所属的IP地址段;
存储模块,用于存储所述学习模块记录的Option60选项以及对应的IP地址或该IP地址所属的IP地址段。
与现有技术相比,本发明的上述实施例具有以下有益技术效果:
本发明的上述实施例中,DHCP服务器预先存储有多个待分配的IP地址段,在接收到客户端发送的DHCP-DISCOVER报文后,提取报文中携带的Option60选项,并将其与存储于DHCP服务器上的Option60选项匹配,若匹配到,则根据匹配到的Option60选项对应的IP地址或IP地址段,分配相应IP地址段的IP地址;若未匹配到,则从所述至少2个IP地址段中选择1个地址段,分配该IP地址段的IP地址,并在接收到客户端接受IP地址的确认报文后,记录该Option60选项,以及为该客户端分配的IP地址或该IP地址所属的IP地址段。本发明的实施例对待分配的IP地址依据一定规则进行部署,划分为多个IP地址段,能够将具有某一个或多个相同Option60选项的客户端划分在同一IP地址段内,这些具有相同Option60选项的客户端具有相同的硬件属性。通过对DHCP-DISCOVER报文中Option60选项的不断学习,将Option60选项作为分配IP地址的依据,按照预先部署的策略分配IP地址,使得IP地址的分配具有可控性及易于管理性。
具体实施方式
下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例所适用的网络架构基本与现有网络架构相同,其中包括DHCP服务器和DHCP客户端,DHCP服务器可以有多个。在需要跨网段分配IP地址时,还需要设置DHCP中继,它在处于不同网段间的DHCP客户端和DHCP服务器之间承担中继服务,将DHCP协议报文跨网段中继到目的DHCP服务器,从而使不同网络上的DHCP客户端可以共同使用一个DHCP服务器。
本发明实施例中,预先在DHCP服务器配置至少2个待分配IP地址的IP地址段。例如,配置192.168.100.0的IP地址段,对应的子网掩码为:255.255.255.0,网关IP地址为:192.268.100.1,DNS服务器的IP地址为192.268.100.1;配置192.168.110.0的IP地址段,对应的子网掩码为:255.255.255.0,网关IP地址为:192.268.110.1,DNS服务器的IP地址为192.268.110.1。
下面以不需要DHCP中继的IP地址分配过程为例,描述本发明实施例的实现过程。
参见图1所示,为本发明实施例提供的DHCP地址分配流程示意图,该DHCP地址分配方法包括以下步骤:
步骤11,DHCP客户端广播DHCP-DISCOVER报文,该报文中携带有Option60选项。
步骤12,DHCP服务器接收到DHCP客户端的DHCP-DISCOVER报文后,提取DHCP-DISCOVER报文的Option60选项。
步骤13,DHCP服务器将提取到的Option60选项与其记录的Option60选项进行匹配,若匹配到,则执行步骤14,否则,执行步骤15。
具体的,DHCP服务器按照设定位置和长度,将提取到的Option60选项中设定位置和长度的字段值,与所述DHCP服务器记录的Option60选项中相应位置和长度的字段值进行匹配。例如,所述设定位置和长度为Option60选项的第1个字段开始的n个字段,相应的,DHCP服务器将从DHCP-DISCOVER报文中提取到的Option60选项的第1个字段开始提取n个字段,与该服务器所记录的Option60选项的第1个字段开始的n个字段进行匹配。其中,DHCP服务器记录Option60选项的过程如下面的步骤18所述。
匹配到Option60选项是指:提取到的Option60选项中设定位置和长度的字段值,与所述DHCP服务器记录的Option60选项中相应位置和长度的字段值相同。
步骤14,DHCP服务器根据对应于匹配到的Option60选项所记录的IP地址或IP地址段,为DHCP客户端分配相应IP地址段的IP地址,并执行步骤16。
具体的,DHCP服务器在匹配到Option60选项后,根据对应于该Option60选项所记录的IP地址或IP地址段,从相同IP地址段选择IP地址进行分配。
步骤15,DHCP服务器从所述至少2个IP地址段中选择1个地址段,为DHCP客户端分配该IP地址段的IP地址,并执行步骤16。
具体的,从所述至少2个IP地址段中选择1个地址段是指,从DHCP服务器上预先存储的至少2个待分配IP地址的地址段中选择一个IP地址段,至于选择哪个待分配的IP地址段可以由管理员进行设定,例如,可以依据预先存储的IP地址段的先后顺序进行选择,也可以随机进行选择。
步骤16,DHCP服务器将上述分配给DHCP客户端的IP地址,连同IP地址租约期限和其他配置信息(如网关地址,域名服务器地址等)一同通过DHCP-OFFER报文发送给DHCP客户端。
步骤17,客户端接收到DHCP-OFFER报文,并在确认接受分配的IP地址后,向相应DHCP服务器返回DHCP-REQUEST报文。
如果有多台DHCP服务器向DHCP客户端回应DHCP-OFFER报文,则DHCP客户端只接受第一个收到的DHCP-OFFER报文,然后以广播方式发送DHCP-REQUEST报文,该报文中包含Option54选项(服务器标识选项),即该DHCP客户端选择的DHCP服务器的IP地址信息,通知所有的DHCP服务器,其他DHCP服务器可以重新使用曾提供的IP地址。
步骤18,DHCP服务器在接收到DHCP客户端发送的DHCP-REQUEST报文后,向该客户端返回DHCP-ACK报文。
该客户端收到该DHCP-ACK报文后就可以使用分配给它的IP地址等配置信息了。
具体的,若步骤13中DHCP服务器将提取到的Option60选项与其记录的Option60选项进行匹配时,若未匹配到Option60选项,则在本步骤中,DHCP服务器记录步骤12中从DHCP客户端的DHCP-DISCOVER报文中提取到的Option60选项,并对应记录步骤15中为该DHCP客户端分配的IP地址或该IP地址所属的IP地址段。
具体的,DHCP服务器可以通过建立列表的方式对从DHCP-DISCOVER报文中提取的Option60选项进行存储,该列表用于记录Option60选项以及对应分配的IP地址或分配的IP地址所属的IP地址段。该列表作为DHCP服务器为客户端分配IP地址的依据,在DHCP服务器下次提取到与该列表中的Option60选项相同的Option60选项时,就可以依据该Option60选项所对应的IP地址段或IP地址,为相应客户端分配相同IP地址段的IP地址了。
该列表建立的过程即为Option60选项的学习过程。除了前述通过DHCP服务器获取Option60选项实现学习过程之外,还可以由管理员获取Option60选项,获知该Option60选项中携带的DHCP客户端的硬件属性信息后,依据分配策略为具有相同硬件属性的不同DHCP客户端分配同一地址段的IP地址,并将该Option60选项及其对应的IP地址或地址段存储于该列表中,从而实现该学习过程。通过该学习过程,DHCP服务器可以收集并记录不同客户端的硬件属性信息,并在为客户端分配IP地址时以此为依据进行分配,这样,具有相同硬件属性的客户端会被分配相同IP地址段的地址,使得IP地址的分配具有可控性及易于管理性。
上述流程的步骤12中,若DHCP服务器从DHCP-DISCOVER报文中提取出的Option60选项的数量大于1,则丢弃所述DHCP-DISCOVER报文,结束本次分配流程。若DHCP服务器未从接收到的DHCP-DISCOVER报文中提取出Option60选项,则采用现有方式(即无需参考Option60选项的方式)为所述客户端分配IP地址,或者,从所述至少2个IP地址段中选择1个地址段,为所述DHCP客户端分配该IP地址段的IP地址。
考虑到DHCP服务器所记录的Option60选项长时间未匹配到,则表明对应的硬件设备可能不再使用,该记录则成为无效记录,同时无效记录如果较多也会占用DHCP服务器存储资源,以及降低DHCP服务器匹配操作的效率,因此,本发明实施例中,若DHCP服务器记录的Option60选项以及对应记录的IP地址或IP地址段,在设定长时间内没有被匹配到,则DHCP服务器删除该Option60选项,以及对应的IP地址或IP地址段。
基于相同或相似的构思,本发明实施例还提供一种DHCP服务器,如图2所示,为本发明实施例提供的DHCP服务器的结构示意图,所述DHCP服务器上存储有至少2个待分配IP地址的地址段;该DHCP服务器包括:控制模块21、提取模块22、匹配模块23、地址分配模块24、学习模块25和存储模块26,其中:
控制模块21,用于指示匹配模块23将提取模块22提取到的Option60选项与存储模块26存储的Option60选项进行匹配,指示地址分配模块24根据匹配结果进行地址分配,并在匹配模块23未匹配到Option60选项的情况下,在接收到DHCP客户端接受IP地址的确认报文后,指示学习模块25记录Option60选项以及对应的IP地址或该IP地址所属的IP地址段;
提取模块22,用于在接收到DHCP客户端的DHCP-DISCOVER报文后,提取DHCP-DISCOVER报文的Option60选项;
匹配模块23,用于根据控制模块21的指示,将提取模块22提取到的Option60选项与存储模块26存储的Option60选项进行匹配;
地址分配模块24,用于根据控制模块21的指示,在匹配模块23匹配到Option60选项时,根据存储模块26中对应于匹配到的Option60选项所记录的IP地址或IP地址段,为DHCP客户端分配相应IP地址段的IP地址;在未匹配到Option60选项时,从所述至少2个IP地址段中选择1个地址段,为DHCP客户端分配该IP地址段的IP地址;
学习模块25,用于根据控制模块21的指示,在接收到DHCP客户端接受IP地址的确认报文后,记录从DHCP客户端的DHCP-DISCOVER报文中提取到的Option60选项,并对应记录为该DHCP客户端分配的IP地址或该IP地址所属的IP地址段;
存储模块26,用于存储学习模块25记录的Option60选项以及对应的IP地址或该IP地址所属的IP地址段。
具体的,匹配模块23具体用于,将提取到的Option60选项中设定位置和长度的字段值,与DHCP服务器记录的Option60选项中相应位置和长度的字段值进行匹配;
匹配到Option60选项是指:提取到的Option60选项中设定位置和长度的字段值,与DHCP服务器记录的Option60选项中相应位置和长度的字段值相同。
具体的,地址分配模块24还用于,在提取模块22从接收到的DHCP-DISCOVER报文中提取的Option60选项数量大于1时,丢弃所述DHCP-DISCOVER报文;或/和
在提取模块22从接收到的DHCP-DISCOVER报文中提取出Option60选项时,从所述至少2个IP地址段中选择1个地址段,为客户端分配该地址段的IP地址。
本发明实施例提供的DHCP服务器还包括老化模块27,用于在存储模块36中存储的Option60选项,以及对应记录的IP地址或IP地址段,在设定长时间内没有被匹配到时,删除该Option60选项,以及对应的IP地址或IP地址段。
本发明的上述实施例中,DHCP服务器预先存储有多个待分配的IP地址段,在接收到客户端发送的DHCP-DISCOVER报文后,提取报文中携带的Option60选项,并将其与存储于DHCP服务器上的Option60选项匹配,若匹配到,则根据匹配到的Option60选项对应的IP地址或IP地址段,分配相应IP地址段的IP地址;若未匹配到,则从所述至少2个IP地址段中选择1个地址段,分配该IP地址段的IP地址,并在接收到客户端接受IP地址的确认报文后,记录该Option60选项,以及为该客户端分配的IP地址或该IP地址所属的IP地址段。本发明的实施例对待分配的IP地址依据一定规则进行部署,划分为多个IP地址段,能够将具有某一个或多个相同Option60选项的客户端划分在同一IP地址段内,这些具有相同Option60选项的客户端具有相同的硬件属性。通过对DHCP-DISCOVER报文中Option60选项的不断学习,将Option60选项作为分配IP地址的依据,按照预先部署的策略分配IP地址,使得IP地址的分配具有可控性及易于管理性。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。