Dhcp地址分配方法及dhcp服务器的制作方法

文档序号:7962255阅读:271来源:国知局
专利名称:Dhcp地址分配方法及dhcp服务器的制作方法
技术领域
本发明涉及通信技术领域,特别是涉及一种DHCP地址分配方法及DHCP服务器。
背景技术
DHCP (Dynamic Host Configuration Protocol,动态主机配置协议)是局域网的网络协议,采用服务器/客户端架构,DHCP服务器主要用于为DHCP客户端自动分配IP地
址等配置信息。利用DHCP协议自动分配IP地址的过程是DHCP客户端通过发送DHCP-DISC0VER 报文来寻找DHCP服务器,网络中接收到DHCP-DISC0VER报文的DHCP服务器为该客户端分配IP地址和其他配置信息,并通过DHCP-0FFER报文发送给DHCP客户端,DHCP客户端接受分配的IP地址后以广播方式发送DHCP-REQUEST请求报文,收到DHCP-REQUEST请求报文的 DHCP服务器判断本服务器有相应租约记录后,发送DHCP-ACK报文作为应答,通知DHCP客户端可以使用分配的IP地址。客户端向DHCP服务器发出的DHCP-DISC0VER报文中可包含0ption60选项,该选项携带客户端的硬件相关信息,用于指示客户端自身的属性,例如,0ption60选项中可以包括厂商标识、设备类别、设备型号等字段。0ption60选项的数据内容和格式(如包含哪些字段以及各字段内容的含义)由各设备厂商自定义,因此无法根据0ption60选项的内容在 DHCP服务器上进行预先配置,作为进行DHCP地址分配的依据。现有的DHCP地址分配方法中,DHCP服务器从未分配的地址资源中按照地址的顺序为客户端分配IP地址,该地址分配过程不涉及客户端请求报文中终端的硬件信息,分配的IP地址与客户端的硬件配置信息之间不存在关联,导致DHCP服务器分配的IP地址松散,无法为具有相同硬件信息的客户端分配相邻的IP地址,不利于IP地址的管理。因此,亟需一种利用客户端DHCP-DISC0VER报文中的0ption60选项进行DHCP地址分配的技术方案。

发明内容
本发明实施例提供了一种DHCP地址分配方法及DHCP服务器,用以解决DHCP地址分配过程中因未根据客户端DHCP-DISC0VER报文中的0ption60选项进行地址分配所导致的为客户端分配的IP地址松散,不易于管理的问题。为此,本发明实施例采用如下技术方案本发明实施例提供了一种DHCP地址分配的方法,该方法包括DHCP服务器上存储有至少2个待分配IP地址的地址段;所述DHCP服务器接收到DHCP客户端的DHCP请求报文后,提取所述请求报文的 0ption60 选项;所述DHCP服务器将提取到的0ption60选项与其记录的0ption60选项进行匹配;若匹配到0ption60选项,则根据对应于匹配到的0ption60选项所记录的IP地址或IP地址段,为所述DHCP客户端分配相应IP地址段的IP地址;若未匹配到0ption60选项,则从所述至少2个IP地址段中选择1个地址段,为所述DHCP客户端分配该IP地址段的IP地址,并在接收到所述DHCP客户端接受IP地址的确认报文后,记录从所述DHCP客户端的DHCP请求报文中提取到的0ption60选项,并对应记录为该DHCP客户端分配的IP地址或该IP地址所属的IP地址段。本发明实施例还提供了一种DHCP服务器,所述DHCP服务器上存储有至少2个待分配IP地址的地址段;该DHCP服务器包括控制模块,提取模块、匹配模块、地址分配模块、学习模块和存储模块,其中提取模块,用于在接收到DHCP客户端的DHCP请求报文后,提取所述请求报文的 0ption60 选项;控制模块,用于指示所述匹配模块将所述提取模块提取到的0ption60选项与所述存储模块存储的0ption60选项进行匹配,指示所述地址分配模块根据匹配结果进行地址分配,并在所述匹配模块未匹配到OptioneO选项的情况下,在接收到DHCP客户端接受IP 地址的确认报文后,指示所述学习模块记录0ption60选项以及对应的IP地址或该IP地址所属的IP地址段;匹配模块,用于根据所述控制模块的指示,将所述提取模块提取到的0ption60选项与所述存储模块存储的0ption60选项进行匹配;地址分配模块,用于根据所述控制模块的指示,在所述匹配模块匹配到0ption60 选项时,根据所述存储模块中对应于匹配到的0ption60选项所记录的IP地址或IP地址段,为所述DHCP客户端分配相应IP地址段的IP地址;在未匹配到0ption60选项时,从所述至少2个IP地址段中选择1个地址段,为所述DHCP客户端分配该IP地址段的IP地址;学习模块,用于根据所述控制模块的指示,在接收到所述DHCP客户端接受IP地址的确认报文后,记录从所述DHCP客户端的DHCP请求报文中提取到的0ption60选项,并对应记录为该DHCP客户端分配的IP地址或该IP地址所属的IP地址段;存储模块,用于存储所述学习模块记录的0ption60选项以及对应的IP地址或该 IP地址所属的IP地址段。与现有技术相比,本发明的上述实施例具有以下有益技术效果本发明的上述实施例中,DHCP服务器预先存储有多个待分配的IP地址段,在接收到客户端发送的DHCP-DISC0VER报文后,提取报文中携带的0ption60选项,并将其与存储于DHCP服务器上的0ption60选项匹配,若匹配到,则根据匹配到的0ption60选项对应的 IP地址或IP地址段,分配相应IP地址段的IP地址;若未匹配到,则从所述至少2个IP地址段中选择1个地址段,分配该IP地址段的IP地址,并在接收到客户端接受IP地址的确认报文后,记录该0ption60选项,以及为该客户端分配的IP地址或该IP地址所属的IP地址段。本发明的实施例对待分配的IP地址依据一定规则进行部署,划分为多个IP地址段,能够将具有某一个或多个相同Optioneo选项的客户端划分在同一 IP地址段内,这些具有相同0ption60选项的客户端具有相同的硬件属性。通过对DHCP-DISC0VER报文中0ption60 选项的不断学习,将0ption60选项作为分配IP地址的依据,按照预先部署的策略分配IP 地址,使得IP地址的分配具有可控性及易于管理性。


