DHCP服务器选择方法和装置与流程

文档序号:11548786阅读:466来源:国知局
DHCP服务器选择方法和装置与流程

本发明涉及计算机网络技术领域,特别是涉及一种dhcp(dynamichostconfigureprotocol,动态主机配置协议)服务器选择方法和装置。



背景技术:

目前的局域网内,广泛采用dhcp协议来为接入局域网的终端设备自动分配ip地址,省去了人工分配的繁琐劳动。dhcp分配机制中通常选定最及时正确响应的服务器作为dhcp服务器,即最先到达的响应所对应的主机会拥有对请求设备或者请求客户端的服务权和相应控制权。

在一些以太网或wifi等局域网环境中,存在病毒或恶意软件,恶意或病毒程序只要快速发出自己的服务器响应,就可轻松骗取对所应答设备的dhcp服务权和控制权,进而分配错误的网际协议ip(internetprotocol,ip)地址资源,这使得局域网络中的客户端容易遭受虚假的dhcp服务器的欺骗或攻击,导致通讯障碍或者客户端信息泄露,客户端在整个局域网中的安全性和稳定性较差。



技术实现要素:

基于此,有必要针对上述问题,提供一种dhcp服务器选择方法和装置,能够通过客户端设备自身避免伪dhcp服务器的欺骗或者攻击,识别真正的dhcp服务器,提高整个局域网中客户端设备的安全性和稳定性。

一种动态主机配置协议dhcp服务器选择方法,所述方法包括:

以广播的形式发送dhcp发现报文请求;

接收dhcp服务器返回的应答响应数据;

根据所述应答响应数据获取所述dhcp服务器对应的当前dhcp服务器身份信息,所述当前dhcp服务器身份信息包括当前媒体访问控制mac地址、当前网际协议ip地址以及当前主机名称中的至少一种;

判断所述当前dhcp服务器身份信息是否属于预设dhcp服务器身份信息集合,所述预设dhcp服务器身份信息集合中的每项预设dhcp服务器身份信息包括预设mac地址、预设ip地址以及预设主机名称中的至少一种;

如果属于,则选定所述当前dhcp服务器身份信息对应的dhcp服务器作为受信任dhcp服务器。

在其中一个实施例中,所述接收dhcp服务器返回的应答响应数据的步骤之前还包括:

判断当前应答时间是否超过预设时间间隔;

若是,则进入所述以广播的形式发送dhcp发现报文请求的步骤;若否,则进入所述接收dhcp服务器的应答响应数据的步骤。

在其中一个实施例中,所述判断所述当前dhcp服务器身份信息是否属于预设dhcp服务器身份信息集合的步骤之前还包括:

采用对话框以及应用程序编程接口api中的至少一种方式生成dhcp服务器身份信息配置文件,根据dhcp服务器身份信息配置文件得到预设dhcp服务器身份信息集合。

在其中一个实施例中,所述判断所述当前dhcp服务器身份信息是否属于预设dhcp服务器身份信息集合的步骤之后还包括:

如果不属于,则进入所述判断当前应答时间是否超过预设时间间隔的步骤。

在其中一个实施例中,所述如果属于,则选定所述当前dhcp服务器身份信息对应的dhcp服务器作为受信任dhcp服务器的步骤之后还包括:

生成dhcp请求报文,并将所述dhcp请求报文发送至所述受信任dhcp服务器。

一种动态主机配置协议dhcp服务器选择装置,所述装置包括:

dhcp发现报文发送模块,用于以广播的形式发送dhcp发现报文请求;

应答响应数据接收模块,用于接收dhcp服务器的应答响应数据;

当前dhcp服务器身份信息获取模块,用于根据所述应答响应数据获取所述dhcp服务器对应的当前dhcp服务器身份信息,所述当前dhcp服务器身份信息包括当前媒体访问控制mac地址、当前网际协议ip地址以及当前主机名称中的至少一种;

dhcp服务器身份信息判断模块,用于判断所述当前dhcp服务器身份信息是否属于预设dhcp服务器身份信息集合,所述预设dhcp服务器身份信息集合中的每项预设dhcp服务器身份信息包括预设mac地址、预设ip地址以及预设主机名称中的至少一种;如果属于,则进入第一处理模块;

第一处理模块,用于选定所述当前dhcp服务器身份信息对应的dhcp服务器作为受信任dhcp服务器。

在其中一个实施例中,所述装置还包括:

时间判断模块,用于判断当前应答时间是否超过预设时间间隔,若是,则进入所述dhcp发现报文发送模块,若否,则进入所述应答响应数据接收模块。

在其中一个实施例中,所述装置还包括:

