CN102244690B - 动态主机配置协议地址分配方法、系统、客户端及服务器 - Google Patents
动态主机配置协议地址分配方法、系统、客户端及服务器 Download PDFInfo
- Publication number
- CN102244690B CN102244690B CN201110210524.XA CN201110210524A CN102244690B CN 102244690 B CN102244690 B CN 102244690B CN 201110210524 A CN201110210524 A CN 201110210524A CN 102244690 B CN102244690 B CN 102244690B
- Authority
- CN
- China
- Prior art keywords
- dhcp
- configuration protocol
- host configuration
- dynamic host
- protocol server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明提供一种动态主机配置协议地址分配方法、系统、客户端及服务器。方法包括:接收到DHCP客户端发送的DHCP发现报文的第一DHCP服务器将网络中所有DHCP服务器的接收到DHCP发现报文的三层接口的地址封装在DHCP响应报文中,并将DHCP响应报文发送给DHCP客户端;DHCP客户端根据DHCP响应报文中各个DHCP服务器的三层接口的地址,向各个DHCP服务器发送DHCP请求报文;DHCP客户端根据由各个DHCP服务器中的第二DHCP服务器返回的DHCP确认报文,确定分配到地址信息。本发明技术方案提高了DHCP服务器热备份环境下DHCP客户端获得IP地址的速率,提高了IP地址的分配效率。
Description
技术领域
本发明涉及网络通信技术,尤其涉及一种动态主机配置协议地址分配方法、系统、客户端及服务器。
背景技术
动态主机配置协议(Dynamic Host Configuration Protocol;简称为:DHCP)是一种采用客户端和服务器的运行机制,是一种简化主机网际协议(Internet Protocol;简称为:IP)地址配置管理的传输控制协议/因特网互联协议(Transmission Control Protocol/Internet Protocol;简称为:TCP/IP)标准。DHCP分配地址的过程主要包括:DHCP客户端向DHCP服务器发送DHCP发现(Discover)报文申请IP地址;DHCP服务器向DHCP客户端分配IP地址。其中,当DHCP客户端与DHCP服务器在同一局域网内时,DHCP客户端直接将DHCP发现报文发送给DHCP服务器;DHCP服务器识别该DHCP发现报文来自哪个三层接口,然后根据这个三层接口的网段给DHCP客户端分配IP地址。当DHCP客户端与DHCP服务器不在同一局域网内时,DHCP客户端的DHCP发现报文由DHCP中继器转发给DHCP服务器;在转发过程中,DHCP中继器将本地网关(也就是接收DHCP发现报文的三层接口)的地址添加在DHCP发现报文中发送给DHCP服务器,DHCP服务器根据DHCP发现报文中携带的网关地址给DHCP客户端分配IP地址。
在上述DHCP地址分配过程中,整个网络只有一个DHCP服务器存在,容易出现单点故障。例如:当DHCP服务器断电或其他原因导致网络故障时,DHCP服务器就无法再为网络中的DHCP客户端分配IP地址。为解决该问题,现有技术提出了在网络内配置两个或两个以上DHCP服务器,实现DHCP服务器的热备份或冗余备份的方案。
在配置两个以上DHCP服务器的网络环境中,DHCP客户端发出DHCP发现报文以申请IP地址的消息后,等待DHCP服务器回应的DHCP响应(Offer)报文。通常DHCP客户端是以最早收到的DHCP响应报文中的DHCP服务器为准,向这个DHCP服务器发送DHCP请求(Request)报文进一步申请该DHCP服务器提供的IP地址。在这种方案中,因为两个DHCP服务器之间并没有实际交互过程,缺少DHCP服务器之间的协作能力,很容易导致分配地址上存在冲突问题,为解决该问题需要外加冲突检测机制,而通常网络内出现冲突检测后的排查手段比较少,给网络管理员的定位问题带来很大的难度。因此,目前更为常用的是双机热备份方案。
在配置两个DHCP服务器的网络环境中,DHCP客户端发出DHCP发现报文以申请IP地址的消息后,等待DHCP服务器回应的DHCP响应报文。两个DHCP服务器中处于主机状态的DHCP服务器以单播方式向DHCP客户端发送DHCP响应报文。DHCP客户端向处于主机状态的DHCP服务器发送DHCP请求报文,正式向处于主机状态的DHCP服务器请求分配已经提供的IP地址。处于主机状态的DHCP服务器向DHCP客户端发送DHCP确认报文,确认DHCP客户端的请求。如果此时处于主机状态的DHCP服务器发生故障,处于从机状态的DHCP服务器会接替原来的DHCP服务器工作,但是由于DHCP请求报文中携带的是原DHCP服务器的地址,故由从机状态变为主机状态的DHCP服务器不会响应DHCP请求报文,只能在DHCP客户端因超时重新发送DHCP发现报文时,由从机状态变为主机状态的DHCP服务器才会为其分配IP地址。
由上述分析可见,在配置双机热备份的网络中,如果在DHCP客户端申请IP地址的过程中发生DHCP服务器的切换,切换后的DHCP服务器只能在DHCP客户端重新发送DHCP发现报文后才能为其分配IP地址,IP地址的分配效率较低。
发明内容
本发明提供一种动态主机配置协议地址分配方法、系统、客户端及服务器,用以提高DHCP服务器热备份的环境下IP地址分配的效率。
本发明提供一种动态主机配置协议DHCP地址分配方法,包括:
接收到DHCP客户端发送的DHCP发现报文的第一DHCP服务器将网络中所有DHCP服务器的接收到所述DHCP发现报文的三层接口的地址封装在DHCP响应报文中,并将所述DHCP响应报文发送给所述DHCP客户端,所述DHCP响应报文包括预分配给所述DHCP客户端的地址信息;
所述DHCP客户端根据所述DHCP响应报文中各个DHCP服务器的三层接口的地址,向所述各个DHCP服务器发送DHCP请求报文,所述DHCP请求报文包括所述地址信息;
所述DHCP客户端根据由所述各个DHCP服务器中的第二DHCP服务器返回的DHCP确认报文,确定分配到所述地址信息。
本发明提供一种动态主机配置协议DHCP客户端,包括:
响应报文接收模块,用于接收第一DHCP服务器根据所述DHCP客户端的DHCP发现报文发送的DHCP响应报文,所述DHCP响应报文包括网络中所有DHCP服务器的接收到所述DHCP发现报文的三层接口的地址和所述第一DHCP服务器预分配给所述DHCP客户端的地址信息;
请求报文发送模块,用于根据所述DHCP响应报文中各个DHCP服务器的三层接口的地址,向所述各个DHCP服务器发送DHCP请求报文,所述DHCP请求报文包括所述地址信息;
接收确认模块,用于接收所述各个DHCP服务器中第二DHCP服务器返回的DHCP确认报文,并根据所述DHCP确认报文确定分配到所述地址信息。
本发明提供一种动态主机配置协议DHCP服务器,包括:
发现报文接收模块,用于接收DHCP客户端发送的DHCP发现报文;
提供报文响应报文发送模块,用于根据所述DHCP发现报文,将网络中所有DHCP服务器的接收到所述DHCP发现报文的三层接口的地址封装在DHCP响应报文中,并将所述DHCP响应报文发送给所述DHCP客户端,所述DHCP响应报文包括预分配给所述DHCP客户端的地址信息;
请求报文接收模块,用于接收所述DHCP客户端根据所述DHCP响应报文中各个DHCP服务器的三层接口的地址,生成并发送的DHCP请求报文,所述DHCP请求报文包括所述地址信息;
确认报文发送模块,用于根据接收到的所述DHCP请求报文,向所述DHCP客户端发送DHCP确认报文,以使所述DHCP客户端根据所述DHCP请求报文确认分配到所述地址信息。
本发明提供一种动态主机配置协议DHCP地址分配系统,包括:DHCP客户端和多个DHCP服务器;
所述DHCP客户端包括:
提供报文响应报文接收模块,用于接收所述多个DHCP服务器中第一DHCP服务器根据所述DHCP客户端的DHCP发现报文发送的DHCP响应报文,所述DHCP响应报文包括所述多个DHCP服务器的接收到所述DHCP发现报文的三层接口的地址和所述第一DHCP服务器预分配给所述DHCP客户端的地址信息;
请求报文发送模块,用于根据所述DHCP响应报文中多个DHCP服务器的三层接口的地址,向所述多个DHCP服务器发送DHCP请求报文,所述DHCP请求报文包括所述地址信息;
接收确认模块,用于接收所述多个DHCP服务器中第二DHCP服务器返回的DHCP确认报文,并根据所述DHCP确认报文确定分配到所述地址信息;
每个所述DHCP服务器包括:
发现报文接收模块,用于接收所述DHCP客户端发送的DHCP发现报文;
提供报文响应报文发送模块,用于根据所述DHCP发现报文,将所述多个DHCP服务器的接收到所述DHCP发现报文的三层接口的地址封装在DHCP响应报文中,并将所述DHCP响应报文发送给所述DHCP客户端,所述DHCP响应报文包括预分配给所述DHCP客户端的地址信息;
请求报文接收模块,用于接收所述DHCP客户端根据所述DHCP响应报文中多个DHCP服务器的三层接口的地址,生成并发送的DHCP请求报文,所述DHCP请求报文包括所述地址信息;
确认报文发送模块,用于根据接收到的所述DHCP请求报文,向所述DHCP客户端发送DHCP确认报文,以使所述DHCP客户端根据所述DHCP请求报文确认分配到所述地址信息。
本发明的动态主机配置协议地址分配方法、系统、客户端及服务器,第一DHCP服务器在接收到DHCP客户端的DHCP发现报文后,将网络中所有DHCP服务器的三层接口地址封装在DHCP响应报文中提供给DHCP客户端,DHCP客户端据此向所有DHCP服务器发送DHCP请求报文,使得各个DHCP服务器都能够接收DHCP请求报文,从而使得其他DHCP服务器在第一DHCP服务器发生故障引起DHCP服务器切换时能够及时向DHCP客户端提供DHCP确认报文,提高了DHCP客户端获得IP地址的速率,提高了IP地址的分配效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的DHCP地址分配方法的流程图;
图2A为本发明一实施例提供的在多机热备份环境下DHCP地址分配方法的流程图;
图2B为本发明另一实施例提供的在多机热备份环境下DHCP地址分配方法的流程图;
图3为本发明一实施例提供的DHCP客户端的结构示意图;
图4为本发明另一实施例提供的DHCP客户端的结构示意图;
图5为本发明一实施例提供的DHCP服务器的结构示意图;
图6为本发明另一实施例提供的DHCP服务器的结构示意图;
图7为本发明一实施例提供的DHCP地址分配系统的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明一实施例提供的DHCP地址分配方法的流程图。如图1所示,本实施例的方法包括:
步骤101、DHCP客户端向网络中的DHCP服务器发送DHCP发现报文,以申请IP地址。
通常DHCP客户端开始申请IP地址时都会以广播方式发送一个DHCP发现报文来表示要申请IP地址、以及网关地址等网络相关信息。当DHCP客户端与DHCP服务器在同一局域网内时,DHCP客户端直接向DHCP服务器发送DHCP发现报文。当DHCP客户端与DHCP服务器不在同一局域网内时,DHCP客户端与DHCP服务器之间设置有DHCP中继器,DHCP中继器负责转发DHCP客户端与DHCP服务器之间的各种报文。
步骤102、网络中的第一DHCP服务器接收DHCP客户端发送的DHCP发现报文。
对于DHCP客户端与DHCP服务器在同一局域网内的情况,网络中的DHCP服务器会从本地相应三层接口(即与DHCP客户端连接的三层接口)接收到DHCP发现报文。
对于DHCP客户端与DHCP服务器不在同一局域网内的情况,DHCP客户端的DHCP发现报文经DHCP中继器转发给DHCP服务器。其中,DHCP中继器预先开启了中继功能,并且知道所连接的DHCP服务器。当DHCP中继器的三层接口接收到DHCP发现报文,将DHCP中继器上接收DHCP发现报文的三层接口的地址添加到DHCP发现报文的中继代理IP地址(relay agentip address;简称为:giaddr)字段中(即在DHCP发现报文中封装网关地址),然后将DHCP发现报文发送给DHCP服务器。
当网络中配置多个DHCP服务器实现多机热备份时,各DHCP服务器接收DHCP发现报文并判断自己是否处于主机状态,如果不处于主机状态,则丢弃DHCP报文,也就是说只有处于主机状态的DHCP服务器才真正接收DHCP发现报文并进行后续处理,即所述第一DHCP服务器是指处于主机状态的DHCP服务器。其中,在多个DHCP服务器中,同一时间只有一个DHCP服务器处于主机状态,其他DHCP服务器处于从机状态。其中“多个”是指两个或两个以上。当配置两个DHCP服务器时,可以实现双机热备份,但并不限于此。当配置多个DHCP服务器时,各DHCP服务器采用同双机热备中的处理方式,例如选举处于主机状态的DHCP服务器、进行信息库的同步等。
步骤103、第一DHCP服务器将网络中所有DHCP服务器的接收到DHCP发现报文的三层接口的地址封装在DHCP响应报文中,并将DHCP响应报文发送给DHCP客户端。
在本实施例中,网络中配置有多个DHCP服务器实现多机热备份,并且每个DHCP服务器上预先配置了网络中其他DHCP服务器的用于进行DHCP地址分配的三层接口的地址信息。在本发明各实施例中,为便于描述将各DHCP服务器的接收到DHCP发现报文或DHCP请求报文的三层接口(也就是进行DHCP地址分配的三层接口)称之为DHCP服务器的三层接口。其中,对于同时部署虚拟路由器冗余协议(Virtual Router Redundancy Protocol;简称为:VRRP)的DHCP服务器来说,如果VRRP的虚地址为DHCP服务器进行地址分配时所使用的三层接口的地址,则将VRRP的虚地址对应的接口也称为DHCP服务器的三层接口,并且该VRRP的虚地址也会被封装在DHCP响应报文中提供给DHCP客户端。
在现有技术中,第一DHCP服务器仅将其三层接口的地址封装在DHCP响应报文的服务器IP地址(server ip address;简称为:siaddr)字段中提供给DHCP客户端。在本实施例中,第一DHCP服务器同时将网络中所有DHCP服务器的三层接口的地址封装在DHCP响应报文中提供给DHCP客户端。由于DHCP报文允许进行选项(Option)字段扩展,并且在已经提供的多个Option字段中也存在用于封装DHCP服务器标识(ID)的Option字段,例如第54号选项(即Option 54)字段,故本实施例的第一DHCP服务器可以通过新扩展的Option字段将所有DHCP服务器的三层接口的地址提供给DHCP客户端,或者对已有的Option字段(例如Option 54)进行扩展,通过扩展后的Option 54字段将所有DHCP服务器的三层接口地址提供给DHCP客户端,而不再使用siaddr字段。另外,在DHCP响应报文中还包括预分配给DHCP客户端的IP地址、域名信息以及网关地址等网络相关信息。
其中,对于DHCP客户端与DHCP服务器在同一局域网内的情况,第一DHCP服务器直接将DHCP响应报文发送给DHCP客户端。对于DHCP客户端与DHCP服务器不在同一局域网内的情况,第一DHCP服务器会通过DHCP中继器将DHCP响应报文发送给DHCP客户端。
步骤104、DHCP客户端根据DHCP响应报文中各个DHCP服务器的三层接口的地址,向各个DHCP服务器发送DHCP请求报文。
在本实施例中,DHCP客户端根据DHCP响应报文中各个DHCP服务器的三层接口的地址,向各个DHCP服务器发送DHCP请求报文,而不再像现有技术那样仅向第一DHCP服务器发送DHCP请求报文。具体的,DHCP客户端可以以广播方式向各个DHCP服务器发送DHCP请求报文,也可以以单播方式向各个DHCP服务器发送DHCP请求报文;视具体发送方式的不同,DHCP请求报文中携带DHCP服务器的三层接口地址的方式也不同。另外,在DHCP请求报文中还包括第一DHCP服务器预分配给DHCP客户端的地址信息,例如IP地址、以及网关地址等信息,这些地址信息被封装在DHCP请求报文的第50号选项(Option 50)字段中。
步骤105、DHCP客户端根据由各个DHCP服务器中的第二DHCP服务器返回的DHCP确认报文,确定分配到地址信息。
当DHCP客户端向各个DHCP服务器发送DHCP请求报文后,各个DHCP请求报文会接收到DHCP请求报文,并在具有发送能力的情况下向DHCP客户端发送DHCP确认报文。
其中,在多机热备份情况下,多个DHCP服务器接收到DHCP请求报文后,会首先判断自己是否处于主机状态。当判断结果为自己目前处于主机状态,并在通过一定策略确定出可以将DHCP请求报文的Option 50字段中的地址信息分配给DHCP客户端时,处于主机状态的该DHCP服务器向DHCP客户端发送DHCP确认报文。也就是说,在多机热备份的情况下,本实施例的第二DHCP服务器是指处于主机状态的DHCP服务器;其中,如果第一DHCP服务器在该DHCP地址分配过程中未发生故障,则第二DHCP服务器与第一DHCP服务器相同;如果第一DHCP服务器在该DHCP地址分配过程中发生了故障,则原来处于从机状态的另一个DHCP服务器根据其与第一DHCP服务器之间的心跳检测机制会在毫秒级时间内监听到第一DHCP服务器发生故障,同时会切换为主机状态,则此时第二DHCP服务器是与第一DHCP服务器不同的另一个DHCP服务器。
当DHCP客户端接收到DHCP确认报文时,可以确定DHCP服务器已经将DHCP请求报文的Option 50字段中的地址信息分配给了自己,即确定分配到了DHCP请求报文的Option 50字段中的地址信息。
本实施例的DHCP地址分配方法,在网络中存在多个DHCP服务器时,首先向DHCP客户端提供服务的DHCP服务器在向DHCP客户端提供预分配的地址信息时,将网络中所有DHCP服务器的三层接口的地址提供给DHCP客户端,使得DHCP客户端不再像现有技术那样仅向首先提供服务的DHCP服务器发送DHCP请求报文,而是同时向各个DHCP服务器发送DHCP请求报文,各个DHCP服务器均接收到DHCP客户端的DHCP请求报文,当首先提供服务的DHCP服务器故障时能够有其他DHCP服务器向DHCP客户端返回DHCP确认报文,使得DHCP客户端在一个DHCP地址分配过程中分配到地址信息,提高了DHCP客户端分配到IP地址的速率,提高了IP地址的分配效率。
图2A为本发明一实施例提供的在多机热备份环境下DHCP地址分配方法的流程图。如图2A所示,本实施例的方法包括:
步骤201、DHCP客户端向网络中的DHCP服务器广播DHCP发现报文,以申请IP地址。
通常DHCP客户端开始申请IP地址时都会以广播方式发送一个DHCP发现报文,一方面用来表示要申请IP地址、网关地址等网络相关信息,另一方面用于寻找网络中能够为其提供服务的DHCP服务器。在本实施例中,能为DHCP客户端提供服务的DHCP服务器是指处于主机状态的DHCP服务器。
步骤202、网络中的多个DHCP服务器通过相应的三层接口接收DHCP发现报文,并判断是否自己处于主机状态;如果判断结果为是,则执行步骤203;如果判断结果为否,则执行步骤210。
在实际部署中,本实施例通过多个支持三层路由功能的设备作为多机热备环境中的多个DHCP服务器。多个DHCP服务器通过协商建立热备份关系,其中参与热备份的信息有DHCP服务器的数据库信息。假设互为热备份关系的多个DHCP服务器中一个DHCP服务器为网络中当前处于主机状态的DHCP服务器,其他DHCP服务器为当前网络中处于从机状态的DHCP服务器。网络正常运行时,由处于主机状态的DHCP服务器为网络内的DHCP客户端动态分配IP地址,同时形成包括地址分配的绑定关系等内容的本地数据库信息,并且实时把数据库信息同步给处于从机状态的其他DHCP服务器。当原来处于主机状态的DHCP服务器故障时,其中一个处于从机状态的DHCP服务器就会马上激活并从从机状态变为主机状态,同时依据原来处于主机状态的DHCP服务器同步过来的数据库信息为之前的DHCP客户端和新的DHCP客户端提供动态更新和分配IP地址的服务。
在具体实施过程中,多个DHCP服务器之间通过一个心跳检测机制来实现主机状态的实时监听。处于主机状态的DHCP服务器以预设频率向处于从机状态的DHCP服务器发送心跳报文,以向处于从机状态的DHCP服务器报告自己仍处于存活状态。当处于主机状态的DHCP服务器发生故障时,处于从机状态的DHCP服务器就不会接收到心跳报文,故可以发现处于主机状态的DHCP服务器发生故障,然后根据一定的策略其中一个处于从机状态的DHCP服务器会将自己的状态由从机状态切换为主机状态。通常,心跳检测机制中设置的发送心跳检测报文的周期为毫秒级,故一旦发现处于主机状态的DHCP服务器发生故障,处于从机状态的DHCP服务器可以在毫秒级内发现并将自己的状态切换为主机状态。
其中,由于DHCP发现报文是以广播方式发送的,故多个DHCP服务器此时均可以接收到,其中只有处于主机状态的DHCP服务器才对于DHCP发现报文进行处理。
步骤203、处于主机状态的DHCP服务器将网络所有DHCP服务器的三层接口的地址封装在DHCP请求报文的扩展后的Option 54字段中,并将预分配给DHCP客户端的地址信息封装在Option 50字段中。
具体的,当处于主机状态的DHCP服务器直接接收到DHCP客户端广播的DHCP发现报文时,则会依据当前接收到该DHCP发现报文的本地三层接口的IP地址所属的网段查找所有地址池,该地址池中包括动态地址信息或者管理员事先预留的地址信息。当处于主机状态的DHCP服务器通过DHCP中继器接收到单播的DHCP发现报文时,则会依据DHCP发现报文的giaddr字段中的网关地址查找所有地址池。
当找到相应可用的地址信息时,处于主机状态的DHCP服务器将找到的可用地址信息封装到DHCP响应报文的Option 50字段中,并且对Option 54字段进行扩展,然后在扩展后的Option 54字段中封装处于主机状态的DHCP服务器和所有处于从机状态的DHCP服务器的三层接口的地址作为DHCP服务器标识(ID)。每个DHCP服务器上均预先配置有其他DHCP服务器的三层接口的地址。其中,对于DHCP响应报文中的siaddr字段填充为0,以与现有协议相适应。
步骤204、处于主机状态的DHCP服务器在生成DHCP响应报文之后,将DHCP响应报文发送给DHCP客户端。
其中,处于主机状态的DHCP服务器可以将DHCP响应报文的源IP地址封装为处于主机状态的DHCP服务器的三层接口的IP地址,将DHCP响应报文的目的IP地址封装为DHCP客户端的IP地址,以单播方式将DHCP响应报文发送给DHCP客户端。另外,处于主机状态的DHCP服务器可以将DHCP响应报文的源IP地址封装为处于主机状态的DHCP服务器的三层接口的IP地址,而将DHCP响应报文的目的IP地址封装为广播地址。例如255.255.255.255,以广播方式将DHCP响应报文发送给DHCP客户端。
其中,对于处于主机状态的DHCP服务器与DHCP客户端不在同一局域网内(即有DHCP中继器)的情况,处于主机状态的DHCP服务器发送给DHCP客户端的DHCP响应报文需要经过DHCP中继器转发给DHCP客户端。对于DHCP中继器而言,其可以以单播方式将DHCP响应报文转发给DHCP客户端,也可以以广播方式将DHCP响应报文转发给DHCP客户端。
其中,无论是处于主机状态的DHCP服务器还是DHCP中继器均是应DHCP客户端的要求决定采用单播方式还是广播方式。客户端可以通过DHCP发现报文中的标记来标识是要求DHCP服务器以单播方式还是以广播方式提供DHCP响应报文。
步骤205、DHCP客户端将DHCP响应报文中各个DHCP服务器的三层接口的地址,同时封装在DHCP请求报文中扩展后的Option 54字段中,并将DHCP响应报文中的地址信息封装在DHCP请求报文中Option 50字段中。
在本实施例中,DHCP客户端具有识别和存储Option 54字段的能力。当DHCP客户端接收到DHCP响应报文时,解析获取其扩展过的Option 54字段中封装的各个DHCP服务器的三层接口的地址,然后对DHCP请求报文的Option 54字段进行扩展,并将获取的各个DHCP服务器的三层接口的地址封装在DHCP请求报文中扩展后的Option 54字段中。在本实施例中,DHCP客户端对DHCP报文中的Option 54字段进行扩展,并使用扩展后的Option 54字段携带网络中存在的DHCP服务器的三层接口的IP地址,并要求各DHCP服务器根据Option 54字段判断是否真正接收并处理DHCP请求报文。同时,DHCP客户端将DHCP响应报文中的地址信息封装在DHCP请求报文中Option 50字段中以进一步向各DHCP服务器申请该地址信息。
步骤206、DHCP客户端向各个DHCP服务器发送DHCP请求报文。
在本实施例中,DHCP客户端可以通过广播的方式或者单播轮询的方式将DHCP请求报文发送出去。而对于DHCP客户端与DHCP服务器不在同一局域网的情况,DHCP客户端发送给各个DHCP服务器的DHCP请求报文需要经过DHCP中继器转发给各个DHCP服务器。无论DHCP客户端与各DHCP服务器是在同一局域网还是不在同一局域网,当DHCP客户端以广播方式发送DHCP请求报文时,DHCP请求报文的源IP地址为DHCP客户端的IP地址,DHCP请求报文的目的IP地址为广播地址,例如:255.255.255.255;每个DHCP服务器来说均能接收到DHCP请求报文;当DHCP客户端以单播方式轮询向多个DHCP服务器发送DHCP请求报文时,DHCP请求报文的源IP地址为DHCP客户端的IP地址,DHCP请求报文的目的IP地址为轮询到的DHCP服务器的三层接口的IP地址,而每次只有被轮询到的DHCP服务器才能接收到DHCP请求报文。
步骤207、所有DHCP服务器接收DHCP请求报文,并判断接收到的DHCP请求报文中扩展后的Option 54字段中是否包括自己的三层接口的地址;如果判断结果为是,执行步骤208;如果判断结果为否,执行步骤211。
其中,如果DHCP服务器判断出DHCP请求报文中扩展后的Option 54字段中包括自己的三层接口的地址,表明DHCP客户端需要自己向其返回DHCP确认报文;如果判断出DHCP请求报文中扩展后的Option 54字段中不包括自己的三层接口地址,表明DHCP客户端不需要自己向其返回DHCP确认报文。
步骤208、DHCP服务器判断自己是否处于主机状态;如果判断结果为是,执行步骤209;如果判断结果为否,执行步骤210。
在具体实施过程中,当原来处于主机状态的DHCP服务器在该DHCP地址分配过程中未发生故障时,会判断出自己仍处于主机状态,则执行步骤209。当原来处于主机状态的DHCP服务器在该DHCP地址分配过程中发生故障时,其中一个原来处于从机状态的DHCP服务器会检测到原来处于主机状态的DHCP服务器发生故障,并会将自己的状态由从机状态切换为主机状态,则由从机状态切换为主机状态的DHCP服务器在接收到DHCP请求报文后会判断出自己处于主机状态,进而执行步骤209。
步骤209、处于主机状态的DHCP服务器通过一定机制确保DHCP请求报文的Option 50字段中的地址信息在网络内未被使用,并向DHCP客户端返回DHCP确认报文,结束此次DHCP地址分配操作。
处于主机状态的DHCP服务器可以通过一些机制来判断DHCP请求报文的Option 50字段中的DHCP客户端请求分配的地址信息是否在网络内未被使用,并在确定出未被使用时,向DHCP客户端DHCP确认报文,以确定将该地址信息出租给DHCP客户端。同时,处于主机状态的DHCP服务器会将该地址信息的绑定状态由原来的已响应(OFFEDED)状态设置为激活(ACTIVE)状态,并把该地址信息的绑定状态信息同步给处于从机状态的DHCP服务器,使得处于从机状态的DHCP服务器上的绑定状态信息能够及时与处于主机状态的DHCP服务器上的绑定状态信息一致,便于当处于从机状态的DHCP服务器切换为主机状态时,继续为已有的DHCP客户端提供地址分配服务。其中,某一地址信息的已响应状态表明DHCP服务器预出租该地址信息给某个DHCP客户端,并正在等待该DHCP客户端的再次请求确认。某一地址信息的激活状态表明DHCP服务器已经将该地址信息分配给某个DHCP客户端使用。
步骤210、处于从机状态的DHCP服务器监听处于主机状态的DHCP服务器的状态,对此次DHCP地址分配不做任何处理。
步骤211、不进行任何处理。
本实施例的DHCP地址分配方法,DHCP服务器通过扩展Option 54字段,并把处于主机状态和处于从机状态的DHCP服务器的三层接口的地址一起封装在扩展后的Option 54字段中提供给DHCP客户端,DHCP客户端又将处于主机状态和处于从机状态的DHCP服务器的三层接口的地址一起封装在DHCP请求报文的扩展过的Option 54字段实现同时向多个DHCP服务器发送DHCP请求报文的目的,可以使其中任何处于主机状态的DHCP服务器向DHCP客户端返回DHCP确认报文,使得DHCP客户端能够及时获取到IP地址。本实施例的方法采用多机热备份的方式解决或规避了单机故障问题,同时解决了DHCP服务器热备份带来的问题,更加完善实现DHCP服务器热备份机制,使得即使DHCP客户端在申请IP地址的某个阶段发生了DHCP服务器故障引发DHCP服务器切换过程时也可以在该IP地址申请过程中申请到IP地址,使得因故障发生的DHCP服务器之间的切换对DHCP客户端来说完全是透明,不影响DHCP客户端的申请IP地址的过程,提高DHCP客户端地址申请的效率,从而提高了DHCP客户端打通网络的速度,帮助DHCP客户端更快的获取接入网络所需的相关信息。
在此说明,在图2A所示实施例中,DHCP客户端与DHCP服务器之间通过对DHCP请求报文或DHCP响应报文中已经存在的Option 54字段进行扩展,并使用扩展后的Option 54字段来封装所有DHCP服务器的三层接口的地址,但并不限于此。例如:DHCP客户端和DHCP服务器还可以通过在DHCP报文中新扩展Option字段,并且利用Option字段的长度可变的优点,可以同时将多机的三层接口的地址封装在新扩展的Option字段中,即DHCP服务器将多个DHCP服务器的三层接口的地址同时封装在DHCP响应报文中新扩展的Option字段中提供给DHCP客户端;而DHCP客户端则将多个DHCP服务器的三层接口的地址同时封装在DHCP请求报文中新扩展的Option字段中提供给各DHCP服务器。
上述实施例主要是在DHCP地址分配过程中,通过DHCP报文(包括DHCP请求报文或DHCP响应报文)中的Option字段来同时携带所有DHCP服务器的三层接口的地址。
图2B为本发明另一实施例提供的在多机热备份环境下DHCP地址分配方法的流程图。如图2B所示,本实施例的方法包括:
步骤301、DHCP客户端向网络中的DHCP服务器广播DHCP发现报文,以申请IP地址。
步骤302、网络中的多个DHCP服务器通过相应的三层接口接收DHCP发现报文,并判断是否自己处于主机状态;如果判断结果为是,则执行步骤303;如果判断结果为否,则执行步骤310。
步骤303、处于主机状态的DHCP服务器将网络所有DHCP服务器的接收到DHCP发现报文的三层接口的地址封装在DHCP请求报文的扩展后的Option 54字段中,并将预分配给DHCP客户端的地址信息封装在Option 50字段中。
步骤304、处于主机状态的DHCP服务器在生成DHCP响应报文之后,将DHCP响应报文发送给DHCP客户端。
其中,上述步骤301-步骤304可参见上述步骤201-步骤204的描述,在此不再赘述。
步骤305、DHCP客户端将DHCP响应报文中每个DHCP服务器的三层接口的地址,分别封装在与每个DHCP响应报文对应的DHCP请求报文的siaddr字段中,并将DHCP响应报文中的地址信息封装在DHCP请求报文中Option 50字段中。
在本实施例中,DHCP客户端具有识别和存储Option 54字段的能力。当DHCP客户端接收到DHCP响应报文时,解析获取其扩展过的Option 54字段中封装的各个DHCP服务器的三层接口的地址。其中,DHCP请求报文中封装有处于主机状态的DHCP服务器和处于从机状态的DHCP服务器的三层接口的地址。DHCP客户端为每个DHCP服务器生成一个DHCP请求报文,并将每个DHCP服务器的三层接口的IP地址填充在DHCP请求报文的siaddr字段中,表示该DHCP请求报文的接收者。在本实施例中,使用的DHCP报文中的siaddr字段,并未使用DHCP报文中的Option 54字段,也就是说DHCP服务器根据siaddr字段确定是否真正接收DHCP请求报文。
步骤306、DHCP客户端将每个DHCP请求报文分别发送给每个DHCP服务器。
DHCP客户端以单播的方式将每个DHCP请求报文分别发送出去。其中,一个DHCP请求报文的源IP地址和目的IP地址分别为DHCP客户端的IP地址和处于主机状态的DHCP服务器的三层接口的地址;其他DHCP请求报文的源IP地址和目的IP地址分别为DHCP客户端的IP地址和其中一个处于从机状态的DHCP服务器的三层接口的地址。
步骤307、每个DHCP服务器接收相应的DHCP请求报文,并判断接收到的DHCP请求报文中siaddr字段中是否是自己的三层接口地址;如果判断结果为是,执行步骤308;如果判断为否,执行步骤311。
其中,如果DHCP请求报文的siaddr字段中封装的是自己的三层接口的地址,表明自己是该DHCP请求报文的真正接收者,故将该DHCP请求报文接收下来;反之,将DHCP请求报文丢弃。
步骤308、DHCP服务器判断自己是否处于主机状态;如果判断结果为是,执行步骤309;如果判断结果为否,执行步骤310。
步骤309、处于主机状态的DHCP服务器通过一定机制确保DHCP请求报文的Option 50字段中的地址信息在网络内未被使用,并向DHCP客户端返回DHCP确认报文,结束此次DHCP地址分配操作。
步骤310、处于从机状态的DHCP服务器监听处于主机状态的DHCP服务器的状态,对此次DHCP地址分配不做任何处理。
步骤311、不进行任何处理。
上述步骤308-步骤311的描述可参见上述步骤208-步骤211的描述,在此不再赘述。
本实施例的DHCP地址分配方法,DHCP服务器通过扩展后的Option 54字段把处于主机状态和处于从机状态的DHCP服务器的三层接口的地址一起透明封装给DHCP客户端,DHCP客户端根据DHCP响应报文中扩展后的Option 54字段中封装的三层接口的地址分别向多个DHCP服务器发送DHCP请求报文,可以使其中任何处于主机状态的DHCP服务器向DHCP客户端返回DHCP确认报文,使得DHCP客户端能够及时获取到IP地址。本实施例的方法采用多机热备份的方式解决或规避了单机故障问题,同时解决了DHCP服务器热备份带来的问题,更加完善实现DHCP服务器热备份机制,使得即使DHCP客户端在申请IP地址的某个阶段发生了DHCP服务器故障引发DHCP服务器切换过程时也可以在该IP地址申请过程中申请到IP地址,使得因故障发生的DHCP服务器之间的切换对DHCP客户端来说完全是透明,不影响DHCP客户端的申请IP地址的过程,提高DHCP客户端地址申请的效率,从而提高了DHCP客户端打通网络的速度,帮助DHCP客户端更快的获取接入网络所需的相关信息。
在此说明,本发明上述各实施例在DHCP客户端与DHCP服务器交互的过程中,DHCP服务器向DHCP客户端通告网络中所有DHCP服务器的三层接口的地址的方法不仅适用于DHCP客户端申请IP地址等相关网络信息的过程,同样适用于DHCP客户端向DHCP服务器发起的续租、停租IP地址的过程。也就是说,对于DHCP客户端要求续租而发送的DHCP续租报文、要求停止租约而发送的DHCP释放(RELEASE)报文、在发现预分配的地址信息已经被其他DHCP客户端使用后要求DHCP服务器重新分配地址信息而发送的还原(DECLINE)报文以及获取或确认其他信息而发送的DHCP通告(INFORM)报文等也可以采用本发明上述各实施例的方法来进行处理,其具体处理流程相类似,在此不再赘述。
图3为本发明一实施例提供的DHCP客户端的结构示意图。如图3所示,本实施例的DHCP客户端包括:响应报文接收模块31、请求报文发送模块32和接收确认模块33。
其中,响应报文接收模块31,与第一DHCP服务器连接,用于接收第一DHCP服务器根据DHCP客户端的DHCP发现报文发送的DHCP响应报文,所述DHCP响应报文包括网络中所有DHCP服务器的接收到DHCP发现报文的三层接口的地址和第一DHCP服务器预分配给DHCP客户端的地址信息。其中,每个DHCP服务器的三层接口是指向本实施例的DHCP客户端进行DHCP地址分配的三层接口。在具体实施过程中,DHCP客户端会向网络中的DHCP服务器发送DHCP发现报文,以申请IP地址等网络相关信息。DHCP客户端具体可以通过一发现报文发送模块来发送DHCP发现报文,在本实施例中未示出该模块。另外,发现报文发送模块可以以广播方式发送DHCP发现报文,也可以以单播方式来发送,但更为常用的是以广播方式来发送。
请求报文发送模块32,与响应报文接收模块31连接,用于根据响应报文接收模块31接收到的DHCP响应报文中各个DHCP服务器的三层接口的地址,向各个DHCP服务器发送DHCP请求报文,所述DHCP请求报文包括HDCP响应报文中携带的地址信息。
接收确认模块33,与第二DHCP服务器连接,用于接收各个DHCP服务器中第二DHCP服务器返回的DHCP确认报文,并根据DHCP确认报文确定分配到DHCP响应报文中携带的地址信息。
其中,在图3中,分别示出第一DHCP服务器和第二DHCP服务器,但并不表示两者一定不同。如果在DHCP地址分配过程中,出于主机状态的DHCP服务器发生了变化,则第二DHCP服务器与第一DHCP服务器为不同的DHCP服务器;反之,第二DHCP服务器与第一DHCP服务器为同一DHCP服务器。
本实施例的DHCP客户端的各功能模块可用于执行图1所示DHCP地址分配方法的相应流程,其具体工作原理不再赘述,详见方法实施例的描述。
本实施例的DHCP客户端,在进行IP地址申请时根据DHCP服务器通过DHCP响应报文返回的网络中所有DHCP服务器的三层接口的地址向网络中所有DHCP服务器发送DHCP请求报文,所有DHCP服务器均能接收到DHCP请求报文,当首先提供服务器的DHCP服务器(即第一DHCP服务器)故障时能够有其他DHCP服务器及时向DHCP客户端返回DHCP确认报文,使得DHCP客户端可以在一个DHCP地址分配过程中分配到地址信息,提高了DHCP客户端分配到IP地址的速率,提高了IP地址的分配效率。
图4为本发明另一实施例提供的DHCP客户端的结构示意图。本实施例基于图3所示实施例实现,如图4所示,本实施例的请求报文发送模块32的一种具体实现结构包括:第一封装单元321和第一发送单元322。
其中,第一封装单元321,与响应报文接收模块31连接,用于将DHCP响应报文中各个DHCP服务器的三层接口的地址,同时封装在DHCP请求报文的Option字段中。其中,DHCP请求报文的Option字段可以是新扩展的Option字段,也可以是扩展后的Option 54字段。具体的,第一封装单元321在DHCP请求报文中新扩展Option字段,并将DHCP响应报文中各个DHCP服务器的三层接口的地址,同时封装在DHCP请求报文中新扩展的Option字段中。或者,第一封装单元321对已有Option 54字段进行扩展,并将DHCP响应报文中各个DHCP服务器的三层接口的地址,同时封装在DHCP请求报文中扩展后的Option 54字段中。
另外,第一封装单元321还可以将DHCP响应报文中每个DHCP服务器的三层接口的地址,分别封装在与每个DHCP服务器对应的每个DHCP请求报文的siaddr字段中。也就是说,第一封装单元321根据DHCP响应报文中每个DHCP服务器的三层接口的地址,生成发送给每个DHCP服务器的DHCP请求报文,并且通过使用DHCP报文中的siaddr字段填充接收相应DHCP请求报文的DHCP服务器的IP地址。
第一发送单元322,与第一封装单元321连接,用于将DHCP请求报文发送给各个DHCP服务器。具体的,当第一封装单元321将DHCP响应报文中各个DHCP服务器的三层接口的地址,同时封装在DHCP请求报文的Option字段中时,第一发送单元322可以以单播方式轮询向各个DHCP服务器发送DHCP请求报文,或者可以以广播方式向各个DHCP服务器发送DHCP请求报文。当第一封装单元321将DHCP响应报文中每个DHCP服务器的三层接口的地址,分别封装在与每个DHCP服务器对应的每个DHCP请求报文的siaddr字段中时,第一发送单元322主要以单播方式将每个DHCP请求报文分别发送给每个DHCP服务器。
上述各功能单元可用于执行图2A或图2B所示DHCP地址分配方法中的相应流程,其具体工作原理不再赘述,详见方法实施例的描述。
其中,接收确定模块33具体用于接收所有DHCP服务器中处于主机状态的DHCP服务器返回的DHCP确认报文,并根据DHCP确认报文确定分配到所申请的地址信息。
本发明各实施例的DHCP客户端主要应用于布设多个DHCP服务器实现多机热备份的网络环境中,对于多机热备份的网络环境而言,同一时间只有一个DHCP处于主机状态,其他DHCP服务器处于从机状态,并且由处于主机状态的DHCO服务器向DHCP客户端提供地址分配服务。
本实施例的DHCP客户端,将DHCP服务器提供的处于主机状态的和处于从机状态的DHCP服务器的三层接口的地址一起封装在DHCP请求报文的Option字段或者分别封装在DHCP请求报文的siadde字段中发送给DHCP服务器,实现同时向多个DHCP服务器发送DHCP请求报文的目的,使得无论哪个DHCP服务器担任处于主机状态的DHCP服务器都能及时向DHCP客户端返回DHCP确认报文,使得DHCP客户端能够及时获取到IP地址,提高了DHCP客户端分配到IP地址的速率,提高了IP地址的分配效率。
图5为本发明一实施例提供的DHCP服务器的结构示意图。如图5所示,本实施例的DHCP服务器包括:发现报文接收模块51、响应报文发送模块52、请求报文接收模块53和确认报文发送模块54。
其中,发现报文接收模块51,与DHCP客户端连接,用于接收DHCP客户端发送的DHCP发现报文。响应报文发送模块52,与发现报文接收模块51和DHCP客户端连接,用于根据发现报文接收模块51接收到的DHCP发现报文,将网络中所有DHCP服务器的接收到DHCP发现报文的三层接口的地址封装在DHCP响应报文中,并将DHCP响应报文发送给DHCP客户端,所述DHCP响应报文包括预分配给DHCP客户端的地址信息。请求报文接收模块53,与DHCP客户端连接,用于接收DHCP客户端根据DHCP响应报文中各个DHCP服务器的三层接口的地址,生成并发送的DHCP请求报文,所述DHCP请求报文包括DHCP响应报文中携带的地址信息。确认报文发送模块54,与请求报文接收模块53和DHCP客户端连接,用于根据请求报文接收模块53接收到的DHCP请求报文,向DHCP客户端发送DHCP确认报文,以使DHCP客户端根据DHCP请求报文确认分配到地址信息。
其中,确认报文发送模块54只有在DHCP服务器处于主机状态时,才向DHCP客户端发送DHCP确认报文。换句话说,确认报文发送模块54只有在该DHCP服务器处于主机状态时,才向DHCP客户端发送DHCP确认报文。
本实施例的DHCP服务器的各功能模块可用于执行图1所示DHCP地址分配方法的流程,其具体工作原理不再赘述,详见方法实施例的流程。
本实施例的DHCP服务器可以作为实现多机热备份的多个DHCP服务器中的任何一个DHCP服务器。本实施例的DHCP服务器在处于主机状态时,接收DHCP客户端发送的DHCP发现报文,然后在向DHCP客户端提供预分配给DHCP客户端的地址信息时,将网络中所有DHCP服务器的三层接口的地址提供给DHCP客户端,使得DHCP客户端不再像现有技术那样仅向首先提供服务的DHCP服务器发送DHCP请求报文,而是同时向各个DHCP服务器发送DHCP请求报文,各个DHCP服务器均接收到DHCP客户端的DHCP请求报文,当首先提供服务的DHCP服务器故障时能够有其他DHCP服务器向DHCP客户端返回DHCP确认报文,使得DHCP客户端在一个DHCP地址分配过程中分配到地址信息,提高了DHCP客户端分配到IP地址的速率,提高了IP地址的分配效率。
图6为本发明另一实施例提供的DHCP服务器的结构示意图。本实施例基于图5所示实施例实现,如图6所示,本实施例的响应报文发送模块52的一种实现结构包括:第二封装单元521和第二发送单元522。
其中,第二封装单元521,与发现报文接收模块51连接,用于在接收到DHCP发现报文后判断DHCP服务器是否处于主机状态,并在DHCP服务器处于主机状态时将所有DHCP服务器的三层接口的地址封装在DHCP响应报文中新扩展的Option字段中或者扩展后的Option 54字段中。第二发送单元522,与第二封装单元521和DHCP客户端连接,用于将DHCP响应报文发送给DHCP客户端。其中,第二发送单元522可以以单播或广播方式将DHCP响应报文发送给DHCP客户端。
上述功能模块可用于执行图2A或图2B所示DHCP地址分配方法中的相应流程,其具体工作原理不再赘述,详见方法实施例的描述。
进一步,请求报文接收模块53的一种实现结构包括:接收单元531和判断单元532。
其中,接收单元531,与DHCP客户端连接,用于根据DHCP请求报文的Option字段接收DHCP请求报文,所述DHCP请求报文的Option字段可以为新扩展的Option字段或扩展后的Option 54字段,且新扩展的Option字段或扩展后的Option 54字段中封装有网络中所有DHCP服务器的接收到DHCP发现报文的三层接口的地址。或者,接收单元531用于根据DHCP请求报文的siaddr字段接收DHCP请求报文,所述DHCP请求报文的siaddr字段中封装有网络中所有DHCP服务器中一个DHCP服务器的接收到DHCP发现报文的三层接口的地址。具体的,接收单元531具体根据DHCP请求报文的哪个字段接收DHCP请求报文,视DHCP客户端发送DHCP请求报文的方式而定。判断单元532,用于判断该DHCP服务器是否处于主机状态,并在判断结果为是时触发确认报文发送模块54执行根据请求报文接收模块53接收到的DHCP请求报文,向DHCP客户端发送DHCP确认报文,以使DHCP客户端根据DHCP请求报文确认分配到地址信息的操作。
其中,上述各功能单元可用于执行图2A或图2B所示DHCP地址分配方法中的相应流程,其具体工作原理不再赘述,详见方法实施例的描述。
本实施例的DHCP服务器作为多机热备份中的DHCP服务器,并与DHCP客户端相配合,在处于主机状态时接收DHCP客户端发送的DHCP发现报文,并通过返回给DHCP客户端的DHCP响应报文中携带网络中各个DHCP服务器的三层接口的地址,使得DHCP客户端可以据此向所有DHCP服务器发送DHCP请求报文,进而使得处于主机状态的DHCP服务器的切换对DHCP客户端来说是透明的,即使在原来处于主机状态的DHCP服务器发生故障时也能有其他DHCP服务器及时向DHCP客户端返回DHCP确认报文,使DHCP客户端及时获得IP地址,提高了DHCP客户端分配到IP地址的速率,提高了IP地址的分配效率。
图7为本发明一实施例提供的DHCP地址分配系统的结构示意图。如图7所示,本实施例的系统包括:DHCP客户端71和多个DHCP服务器72。在图7以2个DHCP服务器72为例。
其中,DHCP客户端71包括:响应报文接收模块、请求报文发送模块和接收确认模块。具体的,响应报文接收模块,用于接收多个DHCP服务器72中第一DHCP服务器根据DHCP客户端71的DHCP发现报文发送的DHCP响应报文,所述DHCP响应报文包括多个DHCP服务器72的接收到DHCP发现报文的三层接口的地址和第一DHCP服务器预分配给DHCP客户端的地址信息。请求报文发送模块,用于根据DHCP响应报文中多个DHCP服务器72的三层接口的地址,向多个DHCP服务器72发送DHCP请求报文,所述DHCP请求报文包括地址信息。接收确认模块,用于接收多个DHCP服务器72中第二DHCP服务器返回的DHCP确认报文,并根据DHCP确认报文确定分配到地址信息。
其中,DHCP客户端71的具体实现结构可参见图3或图4所示,在本实施例中不做详细图示。
每个DHCP服务器72包括:发现报文接收模块、响应报文发送模块、请求报文接收模块和确认报文发送模块。具体的,发现报文接收模块,用于接收DHCP客户端71发送的DHCP发现报文。响应报文发送模块,用于根据DHCP发现报文,将多个DHCP服务器72的接收到DHCP发现报文的三层接口的地址封装在DHCP响应报文中,并将DHCP响应报文发送给DHCP客户端71,所述DHCP响应报文包括预分配给DHCP客户端71的地址信息。请求报文接收模块,用于接收DHCP客户端71根据DHCP响应报文中多个DHCP服务器72的三层接口的地址,生成并发送的DHCP请求报文,所述DHCP请求报文包括地址信息。确认报文发送模块,用于根据接收到的DHCP请求报文,向DHCP客户端71发送DHCP确认报文,以使DHCP客户端71根据DHCP请求报文确认分配到地址信息。
本实施例的DHCP地址分配系统,可用于执行图1、图2A或图2B所示DHCP地址分配方法的流程,其具体工作原理不再赘述,详见方法实施例的描述。
本实施例的DHCP地址分配系统,在系统中存在多个DHCP服务器时,首先向DHCP客户端提供服务的DHCP服务器(即第一DHCP服务器)在向DHCP客户端提供预分配给DHCP客户端的地址信息时,将系统中所有DHCP服务器的三层接口的地址提供给DHCP客户端,使得DHCP客户端不再像现有技术那样仅向首先提供服务的DHCP服务器发送DHCP请求报文,而是同时向各个DHCP服务器发送DHCP请求报文,各个DHCP服务器均接收到DHCP客户端的DHCP请求报文,当首先提供服务的DHCP服务器故障时能够有其他DHCP服务器向DHCP客户端返回DHCP确认报文,使得DHCP客户端在一个DHCP地址分配过程中分配到地址信息,提高了DHCP客户端分配到IP地址的速率,提高了IP地址的分配效率。进一步,本实施例的系统采用多机热备份的方式解决或规避了单机故障问题,同时解决了DHCP服务器热备份带来的问题,更加完善实现DHCP服务器热备份机制,使得即使DHCP客户端在申请IP地址的某个阶段发生了DHCP服务器故障引发DHCP服务器切换过程时也可以在该IP地址申请过程中申请到IP地址,使得因故障发生的DHCP服务器之间的切换对DHCP客户端来说完全是透明,不影响DHCP客户端的申请IP地址的过程,提高DHCP客户端地址申请的效率,从而提高了DHCP客户端打通网络的速度,帮助DHCP客户端更快的获取接入网络所需的相关信息。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (14)
1.一种动态主机配置协议DHCP地址分配方法,其特征在于,包括:
接收到DHCP客户端发送的DHCP发现报文的第一DHCP服务器将网络中所有DHCP服务器的接收到所述DHCP发现报文的三层接口的地址封装在DHCP响应报文中,并将所述DHCP响应报文发送给所述DHCP客户端,所述DHCP响应报文包括预分配给所述DHCP客户端的地址信息;所述第一DHCP服务器是指处于主机状态的DHCP服务器;
所述DHCP客户端根据所述DHCP响应报文中各个DHCP服务器的三层接口的地址,向所述各个DHCP服务器发送DHCP请求报文,所述DHCP请求报文包括所述地址信息;
所述DHCP客户端根据由所述各个DHCP服务器中的第二DHCP服务器返回的DHCP确认报文,确定分配到所述地址信息;所述第二DHCP服务器是指处于主机状态的DHCP服务器;
其中,如果所述第一DHCP服务器在DHCP地址分配过程中未发生故障,则所述第二DHCP服务器与所述第一DHCP服务器相同;如果所述第一DHCP服务器在DHCP地址分配过程中发生了故障,则所述第二DHCP服务器是与所述第一DHCP服务器不同的另一个DHCP服务器。
2.根据权利要求1所述的DHCP地址分配方法,其特征在于,所述接收到DHCP客户端发送的DHCP发现报文的第一DHCP服务器将网络中所有DHCP服务器的接收到所述DHCP发现报文的三层接口的地址封装在DHCP响应报文中,并将所述DHCP响应报文发送给所述DHCP客户端包括:
所述第一DHCP服务器在接收到所述DHCP发现报文时,判断所述第一DHCP服务器是否处于主机状态,当判断结果为所述第一DHCP服务器处于主机状态时,将所述所有DHCP服务器的接收到所述DHCP发现报文的三层接口的地址封装在所述DHCP响应报文中新扩展的选项Option字段中或者扩展后的第54号选项Option54字段中;
所述第一DHCP服务器将所述DHCP响应报文发送给所述DHCP客户端。
3.根据权利要求1或2所述的DHCP地址分配方法,其特征在于,所述DHCP客户端根据所述DHCP响应报文中各个DHCP服务器的三层接口的地址,向所述各个DHCP服务器发送DHCP请求报文包括:
所述DHCP客户端将所述DHCP响应报文中各个DHCP服务器的三层接口的地址,同时封装在所述DHCP请求报文的选项Option字段中;或者,所述DHCP客户端将所述DHCP响应报文中每个DHCP服务器的三层接口的地址,分别封装在与所述每个DHCP服务器对应的每个DHCP请求报文的服务器IP地址siaddr字段中;
所述DHCP客户端将所述DHCP请求报文发送给所述各个DHCP服务器。
4.根据权利要求3所述的DHCP地址分配方法,其特征在于,所述DHCP请求报文的选项Option字段为新扩展的Option字段或者扩展后的第54号选项Option54字段。
5.根据权利要求3所述的DHCP地址分配方法,其特征在于,所述DHCP客户端将所述DHCP请求报文发送给所述各个DHCP服务器包括:
当所述DHCP客户端将所述DHCP响应报文中各个DHCP服务器的三层接口的地址,同时封装在所述DHCP请求报文的Option字段中时,所述DHCP客户端以单播方式轮询向所述各个DHCP服务器发送所述DHCP请求报文,或者所述DHCP客户端以广播方式向所述各个DHCP服务器发送所述DHCP请求报文;
当所述DHCP客户端将所述DHCP响应报文中每个DHCP服务器的三层接口的地址,分别封装在与所述每个DHCP服务器对应的每个DHCP请求报文的siaddr字段中时,所述DHCP客户端以单播方式将所述每个DHCP请求报文分别发送给所述每个DHCP服务器。
6.根据权利要求3所述的DHCP地址分配方法,其特征在于,所述DHCP客户端根据由所述各个DHCP服务器中的第二DHCP服务器返回的DHCP确认报文,确定分配到所述地址信息包括:
所述第二DHCP服务器根据所述DHCP请求报文的Option字段或siaddr字段接收所述DHCP请求报文,并判断所述第二DHCP服务器是否处于主机状态,当判断结果为所述第二DHCP服务器处于主机状态时,向所述DHCP客户端发送所述DHCP确认报文,
所述DHCP客户端接收所述DHCP确认报文,并确定分配到所述地址信息。
7.一种动态主机配置协议DHCP客户端,其特征在于,包括:
响应报文接收模块,用于接收第一DHCP服务器根据所述DHCP客户端的DHCP发现报文发送的DHCP响应报文,所述DHCP响应报文包括网络中所有DHCP服务器的接收到所述DHCP发现报文的三层接口的地址和所述第一DHCP服务器预分配给所述DHCP客户端的地址信息;所述第一DHCP服务器是指处于主机状态的DHCP服务器;
请求报文发送模块,用于根据所述DHCP响应报文中各个DHCP服务器的三层接口的地址,向所述各个DHCP服务器发送DHCP请求报文,所述DHCP请求报文包括所述地址信息;
接收确认模块,用于接收所述各个DHCP服务器中第二DHCP服务器返回的DHCP确认报文,并根据所述DHCP确认报文确定分配到所述地址信息;所述第二DHCP服务器是指处于主机状态的DHCP服务器;
其中,如果所述第一DHCP服务器在DHCP地址分配过程中未发生故障,则所述第二DHCP服务器与所述第一DHCP服务器相同;如果所述第一DHCP服务器在DHCP地址分配过程中发生了故障,则所述第二DHCP服务器是与所述第一DHCP服务器不同的另一个DHCP服务器。
8.根据权利要求7所述的DHCP客户端,其特征在于,所述请求报文发送模块包括:
第一封装单元,用于将所述DHCP响应报文中各个DHCP服务器的三层接口的地址,同时封装在所述DHCP请求报文的选项Option字段中,或者用于将所述DHCP响应报文中每个DHCP服务器的三层接口的地址,分别封装在与所述每个DHCP服务器对应的每个DHCP请求报文的服务器IP地址siaddr字段中;
第一发送单元,用于将所述DHCP请求报文发送给所述各个DHCP服务器。
9.根据权利要求8所述的DHCP客户端,其特征在于,所述第一发送单元具体用于在所述第一封装单元将所述DHCP响应报文中各个DHCP服务器的三层接口的地址,同时封装在所述DHCP请求报文的Option字段中时,以单播方式轮询向所述各个DHCP服务器发送所述DHCP请求报文,或以广播方式向所述各个DHCP服务器发送所述DHCP请求报文;以及具体用于在所述第一封装单元将所述DHCP响应报文中每个DHCP服务器的三层接口的地址,分别封装在与所述每个DHCP服务器对应的每个DHCP请求报文的siaddr字段中时,以单播方式将所述每个DHCP请求报文分别发送给所述每个DHCP服务器。
10.根据权利要求7或8或9所述的DHCP客户端,其特征在于,所述接收确认模块具体用于接收所述所有DHCP服务器中处于主机状态的DHCP服务器返回的DHCP确认报文,并根据所述DHCP确认报文确定分配到所述地址信息。
11.一种动态主机配置协议DHCP服务器,其特征在于,所述DHCP服务器处于主机状态,所述DHCP服务器包括:
发现报文接收模块,用于接收DHCP客户端发送的DHCP发现报文;
响应报文发送模块,用于根据所述DHCP发现报文,将网络中所有DHCP服务器的接收到所述DHCP发现报文的三层接口的地址封装在DHCP响应报文中,并将所述DHCP响应报文发送给所述DHCP客户端,所述DHCP响应报文包括预分配给所述DHCP客户端的地址信息;
请求报文接收模块,用于接收所述DHCP客户端根据所述DHCP响应报文中各个DHCP服务器的三层接口的地址,生成并发送的DHCP请求报文,所述DHCP请求报文包括所述地址信息;
确认报文发送模块,用于根据接收到的所述DHCP请求报文,向所述DHCP客户端发送DHCP确认报文,以使所述DHCP客户端根据所述DHCP请求报文确认分配到所述地址信息。
12.根据权利要求11所述的DHCP服务器,其特征在于,所述响应报文发送模块包括:
第二封装单元,用于在接收到DHCP发现报文后判断所述DHCP服务器是否处于主机状态,并在所述DHCP服务器处于主机状态时将所述所有DHCP服务器的三层接口的地址封装在所述DHCP响应报文中新扩展的选项Option字段中或者扩展后的第54号选项Option54字段中;
第二发送单元,用于将所述DHCP响应报文发送给所述DHCP客户端。
13.根据权利要求11或12所述的DHCP服务器,其特征在于,所述请求报文接收模块包括:
接收单元,用于根据所述DHCP请求报文的选项Option字段或服务器IP地址siaddr字段接收所述DHCP请求报文,所述DHCP请求报文中的Option字段中封装有所述网络中所有DHCP服务器的接收到所述DHCP发现报文的三层接口的地址,所述DHCP请求报文的siaddr字段中封装有所述网络中所有DHCP服务器中一个DHCP服务器的接收到所述DHCP发现报文的三层接口的地址;
判断单元,用于判断所述DHCP服务器是否处于主机状态,并在判断结果为是时,触发所述确认报文发送模块执行根据接收到的所述DHCP请求报文,向所述DHCP客户端发送DHCP确认报文,以使所述DHCP客户端根据所述DHCP请求报文确认分配到所述地址信息的操作。
14.一种动态主机配置协议DHCP地址分配系统,其特征在于,包括:DHCP客户端和多个DHCP服务器;
所述DHCP客户端包括:
响应报文接收模块,用于接收所述多个DHCP服务器中第一DHCP服务器根据所述DHCP客户端的DHCP发现报文发送的DHCP响应报文,所述DHCP响应报文包括所述多个DHCP服务器的接收到所述DHCP发现报文的三层接口的地址和所述第一DHCP服务器预分配给所述DHCP客户端的地址信息;所述第一DHCP服务器是指处于主机状态的DHCP服务器;
请求报文发送模块,用于根据所述DHCP响应报文中多个DHCP服务器的三层接口的地址,向所述多个DHCP服务器发送DHCP请求报文,所述DHCP请求报文包括所述地址信息;
接收确认模块,用于接收所述多个DHCP服务器中第二DHCP服务器返回的DHCP确认报文,并根据所述DHCP确认报文确定分配到所述地址信息;所述第二DHCP服务器是指处于主机状态的DHCP服务器;
其中,如果所述第一DHCP服务器在DHCP地址分配过程中未发生故障,则所述第二DHCP服务器与所述第一DHCP服务器相同;如果所述第一DHCP服务器在DHCP地址分配过程中发生了故障,则所述第二DHCP服务器是与所述第一DHCP服务器不同的另一个DHCP服务器;
每个所述DHCP服务器包括:
发现报文接收模块,用于接收所述DHCP客户端发送的DHCP发现报文;
响应报文发送模块,用于根据所述DHCP发现报文,将所述多个DHCP服务器的接收到所述DHCP发现报文的三层接口的地址封装在DHCP响应报文中,并将所述DHCP响应报文发送给所述DHCP客户端,所述DHCP响应报文包括预分配给所述DHCP客户端的地址信息;
请求报文接收模块,用于接收所述DHCP客户端根据所述DHCP响应报文中多个DHCP服务器的三层接口的地址,生成并发送的DHCP请求报文,所述DHCP请求报文包括所述地址信息;
确认报文发送模块,用于根据接收到的所述DHCP请求报文,向所述DHCP客户端发送DHCP确认报文,以使所述DHCP客户端根据所述DHCP请求报文确认分配到所述地址信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110210524.XA CN102244690B (zh) | 2011-07-26 | 2011-07-26 | 动态主机配置协议地址分配方法、系统、客户端及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110210524.XA CN102244690B (zh) | 2011-07-26 | 2011-07-26 | 动态主机配置协议地址分配方法、系统、客户端及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102244690A CN102244690A (zh) | 2011-11-16 |
CN102244690B true CN102244690B (zh) | 2014-03-12 |
Family
ID=44962518
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110210524.XA Active CN102244690B (zh) | 2011-07-26 | 2011-07-26 | 动态主机配置协议地址分配方法、系统、客户端及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102244690B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102404146B (zh) * | 2011-11-17 | 2014-10-29 | 福建星网锐捷网络有限公司 | 主从切换方法、网络设备及dhcp服务器 |
CN103795581B (zh) * | 2012-10-29 | 2018-05-11 | 新华三技术有限公司 | 地址处理方法和设备 |
CN103905392B (zh) * | 2012-12-26 | 2017-06-20 | 中国移动通信集团公司 | 动态主机设置协议dhcp服务器选择方法、装置及系统 |
CN103944867B (zh) * | 2013-01-23 | 2017-09-12 | 华为技术有限公司 | 动态主机配置协议报文的处理方法、装置和系统 |
CN104253874B (zh) * | 2013-06-27 | 2018-12-25 | 华为技术有限公司 | 一种报文发送和处理的方法、装置和系统 |
CN103532687A (zh) * | 2013-10-18 | 2014-01-22 | 上海斐讯数据通信技术有限公司 | 一种实现动态主机配置协议服务器冗余备份的方法和系统 |
CN104899164B (zh) * | 2014-03-04 | 2023-05-30 | 瑞萨集成电路设计(北京)有限公司 | 集成电路总线的地址寻址方法、集成电路总线设备和系统 |
CN104410727B (zh) * | 2014-11-20 | 2018-03-23 | 中国联合网络通信集团有限公司 | 地址分配方法、客户端、服务器及地址分配系统 |
CN106817438A (zh) * | 2017-02-09 | 2017-06-09 | 浙江风向标科技有限公司 | 一种基于控制器局域网络的设备管理方法及装置 |
CN110661902B (zh) * | 2019-09-26 | 2022-06-03 | 浪潮商用机器有限公司 | 一种监测客户端续约的方法 |
CN111131445B (zh) * | 2019-12-23 | 2022-08-12 | 互联网域名系统北京市工程研究中心有限公司 | Dhcp集群的调度方法和dhcp集群系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101090309A (zh) * | 2007-07-18 | 2007-12-19 | 杭州华三通信技术有限公司 | 一种实现dhcp服务冗余的方法及dhcp服务器 |
CN102098354A (zh) * | 2011-02-28 | 2011-06-15 | 北京星网锐捷网络技术有限公司 | 动态主机配置协议地址分配方法及服务器 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7903647B2 (en) * | 2005-11-29 | 2011-03-08 | Cisco Technology, Inc. | Extending sso for DHCP snooping to two box redundancy |
-
2011
- 2011-07-26 CN CN201110210524.XA patent/CN102244690B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101090309A (zh) * | 2007-07-18 | 2007-12-19 | 杭州华三通信技术有限公司 | 一种实现dhcp服务冗余的方法及dhcp服务器 |
CN102098354A (zh) * | 2011-02-28 | 2011-06-15 | 北京星网锐捷网络技术有限公司 | 动态主机配置协议地址分配方法及服务器 |
Non-Patent Citations (1)
Title |
---|
DHCP协议缺点及其解决方法;贾小东 等;《计算机工程》;20071231;第33卷(第23期);正文第一节 * |
Also Published As
Publication number | Publication date |
---|---|
CN102244690A (zh) | 2011-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102244690B (zh) | 动态主机配置协议地址分配方法、系统、客户端及服务器 | |
CN102025798B (zh) | 地址分配处理方法、装置和系统 | |
CN101330531B (zh) | Dhcp地址分配处理方法和dhcp中继 | |
CN102549983B (zh) | 分布式数据中心接入交换机 | |
CN101442425B (zh) | 网关的管理方法及装置、系统 | |
CN102025630A (zh) | 负载均衡方法及负载均衡系统 | |
CN103814554A (zh) | 一种虚拟可扩展局域网的通信方法、装置和系统 | |
CN101656721B (zh) | 虚链路发现控制方法和以太网承载光纤通道协议系统 | |
CN101431428B (zh) | 安全监控服务恢复方法及系统 | |
CN102447624A (zh) | 在服务器集群上实现负载均衡的方法、节点服务器及集群 | |
CN104506372B (zh) | 一种实现主备服务器切换的方法及系统 | |
CN103546315A (zh) | 一种dhcp服务器的备份系统、方法及设备 | |
CN106878480B (zh) | 一种dhcp服务进程共享方法及装置 | |
CN106612339A (zh) | 域名更新方法、系统和主dns服务器 | |
CN103001868A (zh) | 用于虚拟路由器冗余协议备份组同步arp表项的方法和装置 | |
CN101188514A (zh) | 自动发现网元设备的方法、装置及系统 | |
CN101873320B (zh) | 一种基于DHCPv6中继的客户端信息确认方法及其装置 | |
CN101217477B (zh) | 实现vrrp备份组中dhcp租约平滑切换的方法、装置和路由器 | |
CN104468869A (zh) | 为终端分配ip地址的方法、获取ip地址的方法及装置 | |
CN111131445B (zh) | Dhcp集群的调度方法和dhcp集群系统 | |
CN115567486A (zh) | 一种mlag环境下的租约同步方法、装置、设备及介质 | |
CN101304372B (zh) | 一种配置访问控制列表的方法、设备及系统 | |
CN108259636B (zh) | 一种报文处理方法及装置 | |
CN104158694B (zh) | DHCPv6服务器的热备方法和装置 | |
CN115499414A (zh) | 地址分配方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
C56 | Change in the name or address of the patentee | ||
CP01 | Change in the name or title of a patent holder |
Address after: Cangshan District of Fuzhou City, Fujian province 350002 Jinshan Road No. 618 Garden State Industrial Park building 19# Patentee after: RUIJIE NETWORKS CO., LTD. Address before: Cangshan District of Fuzhou City, Fujian province 350002 Jinshan Road No. 618 Garden State Industrial Park building 19# Patentee before: Fujian Xingwangruijie Network Co., Ltd. |