客户端身份检测方法及网关的制作方法

文档序号:7984977阅读:139来源:国知局
客户端身份检测方法及网关的制作方法
【专利摘要】本发明实施例公开了客户端身份检测方法及网关,该方法包括:网关接收客户端发送的包含发送方IP地址和发送方MAC地址的ARP消息;如果网关的ARP表中的每一个ARP表项包含的IP地址和MAC地址均与发送方IP地址和发送方MAC地址不同,则向DHCP服务器发送包含发送方IP地址的查询请求消息;接收DHCP服务器发送的查询结果消息,该查询结果消息中包含DHCP服务器根据发送方IP地址从DHCP服务器的租约表中查找到的与发送方IP地址对应的MAC地址;根据查询结果消息确定客户端的合法性。本发明无需客户端在ARP消息过程中重复向DHCP服务器请求IP地址,由此降低了请求过程的繁琐性,相应提高了网络性能。
【专利说明】客户端身份检测方法及网关
【技术领域】
[0001]本发明涉及网络通信【技术领域】,尤其涉及客户端身份检测方法及网关。
【背景技术】
[0002]动态主机设置协议(英文为Dynamic Host Configuration Protocol,缩写为DHCP)服务器对互联网协议(英文为Internet Protocol,缩写为IP)网络配置进行集中管理,在一个典型的IP网络中,各个客户端,例如IP电话、个人计算机(英文为PersonalComputer,缩写为PC)终端等通过交换机连接到网关,网关作为DHCP的中继代理,通过互联网实现客户端与DHCP服务器之间的通信,由DHCP服务器为客户端动态分配IP地址。
[0003]通常,在DHCP服务器为客户端动态分配IP地址过程中,网关可以监听客户端与DHCP服务器之间交互的消息,从这些消息中获取客户端的IP地址、介质访问控制层(英文为Medium Access Control,缩写为MAC)地址、以太网接口等信息,并将获得的信息添加到缓存的地址解析协议(英文为Address Resolution Protocol,缩写为ARP)表中,ARP表中的每个表项以IP地址为索引记录一个客户端的ARP信息。当网关接收到客户端的ARP请求后,根据该ARP表验证ARP请求,丢弃恶意ARP请求。
[0004]但是,由于ARP表缓存在网关中,当网关重启时原来缓存的ARP表可能丢失,因此当网关开启并再次接收到客户端发送的ARP请求时,由于ARP表中已经没有该客户端的表项,则网关将该客户端检测为非法客户端,直接丢弃该ARP请求,该客户端只能重新向DHCP服务器请求IP地址,以便网关通过监听重新在ARP表中添加该客户端的表项,客户端才能作为合法用户完成ARP请求。由此可知,由于网关对ARP表的缓存特性,使得客户端在ARP请求过程中需要重复向DHCP服务器请求IP地址,才能实现身份验证,从而导致请求过程繁琐,降低了网络性能。

【发明内容】