预设dhcp服务器身份信息集合获取模块,用于采用对话框以及应用程序编程接口api中的至少一种方式生成dhcp服务器身份信息配置文件,根据dhcp服务器身份信息配置文件得到预设dhcp服务器身份信息集合。

在其中一个实施例中,所述装置还包括:

第二处理模块,用于如果不属于,则进入所述时间判断模块。

在其中一个实施例中,所述装置还包括:

dhcp请求报文发送模块,用于生成dhcp请求报文,并将所述dhcp请求报文发送至所述受信任dhcp服务器。

上述dhcp服务器选择方法和装置,通过以广播的形式发送dhcp发现报文请求,接收dhcp服务器返回的应答响应数据,根据应答响应数据获取dhcp服务器对应的当前dhcp服务器身份信息,当前dhcp服务器身份信息包括当前媒体访问控制mac地址、当前网际协议ip地址以及当前主机名称中的至少一种,判断当前dhcp服务器身份信息是否属于预设dhcp服务器身份信息集合,预设dhcp服务器身份信息集合中的每项预设dhcp服务器身份信息包括预设mac地址、预设ip地址以及预设主机名称中的至少一种,如果属于,则选定当前dhcp服务器身份信息对应的dhcp服务器作为受信任dhcp服务器,利用dhcp协议中客户端可以自由地使用任意的策略来选择服务器的特点,接收dhcp服务器返回的应答响应数据时,不采用常规的到达先后顺序确定dhcp主机的方法,而是依据预先设置的dhcp服务器身份匹配信息集合中的预设dhcp服务器身份匹配信息对当前dhcp服务器身份信息进行校验匹配,即使有多个dhcp服务器进行应答响应,客户端只是选择与预设设置的dhcp服务器身份信息匹配条件相符合的dhcp服务器作为受信任的dhcp服务器,这样通过局部改变客户端的dhcp服务器驱动选择程序流程,可有效地抵御和避免伪dhcp服务器的欺骗和攻击,提升整个局域网中的客户端的安全性和稳定性。

附图说明

图1为一个实施例中一种dhcp服务器选择方法的应用环境图;

图2为一个实施例中一种dhcp服务器选择方法的流程图;

图3为另一个实施例中一种dhcp服务器选择方法的流程图;

图4为另一个实施例中一种dhcp服务器选择方法的流程图;

图5为一个实施例中设置预设dhcp服务器身份信息的对话框界面示意图;

图6为另一个实施例中一种dhcp服务器选择方法的流程图;

图7为一个实施例中一种dhcp服务器选择装置的结构框图;

图8为另一个实施例中一种dhcp服务器选择装置的结构框图;

图9为另一个实施例中一种dhcp服务器选择装置的结构框图;

图10为另一个实施例中一种dhcp服务器选择装置的结构框图。

具体实施方式

图1为一个实施例中一种dhcp(dynamichostconfigurationprotocol,动态主机配置协议)服务器选择方法的应用环境图,包括客户端110以及服务器120,其中客户端110包括但不限于手机、智能平板以及pc电脑,服务器120提供的服务包括前置服务器、应用服务、业务服务以及数据服务等,其中,客户端110和服务器120处于同一个局域网环境中,dhcp协议通常被应用在大型的局域网络环境中,主要作用是集中地管理以及分配ip地址,使网络环境中的主机动态地获得ip地址、gateway地址和dns服务器地址等信息,并能够提升地址的使用率,dhcp协议采用客户端/服务器模型,客户端主机地址的动态分配任务由客户端网络主机驱动。当dhcp服务器接收到来自客户端网络主机申请地址的信息时,才会向客户端网络主机发送相关的地址配置等信息,以实现客户端网络主机地址信息的动态配置。

在一个实施例中,提供了一种dhcp服务器选择方法,如图2所示,包括以下步骤:

步骤s210,以广播的形式发送dhcp发现报文请求。

具体地,客户端要与服务器建立通讯,通常按照dhcp协议的格式以广播的形式主动发出dhcp发现报文(dhcp-discover),在整个局域网中寻找dhcp服务器主机。

步骤s220,接收dhcp服务器返回的应答响应数据。

具体地,在整个局域网络环境中,客户端以广播的形式发送dhcp发现报文请求后,可能有多个dhcp服务器主机收到dhcp发现报文请求,进而有多个dhcp服务器主机进行响应,dhcp服务器根据ip地址的优先次序选出一个ip地址,与其它参数一起通过应答响应数据(dhcp-offer报文)发送给客户端,这样以来,客户端可以接收到一个或者多个dhcp服务器返回的应答响应数据,每个dhcp服务器对应的应答响应数据通常包括dhcp-offer报文。