图1为本发明实施例提供的DHCP地址分配流程示意图;图2为本发明实施例提供的DHCP服务器的结构示意图。
具体实施例方式下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明实施例所适用的网络架构基本与现有网络架构相同,其中包括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-DISC0VER报文,该报文中携带有0ption60选项。步骤12,DHCP服务器接收到DHCP客户端的DHCP-DISC0VER报文后,提取 DHCP-DISCOVER 报文的 0ption60 选项。步骤13,DHCP服务器将提取到的0ption60选项与其记录的0ption60选项进行匹配,若匹配到,则执行步骤14,否则,执行步骤15。具体的,DHCP服务器按照设定位置和长度,将提取到的0ption60选项中设定位置和长度的字段值,与所述DHCP服务器记录的0ption60选项中相应位置和长度的字段值进行匹配。例如,所述设定位置和长度为0ption60选项的第1个字段开始的η个字段,相应的,DHCP服务器将从DHCP-DISC0VER报文中提取到的0ption60选项的第1个字段开始提取η个字段,与该服务器所记录的0ption60选项的第1个字段开始的η个字段进行匹配。 其中,DHCP服务器记录0ption60选项的过程如下面的步骤18所述。匹配到0ption60选项是指提取到的0ption60选项中设定位置和长度的字段值, 与所述DHCP服务器记录的0ption60选项中相应位置和长度的字段值相同。步骤14,DHCP服务器根据对应于匹配到的0ption60选项所记录的IP地址或IP 地址段,为DHCP客户端分配相应IP地址段的IP地址,并执行步骤16。具体的,DHCP服务器在匹配到0ption60选项后,根据对应于该0ption60选项所记录的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-0FFER报文发送给DHCP
客户端。步骤17,客户端接收到DHCP-0FFER报文,并在确认接受分配的IP地址后,向相应 DHCP服务器返回DHCP-REQUEST报文。如果有多台DHCP服务器向DHCP客户端回应DHCP-0FFER报文,则DHCP客户端只接受第一个收到的DHCP-0FFER报文,然后以广播方式发送DHCP-REQUEST报文,该报文中包含OptionM选项(服务器标识选项),即该DHCP客户端选择的DHCP服务器的IP地址信息,通知所有的DHCP服务器,其他DHCP服务器可以重新使用曾提供的IP地址。步骤18,DHCP服务器在接收到DHCP客户端发送的DHCP-REQUEST报文后,向该客户端返回DHCP-ACK报文。该客户端收到该DHCP-ACK报文后就可以使用分配给它的IP地址等配置信息了。具体的,若步骤13中DHCP服务器将提取到的0ption60选项与其记录的0ption60 选项进行匹配时,若未匹配到0ption60选项,则在本步骤中,DHCP服务器记录步骤12中从 DHCP客户端的DHCP-DISC0VER报文中提取到的0ption60选项,并对应记录步骤15中为该 DHCP客户端分配的IP地址或该IP地址所属的IP地址段。具体的,DHCP服务器可以通过建立列表的方式对从DHCP-DISC0VER报文中提取的0ption60选项进行存储,该列表用于记录0ption60选项以及对应分配的IP地址或分配的IP地址所属的IP地址段。该列表作为DHCP服务器为客户端分配IP地址的依据,在 DHCP服务器下次提取到与该列表中的0ption60选项相同的0ption60选项时,就可以依据该0ption60选项所对应的IP地址段或IP地址,为相应客户端分配相同IP地址段的IP地址了。该列表建立的过程即为0ption60选项的学习过程。除了前述通过DHCP服务器获取0ption60选项实现学习过程之外,还可以由管理员获取0ption60选项,获知该0ption60 选项中携带的DHCP客户端的硬件属性信息后,依据分配策略为具有相同硬件属性的不同 DHCP客户端分配同一地址段的IP地址,并将该0ption60选项及其对应的IP地址或地址段存储于该列表中,从而实现该学习过程。通过该学习过程,DHCP服务器可以收集并记录不同客户端的硬件属性信息,并在为客户端分配IP地址时以此为依据进行分配,这样,具有相同硬件属性的客户端会被分配相同IP地址段的地址,使得IP地址的分配具有可控性及易于管理性。上述流程的步骤12中,若DHCP服务器从DHCP-DISC0VER报文中提取出的 0ption60选项的数量大于1,则丢弃所述DHCP-DISC0VER报文,结束本次分配流程。若DHCP 服务器未从接收到的DHCP-DISC0VER报文中提取出0ption60选项,则采用现有方式(即无需参考0ption60选项的方式)为所述客户端分配IP地址,或者,从所述至少2个IP地址段中选择1个地址段,为所述DHCP客户端分配该IP地址段的IP地址。考虑到DHCP服务器所记录的0ption60选项长时间未匹配到,则表明对应的硬件设备可能不再使用,该记录则成为无效记录,同时无效记录如果较多也会占用DHCP服务器存储资源,以及降低DHCP服务器匹配操作的效率,因此,本发明实施例中,若DHCP服务器记录的0ption60选项以及对应记录的IP地址或IP地址段,在设定长时间内没有被匹配到, 则DHCP服务器删除该0ption60选项,以及对应的IP地址或IP地址段。基于相同或相似的构思,本发明实施例还提供一种DHCP服务器,如图2所示,为本发明实施例提供的DHCP服务器的结构示意图,所述DHCP服务器上存储有至少2个待分配 IP地址的地址段;该DHCP服务器包括控制模块21、提取模块22、匹配模块23、地址分配模块对、学习模块25和存储模块沈,其中控制模块21,用于指示匹配模块23将提取模块22提取到的0ption60选项与存储模块26存储的0ption60选项进行匹配,指示地址分配模块M根据匹配结果进行地址分配,并在匹配模块23未匹配到0ption60选项的情况下,在接收到DHCP客户端接受IP地址的确认报文后,指示学习模块25记录0ption60选项以及对应的IP地址或该IP地址所属的IP地址段;提取模块22,用于在接收到DHCP客户端的DHCP-DISC0VER报文后,提取 DHCP-DISCOVER 报文的 0ption60 选项;匹配模块23,用于根据控制模块21的指示,将提取模块22提取到的0ption60选项与存储模块26存储的0ption60选项进行匹配;地址分配模块对,用于根据控制模块21的指示,在匹配模块23匹配到0ption60 选项时,根据存储模块26中对应于匹配到的0ption60选项所记录的IP地址或IP地址段, 为DHCP客户端分配相应IP地址段的IP地址;在未匹配到0ption60选项时,从所述至少2 个IP地址段中选择1个地址段,为DHCP客户端分配该IP地址段的IP地址;学习模块25,用于根据控制模块21的指示,在接收到DHCP客户端接受IP地址的确认报文后,记录从DHCP客户端的DHCP-DISC0VER报文中提取到的0ption60选项,并对应记录为该DHCP客户端分配的IP地址或该IP地址所属的IP地址段;存储模块沈,用于存储学习模块25记录的0ption60选项以及对应的IP地址或该 IP地址所属的IP地址段。具体的,匹配模块23具体用于,将提取到的0ption60选项中设定位置和长度的字段值,与DHCP服务器记录的0ption60选项中相应位置和长度的字段值进行匹配;匹配到0ption60选项是指提取到的0ption60选项中设定位置和长度的字段值, 与DHCP服务器记录的0ption60选项中相应位置和长度的字段值相同。具体的,地址分配模块M还用于,在提取模块22从接收到的DHCP-DISC0VER报文中提取的0ption60选项数量大于1时,丢弃所述DHCP-DISC0VER报文;或/和在提取模块22从接收到的DHCP-DISC0VER报文中提取出0ption60选项时,从所述至少2个IP地址段中选择1个地址段,为客户端分配该地址段的IP地址。本发明实施例提供的DHCP服务器还包括老化模块27,用于在存储模块36中存储的0ption60选项,以及对应记录的IP地址或IP地址段,在设定长时间内没有被匹配到时,删除该0ption60选项,以及对应的IP地址或IP地址段。本发明的上述实施例中,DHCP服务器预先存储有多个待分配的IP地址段,在接收到客户端发送的DHCP-DISC0VER报文后,提取报文中携带的0ption60选项,并将其与存储于DHCP服务器上的0ption60选项匹配,若匹配到,则根据匹配到的0ption60选项对应的 IP地址或IP地址段,分配相应IP地址段的IP地址;若未匹配到,则从所述至少2个IP地址段中选择1个地址段,分配该IP地址段的IP地址,并在接收到客户端接受IP地址的确认报文后,记录该0ption60选项,以及为该客户端分配的IP地址或该IP地址所属的IP地址段。本发明的实施例对待分配的IP地址依据一定规则进行部署,划分为多个IP地址段,能够将具有某一个或多个相同Optioneo选项的客户端划分在同一 IP地址段内,这些具有相同0ption60选项的客户端具有相同的硬件属性。通过对DHCP-DISC0VER报文中0ption60 选项的不断学习,将0ption60选项作为分配IP地址的依据,按照预先部署的策略分配IP 地址,使得IP地址的分配具有可控性及易于管理性。本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
权利要求
1.一种动态主机配置协议DHCP地址分配方法,其特征在于,DHCP服务器上存储有至少 2个待分配IP地址的地址段;所述DHCP服务器接收到DHCP客户端的DHCP请求报文后,提取所述请求报文的 0ption60 选项;所述DHCP服务器将提取到的0ption60选项与其记录的0ption60选项进行匹配;若匹配到0ption60选项,则根据对应于匹配到的0ption60选项所记录的IP地址或IP 地址段,为所述DHCP客户端分配相应IP地址段的IP地址;若未匹配到0ption60选项,则从所述至少2个IP地址段中选择1个地址段,为所述 DHCP客户端分配该IP地址段的IP地址,并在接收到所述DHCP客户端接受IP地址的确认报文后,记录从所述DHCP客户端的DHCP请求报文中提取到的0ption60选项,并对应记录为该DHCP客户端分配的IP地址或该IP地址所属的IP地址段。
2.如权利要求1所述的方法,其特征在于,所述将提取到的0ption60选项与其记录的 OptionBO选项进行匹配,包括按照设定位置和长度,将提取到的0ption60选项中设定位置和长度的字段值,与所述DHCP服务器记录的0ption60选项中相应位置和长度的字段值进行匹配;所述匹配到0ption60选项是指提取到的0ption60选项中设定位置和长度的字段值, 与所述DHCP服务器记录的0ption60选项中相应位置和长度的字段值相同。
3.如权利要求1所述的方法,其特征在于,该方法还包括若所述DHCP服务器记录的0ption60选项,以及对应记录的IP地址或IP地址段,在设定长时间内没有被匹配到,则所述DHCP服务器删除该0ption60选项,以及对应的IP地址或IP地址段。
4.如权利要求1所述的方法,其特征在于,所述DHCP服务器将提取到的0ption60选项与其记录的0ption60选项进行匹配之前还包括当所述DHCP服务器从接收到的DHCP请求报文中提取的0ption60选项数量大于1时, 丢弃所述DHCP请求报文;或/和当所述DHCP服务器未从接收到的DHCP请求报文中提取出0ption60选项时,从所述至少2个IP地址段中选择1个地址段,为所述客户端分配该地址段的IP地址。
5.如权利要求1-4任一项所述的方法,其特征在于,所述请求报文的0ption60选项携带DHCP客户端的硬件信息。
6.一种DHCP服务器,其特征在于,所述DHCP服务器上存储有至少2个待分配IP地址的地址段;该DHCP服务器包括控制模块,提取模块、匹配模块、地址分配模块、学习模块和存储模块,其中提取模块,用于在接收到DHCP客户端的DHCP请求报文后,提取所述请求报文的 0ption60 选项;控制模块,用于指示所述匹配模块将所述提取模块提取到的0ption60选项与所述存储模块存储的0ption60选项进行匹配,指示所述地址分配模块根据匹配结果进行地址分配,并在所述匹配模块未匹配到OptioneO选项的情况下,在接收到DHCP客户端接受IP地址的确认报文后,指示所述学习模块记录0ption60选项以及对应的IP地址或该IP地址所属的IP地址段;匹配模块,用于根据所述控制模块的指示,将所述提取模块提取到的0ption60选项与所述存储模块存储的0ption60选项进行匹配;地址分配模块,用于根据所述控制模块的指示,在所述匹配模块匹配到0ption60选项时,根据所述存储模块中对应于匹配到的0ption60选项所记录的IP地址或IP地址段,为所述DHCP客户端分配相应IP地址段的IP地址;在未匹配到0ption60选项时,从所述至少 2个IP地址段中选择1个地址段,为所述DHCP客户端分配该IP地址段的IP地址;学习模块,用于根据所述控制模块的指示,在接收到所述DHCP客户端接受IP地址的确认报文后,记录从所述DHCP客户端的DHCP请求报文中提取到的0ption60选项,并对应记录为该DHCP客户端分配的IP地址或该IP地址所属的IP地址段;存储模块,用于存储所述学习模块记录的0ption60选项以及对应的IP地址或该IP地址所属的IP地址段。
7.如权利要求6所述的DHCP服务器,其特征在于,所述匹配模块具体用于,将提取到的 OptionBO选项中设定位置和长度的字段值,与所述DHCP服务器记录的0ption60选项中相应位置和长度的字段值进行匹配;所述匹配到0ption60选项是指提取到的0ption60选项中设定位置和长度的字段值, 与所述DHCP服务器记录的0ption60选项中相应位置和长度的字段值相同。
8.如权利要求6所述的DHCP服务器,其特征在于,还包括老化模块,用于在所述存储模块中存储的0ption60选项以及对应记录的IP地址或IP 地址段,在设定长时间内没有被匹配到时,删除该0ption60选项,以及对应的IP地址或IP 地址段。
9.如权利要求6所述的DHCP服务器,其特征在于,所述地址分配模块还用于,在所述提取模块从接收到的DHCP请求报文中提取的0ption60选项数量大于1时,丢弃所述DHCP 请求报文;或/和在所述提取模块未从接收到的DHCP请求报文中提取出0ption60选项时,从所述至少 2个IP地址段中选择1个地址段,为所述客户端分配该地址段的IP地址。
10.如权利要求6-9任一项所述的DHCP服务器,其特征在于,所述请求报文的 OptionBO选项携带DHCP客户端的硬件信息。
全文摘要
一种DHCP地址分配方法及DHCP服务器,DHCP服务器上存储有至少2个待分配IP地址的地址段;DHCP服务器从DHCP客户端发送请求报文中提取Option60选项,并将该Option60选项与其记录的Option60选项进行匹配;若匹配到,则根据对应于匹配到的Option60选项所记录的IP地址或IP地址段,为客户端分配相应IP地址段的IP地址;若未匹配到,从所述至少2个IP地址段中选择1个地址段,为客户端分配该IP地址段的IP地址,并在接收到客户端接受IP地址的确认报文后,记录所述提取到的Option60选项,并对应记录为该客户端分配的IP地址或该IP地址所属的IP地址段。
文档编号H04L29/12GK102394948SQ20111034505
公开日2012年3月28日 申请日期2011年11月4日 优先权日2011年11月4日
发明者李宏伟 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1