[0005]本发明提供了客户端身份检测方法及网关,以解决客户端在ARP请求过程中需要重复向DHCP服务器请求IP地址,从而导致请求过程繁琐的问题。
[0006]为解决上述问题,本发明提供的技术方案如下:
[0007]第一方面,提供一种客户端身份检测方法,所述方法包括:
[0008]网关接收客户端发送的地址解析协议ARP消息,所述ARP消息中包含发送方互联网协议IP地址和发送方介质访问控制层MAC地址;
[0009]如果所述网关的ARP表中的每一个ARP表项包含的IP地址和MAC地址均与所述发送方IP地址和发送方MAC地址不同,则向动态主机设置协议DHCP服务器发送查询请求消息,所述查询请求消息中包含所述发送方IP地址;
[0010]接收所述DHCP服务器发送的查询结果消息,所述查询结果消息中包含所述DHCP服务器根据所述发送方IP地址从所述DHCP服务器的租约表中查找到的与所述发送方IP地址对应的MAC地址;[0011]根据所述查询结果消息确定所述客户端的合法性。
[0012]在第一方面的第一种可能的实现方式中,所述根据所述查询结果消息确定所述客户端的合法性,包括:
[0013]如果所述查询结果消息中携带的MAC地址与所述发送方MAC地址一致,则确定所述客户端为合法客户端,如果所述查询结果消息中携带的MAC地址与所述发送方MAC地址不一致,则确定所述客户端为非法客户端。
[0014]结合第一方面,或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述方法还包括:
[0015]所述网关在所述ARP表中添加ARP表项,所述ARP表项中包括所述查询结果消息中携带的IP地址和MAC地址。
[0016]结合第一方面,或第一方面的第一种可能的实现方式,或第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述方法还包括:当所述客户端为非法客户端时,所述网关丢弃所述ARP消息。
[0017]结合第一方面,或第一方面的第一种可能的实现方式,或第一方面的第二种可能的实现方式,或第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述方法还包括:如果所述网关的ARP表中存在一个ARP表项包含的IP地址和MAC地址与所述发送方IP地址和发送方MAC地址相同,则确定所述客户端为合法客户端。
[0018]第二方面,提供一种网关,所述网关包括:
[0019]第一接收单元,用于接收客户端发送的ARP消息,所述ARP消息中包含发送方IP地址和发送方MAC地址;
[0020]判断单元,用于判断所述网关的ARP表中的每一个ARP表项包含的IP地址和MAC地址是否均与所述第一接收单元接收到的ARP消息中包含的发送方IP地址和发送方MAC地址不同;
[0021]发送单元,用于如果所述判断单元的判断结果为所述网关的ARP表中的每一个ARP表项包含的IP地址和MAC地址均与所述第一接收单元接收到的ARP消息中包含的发送方IP地址和发送方MAC地址不同,则向DHCP服务器发送查询请求消息,所述查询请求消息中包含所述发送方IP地址;
[0022]第二接收单元,用于接收所述DHCP服务器发送的查询结果消息,所述查询结果消息中包含所述DHCP服务器根据所述发送方IP地址从所述DHCP服务器的租约表中查找到的与所述发送方IP地址对应的MAC地址;
[0023]检测单元,用于根据所述第二接收单元接收到的查询结果消息确定所述客户端的合法性。
[0024]在第二方面的第一种可能的实现方式中,所述检测单元,具体用于如果所述第二接收单元接收到的查询结果消息中携带的MAC地址与所述发送方MAC地址一致,则确定所述客户端为合法客户端,如果所述第二接收单元接收到的查询结果消息中携带的MAC地址与所述发送方MAC地址不一致,则确定所述客户端为非法客户端。
[0025]结合第二方面,或第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述网关还包括:
[0026]添加单元,用于在所述ARP表中添加ARP表项,所述ARP表项中包括所述第二接收单元接收到的所述查询结果消息中携带的IP地址和MAC地址。
[0027]结合第二方面,或第二方面的第一种可能的实现方式,或第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述网关还包括:
[0028]丢弃单元,用于当所述检测单元确定所述客户端为非法客户端时,丢弃所述第一接收单元接收到的ARP消息。
[0029]结合第二方面,或第二方面的第一种可能的实现方式,或第二方面的第二种可能的实现方式,或第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述检测单元,还用于如果所述判断单元的判断结果为所述网关的ARP表中存在一个ARP表项包含的IP地址和MAC地址与所述第一接收单元接收到的ARP消息中包含的发送方IP地址和发送方MAC地址相同,则确定所述客户端为合法客户端。
[0030]本发明中,网关接收客户端发送的包含发送方IP地址和发送方MAC地址的ARP消息,如果网关的ARP表中的每一个ARP表项包含的IP地址和MAC地址均与发送方IP地址和发送方MAC地址不同,则向DHCP服务器发送包含发送方IP地址的查询请求消息,接收DHCP服务器发送的查询结果消息,该查询结果消息中包含DHCP服务器根据发送方IP地址从DHCP服务器的租约表中查找到的与发送方IP地址对应的MAC地址,根据查询结果消息确定客户端的合法性。应用本发明,当DHCP服务器为客户端分配过IP地址,但网关中未记录该客户端的地址信息时,则网关可以通过与DHCP服务器交互,根据DHCP服务器中记录的地址信息完成客户端身份的检测,从而无需客户端在ARP请求过程中重复向DHCP服务器请求IP地址,由此降低了请求过程的繁琐性,相应提高了网络性能。
【专利附图】