步骤s230,根据应答响应数据获取dhcp服务器对应的当前dhcp服务器身份信息,当前dhcp服务器身份信息包括当前媒体访问控制mac地址、当前网际协议ip地址以及当前主机名称中的至少一种。

具体地,dhcp-offer报文中通常包括服务器的媒体访问控制地址mac

(mediaaccesscontrol,mac)地址、网际协议ip地址以及主机名称,按照dhcp协议,mac地址从chaddr域获取;ip地址从serveridentifier选项域中获取;主机名称从sname域获取,其中,chaddr、serveridentifier和sname是dhcp协议中所定义的三个相关消息域的名称。显然,客户端收到应答响应数据后,根据应答响应数据,可以直接获取dhcp服务器对应的当前媒体访问控制mac地址、当前网际协议ip地址以及当前主机名称中的至少一种,进而得到当前dhcp服务器身份信息。

其中,mac地址为六字节的十六进制数,ip地址为四段十进制数,每段取值为0~255,段间以点分隔,主机名称标识描述dhcp服务器主机名的字符串,长度不超过64字节。

步骤s240,判断当前dhcp服务器身份信息是否属于预设dhcp服务器身份信息集合,如果属于,则进入步骤s250,预设dhcp服务器身份信息集合中的每项预设dhcp服务器身份信息包括预设媒体访问控制mac地址、预设网际协议ip地址以及预设主机名称中的至少一种。

具体地,客户端中存储有预设的dhcp服务器身份信息集合,该集合中包括一项或者多项预设dhcp服务器身份信息,每项预设dhcp服务器身份信息包括预设媒体访问控制mac地址、预设网际协议ip地址以及预设主机名称中的至少一种。

其中,客户端在判断获取的当前dhcp服务器身份信息是否属于预设dhcp服务器身份信息集合时,需要按照预设dhcp服务器身份信息集合中每项预设dhcp服务器身份信息中的信息类别,获取当前dhcp服务器身份信息,并与每项预设dhcp服务器身份信息类别相对应身份信息相比较,如果相一致,则认为当前dhcp服务器身份信息属于预设dhcp服务器身份信息集合,进入步骤s250,如果不一致,则继续比较下一项,直至找到相一致的预设dhcp服务器身份信息或者将预设dhcp服务器身份集合中的所有元素比较完毕。

在一个实施例中,如果某项预设dhcp服务器身份信息包括的身份信息类别多于当前dhcp服务器身份信息时,即按照预设dhcp服务器身份信息中的信息类别,无法获取对应的当前dhcp服务器身份信息进行比较,则认为当前dhcp服务器身份信息不属于预设dhcp服务器身份信息集合。

在一个实施例中,当某一项预设dhcp服务器身份信息仅仅包括预设mac地址时,按照对应的类别,则当前dhcp服务器身份信息仅仅包括当前mac地址,将当前mac地址与预设mac地址进行比较,判断两者是否一致,若一致,则认为当前mac地址属于预设dhcp服务器身份信息集合,进入步骤s250。

在一个实施例中,预设mac地址是88:43:e1:bd:5b:3f和预设ip地址是168.16.112.1,则当检查到当前mac地址等于88:43:e1:bd:5b:3f、且当前ip地址等于168.16.112.1时,即认为当前dhcp服务器身份信息属于预设dhcp服务器身份信息集合。

步骤s250,选定当前dhcp服务器身份信息对应的dhcp服务器作为受信任dhcp服务器。

具体地,在判断当前dhcp服务器身份信息属于预设dhcp服务器身份信息集合时,进一步可确定前dhcp服务器身份信息对应的dhcp服务器作为受信任dhcp服务器,从而建立通信。

上述dhcp服务器选择方法,通过以广播的形式发送dhcp发现报文请求,接收dhcp服务器返回的应答响应数据,根据应答响应数据获取dhcp服务器对应的当前dhcp服务器身份信息,当前dhcp服务器身份信息包括当前媒体访问控制mac地址、当前网际协议ip地址以及当前主机名称中的至少一种,判断当前dhcp服务器身份信息是否属于预设dhcp服务器身份信息集合,预设dhcp服务器身份信息集合中的每项预设dhcp服务器身份信息包括预设媒体访问控制mac地址、预设网际协议ip地址以及预设主机名称中的至少一种,如果属于,则选定当前dhcp服务器身份信息对应的dhcp服务器作为受信任dhcp服务器,利用dhcp协议中客户端可以自由地使用任意的策略来选择服务器的特点,接收dhcp服务器返回的应答响应数据时,不采用常规的到达先后顺序确定dhcp主机的方法,而是依据预先设置的dhcp服务器身份匹配信息集合中的预设dhcp服务器身份匹配信息对当前dhcp服务器身份信息进行校验匹配,即使有多个dhcp服务器进行应答响应,客户端只是选择与预设设置的dhcp服务器身份信息匹配条件相符合的dhcp服务器作为受信任的dhcp服务器,这样通过局部改变客户端的dhcp服务器驱动选择程序流程,可有效地抵御和避免伪dhcp服务器的欺骗和攻击,提升整个局域网中的客户端的安全性和稳定性。