【附图说明】
[0031]为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0032]图1为本发明客户端身份检测方法的一个实施例流程图;
[0033]图2为本发明客户端身份检测方法的另一个实施例流程图;
[0034]图3为应用本发明实施例的网络架构示意图;
[0035]图4为本发明客户端身份检测系统的实施例框图;
[0036]图5为本发明网关的一个实施例框图;
[0037]图6为本发明网关的另一个实施例框图;
[0038]图7为本发明网关的另一个实施例框图。
【具体实施方式】
[0039]下面将结合本发明实施例中的附图,对本发明的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0040]参见图1,为本发明客户端身份检测方法的一个实施例流程图:[0041]步骤101:网关接收客户端发送的ARP消息,该ARP消息中包含发送方IP地址和发送方MAC地址。
[0042]本发明实施例中,客户端可以具体为PC或IP电话等具有网络通信功能的终端。通常,每个客户端在进行网络通信前,可以通过网关请求DHCP服务器为该客户端分配IP地址,DHCP服务器在为客户端分配完IP地址后,会在租约表中记录该客户端的租约表项,该租约表项中包含客户端的IP地址、MAC地址、租期等信息。本实施例中,网关在上述DHCP服务器为客户端分配IP地址的过程中,通过监听二者之间的交互消息获得客户端的MAC地址,以及DHCP服务器为客户端分配的IP地址,网关在ARP表中记录客户端的ARP表项,该ARP表项中包含客户端的IP地址和MAC地址。网关不根据ARP消息在ARP表中记录ARP表项。一般地,ARP表可以保存在网关的存储器内,例如随机存储器(英文为Random AccessMemory,缩写为 RAM)。
[0043]当客户端发起ARP请求以请求网关地址时,客户端向网关发送包含发送方IP地址和发送方MAC地址的ARP消息。
[0044]步骤102:如果网关的ARP表中的每一个ARP表项包含的IP地址和MAC地址均与所述发送方IP地址和发送方MAC地址不同,则向DHCP服务器发送查询请求消息,该查询请求消息中包含发送方IP地址。
[0045]在本实施例的一个可选的实现方式中,网关在存储器中记录了客户端的ARP表项。网关重启后,则重启之前记录的ARP表项丢失,这种情况下,如果网关接收到客户端发送的包含发送方IP地址的ARP消息,则网关在ARP表中无法查找到发送方IP地址对应的ARP表项,因此网关向DHCP服务器发送包含发送方IP地址的查询请求消息,以便检测该客户端是否为合法客户端。
[0046]在本实施例的另一个可选的实现方式中,如果DHCP服务器重新为客户端分配了新的IP地址,但是网关未将该新的IP地址记录到更新后的客户端的ARP表项。当网关接收到该客户端发送的包含发送方IP地址的ARP消息时,由于该ARP消息中包含的发送方IP地址为该客户端的新的IP地址,网关的ARP表中的ARP表项中与该发送方MAC地址对应的IP地址为该客户端的旧的IP地址。因此网关在ARP表中无法查找到包括该发送方IP地址与该发送方MAC地址的ARP表项。网关向DHCP服务器发送包含该发送方IP地址的查询请求消息,以便检测该客户端是否为合法客户端;
[0047]在本实施例的另一个实现方式中,当该网关作为第一网关,其具有互为备份的第二网关时,如果DHCP服务器首次为客户端分配了第一 IP地址时,该第一网关记录了包含该客户端的第一 IP地址和第一 MAC地址的ARP表项;后续如果DHCP服务器再次为该客户端分配了第二 IP地址,由第二网关记录了包含该客户端的第二 IP地址和第一MAC地址的ARP表项,且DHCP服务器将第一 IP地址重新分配给了新的客户端,也由该第二网关记录包含该新的客户端的第一 IP地址和第二 MAC地址的ARP表项。当该第一网关接收到新的客户端发送的包含发送方IP地址的ARP消息时,由于该ARP消息中包含的发送方IP地址为DHCP服务器分配给该新的客户端的第一 IP地址,第一网关的APR表中的ARP表项中与该发送方IP地址对应的MAC地址为客户端的第一 MAC地址,而不是新的客户端的第二 MAC地址。因此第一网关在缓存的ARP表中无法查找到包括该发送方IP地址与发送方MAC地址的ARP表项。第一网关向DHCP服务器发送包含该发送方IP地址的查询请求消息,以便查询该新的客户端是否为合法客户端。
[0048]步骤103:网关接收DHCP服务器发送的查询结果消息,该查询结果消息中包含DHCP服务器根据发送方IP地址从该DHCP服务器的租约表中查找到的与该发送方IP地址对应的MAC地址。
[0049]DHCP服务器中记录了包含每个客户端的IP地址和MAC地址的租约表项,对于重新分配过IP地址的客户端,则DHCP服务器记录包含为该客户端重新分配过的IP地址和MAC地址的租约表项。当DHCP服务器接收到网关发送的查询请求消息后,根据该查询请求消息中包含的发送方IP地址查找租约表项,获取与该发送方IP地址对应的租约表项,并根据查找到的租约表项中的IP地址、MAC地址、租期等信息构建查询结果消息,并将该查询结果消息发送给网关。
[0050]步骤104:网关根据查询结果消息确定客户端的合法性。
[0051]在本实施例的实现方式中,网关接收到查询结果消息后,如果查询结果消息中携带的MAC地址与发送方MAC地址一致,则确定发送ARP消息的客户端为合法客户端,如果查询结果消息中携带的MAC地址与发送方MAC地址不一致,则确定发送ARP消息的客户端为非法客户端。
[0052]可选的,网关可以根据查询结果消息在ARP表中添加ARP表项,该ARP表项中包括查询结果消息中携带的IP地址和MAC地址。
[0053]由上述实施例可见,当DHCP服务器为客户端分配过IP地址,但网关中未记录该客户端的地址信息时,则网关可以通过与DHCP服务器交互,根据DHCP服务器中记录的地址信息完成客户端身份的检测,从而无需客户端在ARP请求过程中重复向DHCP服务器请求IP地址,由此降低了请求过程的繁琐性,相应提高了网络性能。
[0054]参见图2,为本发明客户端身份检测方法的另一个实施例流程图,该实施例中详细描述了对客户端身份进行检测的过程:
[0055]步骤201:网关接收客户端发送的ARP消息,该ARP消息中包含发送方IP地址和发送方MAC地址。
[0056]本发明实施例中,本发明实施例中,客户端可以具体为PC或IP电话等具有网络通信功能的终端。通常,每个客户端在进行网络通信前,可以通过网关请求DHCP服务器为该客户端分配IP地址,DHCP服务器在为客户端分配完IP地址后,会在租约表中记录该客户端的租约表项,该租约表项中包含客户端的IP地址、MAC地址、租期等信息。本实施例中,网关在上述DHCP服务器为客户端分配IP地址的过程中,通过监听二者之间的交互消息获得客户端的MAC地址,以及DHCP服务器为客户端分配的IP地址,网关在ARP表中记录客户端的ARP表项,该ARP表项中包含客户端的IP地址和MAC地址。网关不根据ARP消息在ARP表中记录ARP表项。一般地,ARP表可以保存在网关的存储器内,例如RAM。
[0057]当客户端发起ARP请求以请求网关地址时,客户端向网关发送包含发送方IP地址和发送方MAC地址的ARP消息。
[0058]步骤202:判断网关的ARP表中的每一个ARP表项包含的IP地址和MAC地址是否均与ARP消息中包含的发送方IP地址和发送方MAC地址不同,如果网关的ARP表中存在一个ARP表项包含的IP地址和MAC地址与ARP消息中包含的发送方IP地址和发送方MAC地址相同,则执行步骤208 ;如果网关的ARP表中的每一个ARP表项包含的IP地址和MAC地址均与ARP消息中包含的发送方IP地址和发送方MAC地址不同,则执行步骤203。
[0059]在本实施例的一个可选的实现方式中,网关在存储器中记录了客户端的ARP表项。网关重启后,则重启之前记录的ARP表项丢失,这种情况下,如果网关接收到客户端发送的包含发送方IP地址的ARP消息,则网关在ARP表中无法查找到发送方IP地址对应的ARP表项,因此网关执行步骤203。
[0060]在本实施例的另一个可选的实现方式中,如果DHCP服务器重新为客户端分配了新的IP地址,但是网关未将该新的IP地址记录到更新后的客户端的ARP表项。当网关接收到该客户端发送的包含发送方IP地址的ARP消息时,由于该ARP消息中包含的发送方IP地址为该客户端的新的IP地址,网关的ARP表中的ARP表项中与该发送方MAC地址对应的IP地址为该客户端的旧的IP地址。因此网关在ARP表中无法查找到包括该发送方IP地址与该发送方MAC地址的ARP表项,因此网关执行步骤203 ;
[0061]在本实施例的另一个实现方式中,当该网关作为第一网关,其具有互为备份的第二网关时,如果DHCP服务器首次为客户端分配了第一 IP地址时,该第一网关记录了包含该客户端的第一 IP地址和第一 MAC地址的ARP表项;后续如果DHCP服务器再次为该客户端分配了第二 IP地址,由第二网关记录了包含该客户端的第二 IP地址和第一MAC地址的ARP表项,且DHCP服务器将第一 IP地址重新分配给了新的客户端,也由该第二网关记录包含该新的客户端的第一 IP地址和第二 MAC地址的ARP表项。当该第一网关接收到新的客户端发送的包含发送方IP地址的ARP消息时,由于该ARP消息中包含的发送方IP地址为DHCP服务器分配给该新的客户端的第一 IP地址,第一网关的APR表中的ARP表项中与该发送方IP地址对应的MAC地址为客户端的第一 MAC地址,而不是新的客户端的第二 MAC地址。因此第一网关在缓存的ARP表中无法查找到包括该发送方IP地址与发送方MAC地址的ARP表项,因此网关执行步骤203。
[0062]步骤203:网关向DHCP服务器发送查询请求消息,该查询请求消息中包含发送方IP地址。
[0063]步骤204 =DHCP服务器根据发送方IP地址从租约表中查找与该发送方IP地址对应的MAC地址。
[0064]DHCP服务器中的租约表中记录了包含每个客户端的IP地址和MAC地址的租约表项,对于重新分配过IP地址的客户端,则DHCP服务器记录包含为该客户端重新分配过的IP地址和MAC地址的租约表项。当DHCP服务器接收到网关发送的查询请求消息后,根据该查询请求消息中包含的发送方IP地址查找租约表项,获取与该发送方IP地址对应的租约表项,该租约表项中包含与该发送方IP地址对应的MAC地址和租期。
[0065]步骤205:DHCP服务器向网关发送包含发送方IP地址和对应的MAC地址的查询结果消息。
[0066]DHCP服务器根据查找到的租约表项中的IP地址、MAC地址、租期等信息构建查询结果消息,并将查询结果消息发送给网关。
[0067]步骤206:网关在ARP表中添加ARP表项,该ARP表项中包括查询结果消息中携带的IP地址和MAC地址。
[0068]由于DHCP服务器的租约表中保存的IP地址和MAC地址为可信的地址,因此网关可以将查询结果消息中携带的IP地址和MAC地址添加到ARP表中。[0069]步骤207:网关判断查询结果消息中携带的MAC地址是否与发送方MAC地址一致,如果携带的MAC地址与发送方MAC地址一致,则执行步骤208 ;如果携带的MAC地址与发送方MAC地址不一致,则执行步骤209。
[0070]步骤208:网关确定客户端为合法客户端,向该客户端返回网关地址,结束当前流程。
[0071]步骤209:网关确定客户端为非法客户端,丢弃该客户端发送的ARP消息,结束当前流程。
[0072]由上述实施例可见,当DHCP服务器为客户端分配过IP地址,但网关中未记录该客户端的地址信息时,则网关可以通过与DHCP服务器交互,根据DHCP服务器中记录的地址信息完成客户端身份的检测,从而无需客户端在ARP请求过程中重复向DHCP服务器请求IP地址,由此降低了请求过程的繁琐性,相应提高了网络性能。
[0073]参见图3,为应用本发明实施例的一种网络架构示意图:
[0074]该网络架构中包括:网关,该网关通过互联网(英文为Internet)与DHCP服务器相连,不同的客户端通过接入层交换机与网关相连。图3中为了示例方便,示出了四个客户端,分别为客户端11 (例如,PC)、客户端12 (例如,IP电话)、客户端21 (例如,PC)和客户端22 (例如,PC)。
[0075]下面结合图3示出的网络架构,描述一个本发明实施例中的客户端身份检测过程的应用实例:
[0076]其中,假设客户端11为合法客户端,其MAC地址为00a0-c0a8-0165,客户端21为非法客户端,其MAC地址为00a0-c0a8-0001。
[0077]对于合法客户端11:
[0078]初始客户端11通过网关向DHCP服务器发送包含其MAC地址的DHCP请求消息,请求DHCP服务器为客户端11分配IP地址,假设DHCP服务器为客户端11分配的IP地址为192.168.1.101,同时DHCP服务器记录客户端11的租约表项,该租约表项中包含客户端11的IP地址和MAC地址,如图3中示出的租约表中的编号为I的表项;另外,网关通过监听客户端11与DHCP服务器之间的交互也可以获取到客户端11的IP地址和MAC地址,并在ARP表中记录客户端11的ARP表项,该ARP表项中包含客户端11的IP地址和MAC地址。本应用示例中,假设网关重启后,该网关缓存中原来保存的客户端11的ARP表项已经丢失,仅保存了该网关重启后另外一个客户端的ARP表项,如图3中示出的ARP表中的编号为I的表项;
[0079]此时,当客户端11要发起ARP过程时,客户端11向网关发送用于请求网关地址的ARP消息,该ARP消息中包含客户端11的IP地址192.168.1.101和MAC地址00a0-c0a8_0165 ;
[0080]当网关收到客户端11发送的ARP消息后,根据ARP消息中包含的客户端11的IP地址查找缓存中的ARP表,根据图3中示出的ARP表,则网关未查找到客户端11的ARP表项,网关向DHCP服务器发送租约查询消息,在DHCP协议中该租约查询消息为LEASEQUERY消息,该LEASEQUERY消息中包含客户端11的IP地址192.168.1.101,用于向DHCP服务器请求IP地址为192.168.1.101的客户端11的租约记录;
[0081]DHCP服务器收到LEASEQUERY消息之后,在租约表中查找IP地址192.168.1.101对应的表项,如图3中所示,DHCP服务器的租约表中包含该表项,则DHCP服务器根据查找到的表项创建包含IP地址192.168.1.101、MAC地址00a0-c0a8_0165和租期86400s(秒)的租约激活消息,在DHCP协议中该租约激活消息为LEASEACTIVE消息,并将创建的LEASEACTIVE消息发送给网关;
[0082]网关收到LEASEACTIVE消息之后,将ARP消息中包含的客户端11的MAC地址00a0-c0a8-0165与LEASEACTIVE消息中包含的MAC地址进行匹配,由于二者一致,则表明客户端11为DHCP服务器授权的合法客户端,网关在ARP表中为该客户端11添加ARP表项,并向客户端11发送包含网关地址的ARP应答。
[0083]对于非法客户端21:
[0084]假设非法客户端21伪造了与客户端11 一致的IP地址192.168.1.101 ;
[0085]当客户端21要发起ARP过程时,客户端21向网关发送用于请求网关地址的ARP消息,该ARP消息中包含客户端21的IP地址192.168.1.101和MAC地址00a0-c0a8-0001 ;
[0086]当网关收到客户端21发送的ARP消息后,根据ARP消息中包含的客户端21的IP地址查找缓存中的ARP表,根据图3中示出的ARP表,则网关未查找到客户端21的ARP表项,网关向DHCP服务器发送LEASEQUERY消息,该LEASEQUERY消息中包含客户端21的IP地址192.168.1.101,用于向DHCP服务器请求IP地址为192.168.1.101的客户端11的租约记录;
[0087]DHCP服务器收到LEASEQUERY消息之后,在租约表中查找IP地址192.168.1.101对应的表项,如图3中所示,DHCP服务器的租约表中包含该表项,则DHCP服务器根据查找到的表项创建包含IP地址192.168.1.101、MAC地址00a0-c0a8_0165和租期86400s (秒)的LEASEACTIVE消息,并将创建的LEASEACTIVE消息发送给网关;
[0088]网关收到LEASEACTIVE消息之后,将ARP消息中包含的客户端21的MAC地址00a0-c0a8-0001与LEASEACTIVE消息中包含的MAC地址进行匹配,由于二者不一致,则表明客户端21不是DHCP服务器授权的合法客户端,网关直接丢客户端21发送的ARP消息。
[0089]另外除了上述图3示出的网络架构外,当本发明实施例应用在虚拟路由器冗余协议(英文为Virtual Router Redundancy Protocol,缩写为VRRP)场景中时,则在图3不出的网络架构基础上,该网关还设置有一个备份网关,假设该网关和其备份网关分别称为网关I和网关2。假设初始时,客户端11通过网关I向DHCP服务器请求分配IP地址时,网关I记录客户端11的ARP表项,该ARP表项中包含客户端11的IP地址192.168.1.101和MAC地址00a0-c0a8-0165 ;后续客户端11又通过网关2向DHCP服务器请求分配IP地址,则网关2会记录客户端11的ARP表项,该ARP表项中包含客户端11的IP地址192.168.1.105和MAC地址00a0-c0a8-0165,并且客户端12通过网关2向DHCP服务器请求分配IP地址时,网关2会记录客户端12的ARP表项,该ARP表项中包含客户端12的IP地址192.168.1.101(即初始时分配给客户端11的IP地址)和MAC地址00a0-c0a8-0002 ;同时,在DHCP服务器的租约表中,记录最近一次为客户端11分配的租约表项,该租约表项中包含客户端11的IP地址192.168.1.105和MAC地址00a0-c0a8_0165,以及为客户端12分配的租约表项,该租约表项中包含客户端12的IP地址192.168.1.101和MAC地址00a0-c0a8_0002。
[0090]对于客户端11:
[0091]此时当客户端11要发起ARP过程时,假设客户端11向网关I发送用于请求网关I地址的ARP消息,该ARP消息中包含客户端11的IP地址192.168.1.105和MAC地址00a0-c0a8_0165 ;
[0092]当网关I收到客户端11发送的ARP消息后,根据ARP消息中包含的客户端11的IP地址查找缓存中的ARP表,则网关I未查找到客户端11的ARP表项(查找到MAC地址,但未查找到IP地址),网关I向DHCP服务器发送LEASEQUERY消息,该LEASEQUERY消息中包含客户端11的IP地址192.168.1.105,用于向DHCP服务器请求IP地址为192.168.1.105的客户端11的租约记录;
[0093]DHCP服务器收到LEASEQUERY消息之后,在租约表中查找IP地址192.168.1.105对应的表项,由于DHCP服务器的租约表中包含该表项,则DHCP服务器根据查找到的表项创建包含 IP 地址 192.168.1.105、MAC 地址 00a0-c0a8_0165 的 LEASEACTIVE 消息,并将创建的LEASEACTIVE消息发送给网关I ;
[0094]网关I收到LEASEACTIVE消息之后,将ARP消息中包含的客户端11的MAC地址00a0-c0a8-0165与LEASEACTIVE消息中包含的MAC地址进行匹配,由于二者一致,则表明客户端11为DHCP服务器授权的合法客户端,网关I根据LEASEACTIVE消息中包含的IP地址和MAC地址在ARP表更新原来记录的客户端11的ARP表项,并向客户端11发送包含网关I地址的ARP应答。
[0095]对于客户端12:
[0096]此时当客户端12要发起ARP过程时,假设客户端12向网关I发送用于请求网关I地址的ARP消息,该ARP消息中包含客户端12的IP地址192.168.1.101和MAC地址00a0_c0a8_0002 ;
[0097]当网关I收到客户端12发送的ARP消息后,根据ARP消息中包含的客户端12的IP地址查找缓存中的ARP表,则网关I未查找到客户端12的ARP表项(未查找到MAC地址,但查找到IP地址),网关I向DHCP服务器发送LEASEQUERY消息,该LEASEQUERY消息中包含客户端12的IP地址192.168.1.101,用于向DHCP服务器请求IP地址为192.168.1.101的客户端12的租约记录;
[0098]DHCP服务器收到LEASEQUERY消息之后,在租约表中查找IP地址192.168.1.101对应的表项,由于DHCP服务器的租约表中包含该表项,则DHCP服务器根据查找到的表项创建包含 IP 地址 192.168.1.101、MAC 地址 00a0-c0a8-0002 的 LEASEACTIVE 消息,并将创建的LEASEACTIVE消息发送给网关I ;
[0099]网关I收到LEASEACTIVE消息之后,将ARP消息中包含的客户端12的MAC地址00a0-c0a8-0002与LEASEACTIVE消息中包含的MAC地址进行匹配,由于二者一致,则表明客户端12为DHCP服务器授权的合法客户端,网关I在ARP表中为该客户端12添加ARP表项,并向客户端12发送包含网关I地址的ARP应答。
[0100]与本发明客户端身份检测方法的实施例相对应,本发明还提供了用于执行该方法的客户端身份检测系统及网关的实施例。
[0101]参见图4,为本发明客户端身份检测系统的实施例框图:
[0102]该系统包括:网关410和DHCP服务器420。
[0103]其中,所述网关410,用于接收客户端发送的ARP消息,所述ARP消息中包含发送方IP地址和发送方MAC地址,如果所述网关410的ARP表中的每一个ARP表项包含的IP地址和MAC地址均与所述发送方IP地址和发送方MAC地址不同,向所述DHCP服务器420发送查询请求消息,所述查询请求消息中包含所述发送方IP地址;
[0104]所述DHCP服务器420,用于根据所述发送方IP地址从所述DHCP服务器420的租约表中查找到的与所述发送方IP地址对应的MAC地址,并将包含所述MAC地址的查询结果消息发送给所述网关410;
[0105]所述网关410,还用于根据所述查询结果消息确定所述客户端的合法性。
[0106]在本实施例的一个实现方式中,所述网关410,具体用于如果所述查询结果消息中携带的MAC地址与所述发送方MAC地址一致,则确定所述客户端为合法客户端,如果所述查询结果消息中携带的MAC地址与所述发送方MAC地址不一致,则确定所述客户端为非法客户端。
[0107]在本实施例的另一个实现方式中,所述网关410,还用于在所述ARP表中添加ARP表项,所述ARP表项中包括所述查询结果消息中携带的IP地址和MAC地址。
[0108]在本实施例的另一个实现方式中,所述网关410,还用于当所述客户端为非法客户端时,丢弃所述ARP消息。
[0109]在本实施例的另一个实现方式中,所述网关410,还用于如果所述网关410的ARP表中存在一个ARP表项包含的IP地址和MAC地址与所述发送方IP地址和发送方MAC地址相同,则确定所述客户端为合法客户端。
[0110]参见图5,为本发明网关的一个实施例框图:
[0111]该网关包括:第一接收单元510、判断单元520、发送单元530、第二接收单元540和检测单元550。
[0112]其中,第一接收单元510,用于接收客户端发送的ARP消息,所述ARP消息中包含发送方IP地址和发送方MAC地址;
[0113]判断单元520,用于判断所述网关的ARP表中的每一个ARP表项包含的IP地址和MAC地址是否均与所述第一接收单元510接收到的ARP消息中包含的发送方IP地址和发送方MAC地址不同;
[0114]发送单元530,用于如果所述判断单元520的判断结果为所述网关的ARP表中的每一个ARP表项包含的IP地址和MAC地址均与所述第一接收单元接收到的ARP消息中包含的发送方IP地址和发送方MAC地址不同,则向DHCP服务器发送查询请求消息,所述查询请求消息中包含所述发送方IP地址;
[0115]第二接收单元540,用于接收所述DHCP服务器发送的查询结果消息,所述查询结果消息中包含所述DHCP服务器根据所述发送方IP地址从所述DHCP服务器的租约表中查找到的与所述发送方IP地址对应的MAC地址;
[0116]检测单元550,用于根据所述第二接收单元540接收到的查询结果消息确定所述客户端的合法性。
[0117]在本实施例的一个实现方式中,所述检测单元550,具体用于如果所述第二接收单元540接收到的查询结果消息中携带的MAC地址与所述发送方MAC地址一致,则确定所述客户端为合法客户端,如果所述第二接收单元540接收到的查询结果消息中携带的MAC地址与所述发送方MAC地址不一致,则确定所述客户端为非法客户端。
[0118]参见图6,为本发明网关的另一个实施例框图:[0119]该网关包括:第一接收单元610、判断单元620、发送单元630、第二接收单元640和检测单元650、添加单元660和丢弃单元670。
[0120]其中,第一接收单元610,用于接收客户端发送的ARP消息,所述ARP消息中包含发送方IP地址和发送方MAC地址;
[0121]判断单元620,用于判断所述网关的ARP表中的每一个ARP表项包含的IP地址和MAC地址是否均与所述第一接收单元610接收到的ARP消息中包含的发送方IP地址和发送方MAC地址不同;
[0122]发送单元630,用于如果所述判断单元620的判断结果为所述网关的ARP表中的每一个ARP表项包含的IP地址和MAC地址均与所述第一接收单元接收到的ARP消息中包含的发送方IP地址和发送方MAC地址不同,则向DHCP服务器发送查询请求消息,所述查询请求消息中包含所述发送方IP地址;
[0123]第二接收单元640,用于接收所述DHCP服务器发送的查询结果消息,所述查询结果消息中包含所述DHCP服务器根据所述发送方IP地址从所述DHCP服务器的租约表中查找到的与所述发送方IP地址对应的MAC地址;
[0124]所述检测单元650,用于根据所述第二接收单元640接收到的查询结果消息确定所述客户端的合法性;
[0125]添加单兀660,用于在所述ARP表中添加ARP表项,所述ARP表项中包括所述第二接收单元640接收到的所述查询结果消息中携带的IP地址和MAC地址;
[0126]丢弃单元670,用于当所述检测单元650确定所述客户端为非法客户端时,丢弃所述第一接收单元610接收到的ARP消息。
[0127]在本实施例的一个实现方式中,所述检测单元650,具体用于如果所述第二接收单元640接收到的查询结果消息中携带的MAC地址与所述发送方MAC地址一致,则确定所述客户端为合法客户端,如果所述第二接收单元接收到的查询结果消息中携带的MAC地址与所述发送方MAC地址不一致,则确定所述客户端为非法客户端。
[0128]参见图7,为本发明网关的另一个实施例框图:
[0129]该网关包括:客户端端口 710、网络端口 720、存储器730、处理器740及总线750。
[0130]其中,客户端端口 710、网络端口 720、存储器730和处理器740通过总线750相连。
[0131]所述存储器730中存储ARP表;
[0132]客户端端口 710接收客户端发送的ARP消息,所述ARP消息中包含发送方IP地址和发送方MAC地址;
[0133]所述处理器740判断如果存储器730存储的ARP表中的每一个ARP表项包含的IP地址和MAC地址均与所述ARP消息中的发送方IP地址和发送方MAC地址不同,则通过网络端口 720向DHCP服务器发送查询请求消息,所述查询请求消息中包含所述发送方IP地址;判断如果存储器730存储的ARP表中存在一个ARP表项包含的IP地址和MAC地址与所述发送方IP地址和发送方MAC地址相同,则确定所述客户端为合法客户端;当获得网络端口720接收的DHCP服务器发送的查询结果消息后,根据所述查询结果消息确定所述客户端的合法性;
[0134]所述网络端口 720接收所述DHCP服务器发送的查询结果消息,所述查询结果消息中包含所述DHCP服务器根据所述发送方IP地址从所述DHCP服务器的租约表中查找到的与所述发送方IP地址对应的MAC地址。
[0135]在本实施例的一个实现方式中,所述处理器740可以判断如果所述查询结果消息中携带的MAC地址与所述发送方MAC地址一致,则确定所述客户端为合法客户端,如果所述查询结果消息中携带的MAC地址与所述发送方MAC地址不一致,则确定所述客户端为非法
客户端。
[0136]在本实施例的另一个实现方式中,所述处理器740可以在所述存储器730存储的ARP表中添加ARP表项,所述ARP表项中包括所述查询结果消息中携带的IP地址和MAC地址。
[0137]在本实施例的另一个实现方式中,所述处理器740可以当确定所述客户端为非法客户端时,丢弃所述ARP消息。
[0138]由上述实施例可见,网关接收客户端发送的包含发送方IP地址和发送方MAC地址的ARP消息,如果网关的ARP表中的每一个ARP表项包含的IP地址和MAC地址均与发送方IP地址和发送方MAC地址不同,则向DHCP服务器发送包含发送方IP地址的查询请求消息,接收DHCP服务器发送的查询结果消息,该查询结果消息中包含DHCP服务器根据发送方IP地址从DHCP服务器的租约表中查找到的与发送方IP地址对应的MAC地址,根据查询结果消息确定客户端的合法性。应用本发明实施例,当DHCP服务器为客户端分配过IP地址,但网关中未记录该客户端的地址信息时,则网关可以通过与DHCP服务器交互,根据DHCP服务器中记录的地址信息完成客户端身份的检测,从而无需客户端在ARP请求过程中重复向DHCP服务器请求IP地址,由此降低了请求过程的繁琐性,相应提高了网络性能。
[0139]本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如R0M/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
[0140]本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0141]以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的保护范围之内所作的修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种客户端身份检测方法,其特征在于,所述方法包括: 网关接收客户端发送的地址解析协议ARP消息,所述ARP消息中包含发送方互联网协议IP地址和发送方介质访问控制层MAC地址; 如果所述网关的ARP表中的每一个ARP表项包含的IP地址和MAC地址均与所述发送方IP地址和发送方MAC地址不同,则向动态主机设置协议DHCP服务器发送查询请求消息,所述查询请求消息中包含所述发送方IP地址; 接收所述DHCP服务器发送的查询结果消息,所述查询结果消息中包含所述DHCP服务器根据所述发送方IP地址从所述DHCP服务器的租约表中查找到的与所述发送方IP地址对应的MAC地址; 根据所述查询结果消息确定所述客户端的合法性。
2.根据权利要求1所述的方法,其特征在于,所述根据所述查询结果消息确定所述客户端的合法性,包括: 如果所述查询结果消息中携带的MAC地址与所述发送方MAC地址一致,则确定所述客户端为合法客户端,如果所述查询结果消息中携带的MAC地址与所述发送方MAC地址不一致,则确定所述客户端为非法客户端。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括: 所述网关在所述ARP表中添加ARP表项,所述ARP表项中包括所述查询结果消息中携带的IP地址和MAC地址 。
4.根据权利要求1至3任意一项所述的方法,其特征在于,所述方法还包括:当所述客户端为非法客户端时,所述网关丢弃所述ARP消息。
5.根据权利要求1至4任意一项所述的方法,其特征在于,所述方法还包括: 如果所述网关的ARP表中存在一个ARP表项包含的IP地址和MAC地址与所述发送方IP地址和发送方MAC地址相同,则确定所述客户端为合法客户端。
6.一种网关,其特征在于,所述网关包括: 第一接收单元,用于接收客户端发送的ARP消息,所述ARP消息中包含发送方IP地址和发送方MAC地址; 判断单元,用于判断所述网关的ARP表中的每一个ARP表项包含的IP地址和MAC地址是否均与所述第一接收单元接收到的ARP消息中包含的发送方IP地址和发送方MAC地址不同; 发送单元,用于如果所述判断单元的判断结果为所述网关的ARP表中的每一个ARP表项包含的IP地址和MAC地址均与所述第一接收单元接收到的ARP消息中包含的发送方IP地址和发送方MAC地址不同,则向DHCP服务器发送查询请求消息,所述查询请求消息中包含所述发送方IP地址; 第二接收单元,用于接收所述DHCP服务器发送的查询结果消息,所述查询结果消息中包含所述DHCP服务器根据所述发送方IP地址从所述DHCP服务器的租约表中查找到的与所述发送方IP地址对应的MAC地址; 检测单元,用于根据所述第二接收单元接收到的查询结果消息确定所述客户端的合法性。
7.根据权利要求6所述的网关,其特征在于,所述检测单元,具体用于如果所述第二接收单元接收到的查询结果消息中携带的MAC地址与所述发送方MAC地址一致,则确定所述客户端为合法客户端,如果所述第二接收单元接收到的查询结果消息中携带的MAC地址与所述发送方MAC地址不一致,则确定所述客户端为非法客户端。
8.根据权利要求6或7所述的网关,其特征在于,所述网关还包括: 添加单元,用于在所述ARP表中添加ARP表项,所述ARP表项中包括所述第二接收单元接收到的所述查询结果消息中携带的IP地址和MAC地址。
9.根据权利要求6至8任意一项所述的网关,其特征在于,所述网关还包括: 丢弃单元,用于当所述检测单元确定所述客户端为非法客户端时,丢弃所述第一接收单元接收到的ARP消息。
10.根据权利要求6至9任意一项所述的网关,其特征在于, 所述检测单元,还用于如果所述判断单元的判断结果为所述网关的ARP表中存在一个ARP表项包含的IP地址和MAC地址与所述第一接收单元接收到的ARP消息中包含的发送方IP地址和发送方MAC地 址相同,则确定所述客户端为合法客户端。
【文档编号】H04L12/66GK103795584SQ201210424018
【公开日】2014年5月14日 申请日期:2012年10月30日 优先权日:2012年10月30日
【发明者】张帅 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1