在其中一个实施例中,如图3所示,步骤s220之前还包括:

步骤s260,判断当前应答时间是否超过预设时间间隔,若是,则进入步骤s210,若否,则进入步骤s220。

具体地,客户端需要在一个固定的预设时间间隔时限内接收dhcp服务器返回的应答响应数据,该固定时限可以根据具体情况进行设置,其中通常设置为几百毫秒到几秒之间取值,例如300毫秒以及1秒等。

若当前应答时间已超过预设时间间隔,则进入步骤s210,以重新发起dhcp发现报文请求,若当前应答时间未超过预设时间间隔,则继续进入步骤s220,以接收dhcp服务器返回的应答响应数据。

通过设置固定预设时间间隔,可以保证dhcp通讯过程在高适应性和高效性上取得平衡。

在其中一个实施例中,如图4所示,步骤s240之前还包括:

步骤s270,采用对话框以及应用程序编程接口api中的至少一种方式获取dhcp服务器身份信息配置文件,根据dhcp服务器身份信息配置文件得到预设dhcp服务器身份信息集合。

具体地,在客户端的软件操作系统底层,实现一个供用户编辑受信任的初始dhcp服务器身份信息匹配对话框窗口或者一个可供应用程序调用来写入或者修改受信任的dhcp服务器身份匹配信息软件api接口。

通过上述对话框窗口以及api接口两种方式的至少一种,可以生成对应的dhcp服务器身份信息配置文件,根据dhcp服务器身份信息配置文件中的dhcp服务器配置信息,可以获得一项或者多项dhcp服务器身份信息,进而得到预设dhcp服务器身份信息集合,这是因为在一个局域网中合法的dhcp服务器可以有一台或者多台。

其中,对话框窗口和软件api接口这两种方式,可以根据需要采用其中的任一种,或者全部采用。如果全部采用,这两种方式分时共用一个存储dhcp服务器身份匹配信息的文件,以同样的方式访问该文件。这是因为,对话框窗口和api接口分属于不同的两个进程,若两个进程同时对同一文件进行写访问时,可能会造成文件被破坏。每个进程应该以原子方式进行写操作,即独占地、分开操作时间地写操作。

在其中一个实施例中,通过对话框窗口的形式可以编辑预设dhcp服务器身份信息,编辑包括添加、修改、删除等操作。按“保存”按钮后,编辑后的信息保存到文件中,可以永久生效。可以编辑和保存多项预设dhcp服务器身份匹配信息,每项预设dhcp服务器身份信息均包括对应的选择服务器主机的匹配条件。

通过该dhcp服务器身份信息配置文件可以直接获得预设的dhcp服务器身份信息集合,其中,该集合中每项预设dhcp服务器身份信息对应的选择服务器主机的匹配条件可以根据具体情况进行设定,例如整个网络的病毒严重程度,病毒严重程度若较高,则可将预设dhcp服务器身份信息设置为三个匹配条件,包括预设预设媒体访问控制mac地址、预设网际协议ip地址以及预设主机名称三种匹配条件,若病毒严重程度低,网络安全性较好,则可以设置一个或者两个匹配条件即可。

当然,每项预设dhcp服务器身份信息包括的选择服务器主机的匹配条件可以不尽相同。

在一个实施例中,如图5所示,为预设dhcp服务器身份信息对话框界面示意图,包括mac地址44-39-c490-7b-55、ip地址192.16.112.1和主机名称host1三个匹配条件。

在一个实施例中,提供让应用程度调用的软件api接口,通过该接口可以提供写入、读取以及删除对应的dhcp服务器身份信息匹配条件,生成dhcp服务器身份信息配置文件,根据该dhcp服务器身份信息配置文件,可以获得预设dhcp服务器身份信息集合。

其中,用c语言描述的接口示例文件如下:

1、writedhcpserverinfo(intgroupno,constchar*macaddr,constchar*ipaddr,constchar*servername)。

用于写入一项预设dhcp服务器身份信息,包括:预设mac地址、预设ip地址、预设主机名称等。

其中,groupno表示在预设dhcp服务器身份信息集合中的数字编号(集合中元素本无先后顺序,这里为方便比较起见,进行编号),一个编号对应一项预设dhcp服务器身份信息。从0开始取值,最大值等于可支持的匹配总数减去一。这里,建议匹配总数在2~10范围内取值。

预设dhcp服务器身份信息通常包括三种,即三个字段,包括:

macaddr——待写入预设mac地址缓存的首地址,传入0表示预设mac地址为空。写入的mac地址是六字节的十六进制数。

ipaddr——待写入预设ip地址串的首地址,传入0表示ip地址为空。写入的ip地址串是四段十进制数,每段取值范围是0~255,段间以点分隔。

servername——待写入预设主机名称缓存的首地址,写入0表示预设主机名称为空。

当macaddr、ipaddr以及servername全部传入0时,等同于删除groupno所指定的预设dhcp服务器身份信息。

每项中,可以根据实际需要只写入三种身份匹配信息中的一种或多种,每一种称为一个字段。针对一个服务器主机,可以写入一项或者多项,用于对应不同的匹配条件。

2、readdhcpserverinfo(intgroupno,char*macaddr,char*ipaddr,char*servername)

用于读取某项已写入的预设dhcp服务器身份信息。

groupno——在预设dhcp服务器身份信息集合中的数字编号(集合中元素本无先后顺序,这里为方便比较起见,进行编号)。

macaddr——待读出预设mac地址缓存的首地址,读出全0表示预设mac地址为空。

ipaddr——待读出预设ip地址串的首地址,读出全0表示预设ip地址为空。

servername——待读出预设主机名称缓存的首地址,读出长度为0的字符串则表示预设主机名称为空。

3、deletedhcpserverinfo(intgroupno)

用于删除某项已写入的预设dhcp服务器身份信息。

groupno——在预设dhcp服务器身份信息集合中的数字编号(集合中元素本无先后顺序,这里为方便比较起见,进行编号)。

在其中一个实施例中,步骤s240还包括:如果不属于,则进入步骤s260。

在其中一个实施例中,如图6所示,步骤s250之后还包括:

步骤s280,生成dhcp请求报文,并将dhcp请求报文发送至受信任dhcp服务器。

具体地,客户端选定受信任服务器之后,生成dhcp请求报文,该报文包括向受信任服务器请求ip地址的相关信息,并以广播的形式发送,以通知其它dhcpserver自己将选择该dhcpserver所提供的ip地址。

此外,如图7所示,还提供了一种dhcp服务器选择装置,包括:

dhcp发现报文发送模块310,用于以广播的形式发送dhcp发现报文请求。

应答响应数据接收模块320,用于接收dhcp服务器的应答响应数据。

当前dhcp服务器身份信息获取模块330,用于根据应答响应数据获取dhcp服务器对应的当前dhcp服务器身份信息,当前dhcp服务器身份信息包括当前媒体访问控制mac地址、当前网际协议ip地址以及当前主机名称中的至少一种。

dhcp服务器身份信息判断模块340,用于判断当前dhcp服务器身份信息是否属于预设dhcp服务器身份信息集合,预设dhcp服务器身份信息集合中的每项预设dhcp服务器身份信息包括预设媒体访问控制mac地址、预设网际协议ip地址以及预设主机名称中的至少一种;如果属于,则进入第一处理模块。

第一处理模块350,用于选定当前dhcp服务器身份信息对应的dhcp服务器作为受信任dhcp服务器。

在其中一个实施例中,如图8所示,上述装置还包括:

时间判断模块360,用于判断当前应答时间是否超过预设时间间隔,若是,则进入dhcp发现报文发送模块,若否,则进入应答响应数据接收模块。

在其中一个实施例中,如图9所示,上述装置还包括:

预设dhcp服务器身份信息集合获取模块370,用于采用对话框以及应用程序编程接口api中的至少一种方式生成dhcp服务器身份信息配置文件,根据dhcp服务器身份信息配置文件得到预设dhcp服务器身份信息集合。

在其中一个实施例中,上述装置还包括:

第二处理模块,用于当前dhcp服务器身份信息如果不属于预设dhcp服务器身份信息集合,则进入时间判断模块360。

在其中一个实施例中,如图10所示,上述装置还包括:

dhcp请求报文发送模块380,用于生成dhcp请求报文,并将dhcp请求报文发送至受信任dhcp服务器。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述程序可存储于一计算机可读取存储介质中,如本发明实施例中,该程序可存储于计算机系统的存储介质中,并被该计算机系统中的至少一个处理器执行,以实现包括如上述各方法的实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1