一种地址解析方法、装置及电子设备和存储介质与流程

文档序号:20439234发布日期:2020-04-17 22:17阅读:102来源:国知局
一种地址解析方法、装置及电子设备和存储介质与流程

本申请涉及计算机技术领域,更具体地说,涉及一种地址解析方法、装置及一种电子设备和一种计算机可读存储介质。



背景技术:

dns(中文全称:域名系统,英文全称:domainnamesystem)服务器作为将域名和ip(中文全称:互联网协议,英文全称:internetprotocol)地址相互映射的一个分布式数据库,dns服务器中保存有域名和ip地址之间的映射关系。因此当用户需要通过客户端获取网络服务时,只需要在客户端中输入能够提供相应网络服务的服务器的域名即可,而无需记忆复杂的ip地址,从而能够使用户通过客户端方便地访问相应地服务器并获取所需的网络服务。

在相关技术中大多采用一对多的方案,即在路由器和dns服务器之间创建一个会话通道,所有的地址解析请求均通过该会话通道发送至dns服务器上,再利用该会话通道监听回复的地址解析结果报文。

由于dns服务器对dns的劫持和攻击非常的严格,采用上述方案即意味着本地的报文源端口保持不变,目的端口为53,如果长时间高强度的获取网络服务,dns服务器会在一定几率上误判为dns攻击报文,将不再回复dns正常请求报文,导致用户网络服务不能正常进行。

因此,如何减少dns服务器的误判,保证网络服务正常是本领域技术人员需要解决的技术问题。



技术实现要素:

本申请的目的在于提供一种地址解析方法、装置及一种电子设备和一种计算机可读存储介质,减少dns服务器的误判,保证网络服务正常。

为实现上述目的,本申请提供了一种地址解析方法,包括:

通过目标lan端口接收目标设备的地址解析请求,创建所述地址解析请求对应的会话通道;

利用所述会话通道将所述地址解析请求发送至dns服务器;

通过所述会话通道接收所述dns服务器的地址解析结果,并将所述地址解析结果返回至所述目标设备。

其中,所述创建所述地址解析请求对应的会话通道之前,还包括:

解析所述地址解析请求得到目标域名,并判断缓存中是否信息所述目标域名对应的目标ip地址;

若是,则直接将所述目标ip地址返回至所述目标设备;

若否,则执行所述创建所述地址解析请求对应的会话通道的步骤。

其中,所述利用所述会话通道将所述地址解析请求发送至dns服务器,包括:

判断所述目标域名是否为回环地址;

若是,则通过internet端口并利用所述会话通道将所述地址解析请求发送至所述dns服务器;

若否,则确定所述目标lan端口对应的目标wan端口,通过所述目标wan端口并利用所述会话通道将所述地址解析请求发送至所述dns服务器。

其中,将所述地址解析结果返回至所述目标设备之前,还包括:

将所述地址解析请求中的目标域名与所述地址解析结果中的目标ip地址的对应关系存入缓存。

其中,还包括:

当所述会话通道超过预设时间未接收到所述地址解析结果时,终止所述会话通道。

其中,所述通过目标lan端口接收目标设备的地址解析请求之后,还包括:

将所述地址解析请求的封装协议类型确定为第一协议类型;

解析所述地址解析请求以便确定所述地址解析请求的内容协议类型,将所述内容协议类型确定为第二协议类型;

判断所述第一协议类型与所述第二协议类型是否一致;

若否,则将所述地址解析请求的封装协议类型转换为所述第二协议类型。

其中,将所述地址解析结果返回至所述目标设备,包括:

将所述会话通道中传输的地址解析请求的封装协议类型确定为第三协议类型;

将所述地址解析结果的封装协议类型确定为第四协议类型,判断所述第三协议类型与所述第四协议类型是否一致;

若是,则将所述地址解析结果返回至所述地址解析请求对应的所述目标设备。

为实现上述目的,本申请提供了一种地址解析装置,包括:

创建模块,用于通过目标lan端口接收目标设备的地址解析请求,创建所述地址解析请求对应的会话通道;

发送模块,用于利用所述会话通道将所述地址解析请求发送至dns服务器;

接收模块,用于通过所述会话通道接收所述dns服务器的地址解析结果,并将所述地址解析结果返回至所述目标设备。

为实现上述目的,本申请提供了一种电子设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如上述地址解析方法的步骤。

为实现上述目的,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述地址解析方法的步骤。

通过以上方案可知,本申请提供的一种地址解析方法,包括:通过目标lan端口接收目标设备的地址解析请求,创建所述地址解析请求对应的会话通道;利用所述会话通道将所述地址解析请求发送至dns服务器;通过所述会话通道接收所述dns服务器的地址解析结果,并将所述地址解析结果返回至所述目标设备。

本申请提供的地址解析方法采用多对对的方案,即为每一个地址解析请求分别创建一个会话通道,每个地址解析请求分别通过各自对应的会话通道发送至dns服务器,也就是说每个地址解析请求的源端口在路由器中随机选取,在大量地址解析请求发送至dns服务器的情况下,由于所有的地址解析请求的源端口不完全相同,dns服务器不会误判为dns攻击,保证了网络服务的通畅。本申请还公开了一种地址解析装置及一种电子设备和一种计算机可读存储介质,同样能实现上述技术效果。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:

图1为根据一示例性实施例示出的一种地址解析方法的流程图;

图2为根据一示例性实施例示出的另一种地址解析方法的流程图;

图3为本申请提供的一种应用实施例的流程图;

图4为根据一示例性实施例示出的一种地址解析装置的结构图;

图5为根据一示例性实施例示出的一种电子设备的结构图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请实施例公开了一种地址解析方法,减少dns服务器的误判,保证网络服务正常。

参见图1,根据一示例性实施例示出的一种地址解析方法的流程图,如图1所示,包括:

s101:通过目标lan端口接收目标设备的地址解析请求,创建所述地址解析请求对应的会话通道;

本实施例的执行主体为路由器,该路由器中包括lan端口和wan端口,lan端口用于接收设备的地址解析请求,wan端口用于接收dns服务器发送的地址解析结果。

在本步骤中,目标设备通过目标lan端口向路由器发送地址解析请求,该地址解析请求中至少包括目标域名。在路由器与dns服务器之间创建该地址解析请求对应的会话通道,后续步骤中地址解析请求和地址解析结果均通过该会话通道进行传输。

可以理解的是,为了提高效率,在接收到地址解析请求时,可以首先查看缓存。即所述创建所述地址解析请求对应的会话通道之前,还包括:解析所述地址解析请求得到目标域名,并判断缓存中是否信息所述目标域名对应的目标ip地址;若是,则直接将所述目标ip地址返回至所述目标设备;若否,则执行所述创建所述地址解析请求对应的会话通道的步骤。在具体实施中,在接收到地址解析请求时,对该地址解析请求进行解析,将其内容记录到结构体中,得到地址解析请求中的目标域名,查看缓存中是否存在地址解析结果,即是否存在该目标域名对应的目标ip地址,若存在,则直接返回,若不存在则穿件该地址解析请求对应的会话通道,以便向dns服务器请求地址解析结果。

s102:利用所述会话通道将所述地址解析请求发送至dns服务器;

在本步骤中,可以对从目标设备中接收到的地址解析请求进行封装重组,以预设格式的请求报文通过上一步骤创建的会话通道发送至dns服务器。可以理解的是,每个会话通道用于传输一次会话,即将地址解析请求发送至dns服务器,并监听dns服务器的回复报文,因此上述的请求报文和回复报文中可以包括本次会话的会话标识。

优选的,本步骤包括:判断所述目标域名是否为回环地址;若是,则通过internet端口并利用所述会话通道将所述地址解析请求发送至所述dns服务器;若否,则确定所述目标lan端口对应的目标wan端口,通过所述目标wan端口并利用所述会话通道将所述地址解析请求发送至所述dns服务器。在具体实施中,在接收到地址解析请求时,对该地址解析请求进行解析,得到地址解析请求中的目标域名,判断其是否是回环地址,若是,则认为是系统函数发送的请求,直接通过internet接口发送请求报文,若否,则通过目标lan端口绑定的目标wan端口发送请求报文。如果该目标lan端口没有绑定的目标wan端口,默认从internet连接接口发送请求报文。

s103:通过所述会话通道接收所述dns服务器的地址解析结果,并将所述地址解析结果返回至所述目标设备。

在本步骤中,dns服务器接收到请求报文后对其中的目标域名进行解析,得到该目标域名对应的目标ip地址,将其封装为回复报文,即本步骤中的地址解析结果。由于请求报文中包括本次会话的会话标识,dns服务器可以基于该会话标识确定传输回复报文的会话通道,通过该会话通道将地址解析结果返回至路由器。路由器通过会话通道监听dns服务器的地址解析结果,将其返回至目标设备。

优选的,将所述地址解析结果返回至所述目标设备之前,还包括:将所述地址解析请求中的目标域名与所述地址解析结果中的目标ip地址的对应关系存入缓存。在具体实施中,接收到dns服务器的地址解析结果后,将其存入缓存,以便下次请求解析目标域名时,直接返回地址解析结果,提高效率。

优选的,本实施例还包括:当所述会话通道超过预设时间未接收到所述地址解析结果时,终止所述会话通道。在具体实施中,增加了无效会话通道的回收机制,超时的会话通道将被终止,避免负荷大幅上升,提高了网络的解析地址效率,网页的刷新速度加快,提升了用户体验。

本申请实施例提供的地址解析方法采用多对对的方案,即为每一个地址解析请求分别创建一个会话通道,每个地址解析请求分别通过各自对应的会话通道发送至dns服务器,也就是说每个地址解析请求的源端口在路由器中随机选取,在大量地址解析请求发送至dns服务器的情况下,由于所有的地址解析请求的源端口不完全相同,dns服务器不会误判为dns攻击,保证了网络服务的通畅。

在相关技术中,部分设备的操作系统(例如windows)会将浏览器的请求同时发送ipv4和ipv6的请求报文,此时ipv4和ipv6的请求报文中会话标识相同,dns服务器发送的ipv4和ipv6的回复报文会存在一定的先后顺序,可能会将导致ipv6的封装内容放进了ipv4的结构体中,或者ipv4的封装内容放进了ipv6的结构体中,导致地址解析结果存入缓存中发生错误,最终无法访问互联网服务。因此,则本实施例中通过对地址解析请求进行重新封装,以统一报文的对应关系。具体的:

参见图2,根据一示例性实施例示出的另一种地址解析方法的流程图,如图2所示,包括:

s201:通过目标lan端口接收目标设备的地址解析请求;

s202:将所述地址解析请求的封装协议类型确定为第一协议类型;

s203:解析所述地址解析请求以便确定所述地址解析请求的内容协议类型,将所述内容协议类型确定为第二协议类型;

s204:判断所述第一协议类型与所述第二协议类型是否一致;若是,则进入s206;若否,则进入s205;

s205:将所述地址解析请求的封装协议类型转换为所述第二协议类型;

在本实施例中,当接收到地址解析请求时,确定其封装协议类型和内容协议类型,若封装协议类型与内容协议类型不一致,则对地址解析请求进行重新封装,即以内容协议类型的协议类型对地址解析请求进行重新封装。具体的,若地址解析请求的封装协议类型为ipv4,即使用ipv4的地址发送给目的地址,该地址解析请求的内容封装协议类型若为ipv6,则将该地址解析请求重新封装为ipv4。若地址解析请求的封装协议类型为ipv6,即使用ipv6的地址发送给目的地址,该地址解析请求的内容封装协议类型若为ipv4,则将该地址解析请求重新封装为ipv4。

s206:利用所述会话通道将所述地址解析请求发送至dns服务器;

s207:通过所述会话通道接收所述dns服务器的地址解析结果;

s208:将所述会话通道中传输的地址解析请求的封装协议类型确定为第三协议类型;

s209:将所述地址解析结果的封装协议类型确定为第四协议类型,判断所述第三协议类型与所述第四协议类型是否一致;若是,则进入s210;

在具体实施中,当通过所述会话通道接收到地址解析结果即回复报文时,确定该回复报文的会话标识,遍历所有会话,通过该会话标识查询到该会话通道中传输的地址解析请求即请求报文,若请求报文和回复报文的封装协议类型一致,则检查回复报文中的目标ip地址是否合法,合法则返回至目标设备,若请求报文和回复报文的封装协议类型不一致,则丢弃。

s210:将所述地址解析结果返回至所述地址解析请求对应的所述目标设备。

由此可见,本实施例在发送双封装格式的情况下,对请求报文的封装协议类型和内容协议类型进行统一,即对在ipv6通道发送的ipv4的请求报文和在ipv4通道发送的ipv6的请求报文进行重新封装。另外,检查回复报文与其对应的请求报文的封装协议类型一致,一致则返回,可见无论返回的报文先后顺序,都能准确的将对应的报文的解析地址存入缓存。

下面介绍本申请提供的一种应用实施例,如图3所示,可以包括以下步骤:

步骤一:建立dns进程,进程中主要工作就是监听事件信号,同时遍历dns会话。

步骤二:根据不同的信号进行判断:分为进程信号、lan侧ipv4信号、lan侧ipv6信号、wan侧ipv4信号、wan侧ipv6信号。每个信号有对应的不同的处理:

步骤三:进程信号;该信号为进程间通信的请求,在接受到信号时,程序需要处理是从哪个进程传递过来的,是否需要回复,是否携带进程消息内容。然后根据这些关键信息回复进程内容。该功能可以根据不同的厂家的软件架构来进行适配。

步骤四:lan侧ipv4信号;该信号为lan侧端接收到ipv4的dns封装报文发送的信号,即该消息是使用ipv4格式来封装的,最后会使用ipv4的地址发送给目的地址。首先需要检查封装的内容,如果内容是请求的ipv6的dns报文,就将它的报文封装格式改为ipv6准备进行发送;如果不符合条件,转换操作不执行,在发送之前需要解析出其中待访问的域名,如果在缓存中找到,那么直接回复到lan侧ip地址;如果没有找到缓存信息,先判断是否是回环地址,如果是,则认为是系统函数发送的请求,如某些智能平台地址解析(tr069地址解析),直接找到internet接口发送请求;如果不是回环地址,找到lan侧绑定的wan连接接口发送请求,如果没有找到绑定的wan连接接口,默认从internet连接接口发送。

步骤五:lan侧ipv6信号;该信号为lan侧端接收到ipv6的dns封装报文发送的信号,即该消息是使用ipv6格式来封装的,最后会使用ipv6的地址发送给目的地址。和ipv4处理方式类似,需要在检查封装的内容时,如果内容是请求的ipv4的dns报文,就将它的报文封装格式改为ipv4准备进行发送;其余的过程和处理lan侧的过程相同。

步骤六:wan侧ipv4信号,该信号为wan侧端接收到ipv4的dns封装报文发送的信号。首先遍历所有的dns会话,根据会话id匹配对应的会话,如果找到检查会话中的协议类型是否和回复的报文的协议类型是否相同,如果不同则丢弃;如果相同,解析出其中的ipv4地址,检查地址是否合法,如果不合法丢弃;如果合法存入缓存中,并发送给lan侧接受。

步骤七:wan侧ipv6信号,该信号为wan侧端接收到ipv6的dns封装报文发送的信号。判断的过程和ipv4的过程一致,在解析地址,判地址合法性等步骤上需要符合自身的算法。

步骤八:如果新建的dns通道超时5秒没有回应,终止该会话通道,防止多个socket等待占用cpu大量资源。

下面对本申请实施例提供的一种地址解析装置进行介绍,下文描述的一种地址解析装置与上文描述的一种地址解析方法可以相互参照。

参见图4,根据一示例性实施例示出的一种地址解析装置的结构图,如图4所示,包括:

创建模块401,用于通过目标lan端口接收目标设备的地址解析请求,创建所述地址解析请求对应的会话通道;

发送模块402,用于利用所述会话通道将所述地址解析请求发送至dns服务器;

接收模块403,用于通过所述会话通道接收所述dns服务器的地址解析结果,并将所述地址解析结果返回至所述目标设备。

本申请实施例提供的地址解析装置采用多对对的方案,即为每一个地址解析请求分别创建一个会话通道,每个地址解析请求分别通过各自对应的会话通道发送至dns服务器,也就是说每个地址解析请求的源端口在路由器中随机选取,在大量地址解析请求发送至dns服务器的情况下,由于所有的地址解析请求的源端口不完全相同,dns服务器不会误判为dns攻击,保证了网络服务的通畅。

在上述实施例的基础上,作为一种优选实施方式,所述创建模块401包括:

第一接收单元,用于通过目标lan端口接收目标设备的地址解析请求;

第一判断单元,用于解析所述地址解析请求得到目标域名,并判断缓存中是否信息所述目标域名对应的目标ip地址;若是,则直接将所述目标ip地址返回至所述目标设备;若否,则启动创建单元的工作流程;

创建单元,用于创建所述地址解析请求对应的会话通道。

若否,则执行所述创建所述地址解析请求对应的会话通道的步骤。

在上述实施例的基础上,作为一种优选实施方式,所述发送模块402包括:

第二判断单元,用于判断所述目标域名是否为回环地址;若是,则第一发送单元的工作流程;若否,则启动第二发送单元的工作流程;

第一发送单元,用于通过internet端口并利用所述会话通道将所述地址解析请求发送至所述dns服务器;

第二发送单元,用于确定所述目标lan端口对应的目标wan端口,通过所述目标wan端口并利用所述会话通道将所述地址解析请求发送至所述dns服务器。

在上述实施例的基础上,作为一种优选实施方式,还包括:

存储模块,用于将所述地址解析请求中的目标域名与所述地址解析结果中的目标ip地址的对应关系存入缓存。

在上述实施例的基础上,作为一种优选实施方式,还包括:

终止模块,用于当所述会话通道超过预设时间未接收到所述地址解析结果时,终止所述会话通道。

在上述实施例的基础上,作为一种优选实施方式,还包括:

第一确定模块,用于将所述地址解析请求的封装协议类型确定为第一协议类型;

第二确定模块,用于解析所述地址解析请求以便确定所述地址解析请求的内容协议类型,将所述内容协议类型确定为第二协议类型;

对比模块,用于判断所述第一协议类型与所述第二协议类型是否一致;若否,则将所述地址解析请求的封装协议类型转换为所述第二协议类型。

在上述实施例的基础上,作为一种优选实施方式,所述接收模块403包括:

第二接收单元,用于通过所述会话通道接收所述dns服务器的地址解析结果;

第一确定单元,用于将所述会话通道中传输的地址解析请求的封装协议类型确定为第三协议类型;

第二确定单元,用于将所述地址解析结果的封装协议类型确定为第四协议类型;

对比单元,用于判断所述第三协议类型与所述第四协议类型是否一致;若是,则将所述地址解析结果返回至所述地址解析请求对应的所述目标设备。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

本申请还提供了一种电子设备,参见图5,本申请实施例提供的一种电子设备500的结构图,如图5所示,可以包括处理器11和存储器12。该电子设备500还可以包括多媒体组件13,输入/输出(i/o)接口14,以及通信组件15中的一者或多者。

其中,处理器11用于控制该电子设备500的整体操作,以完成上述的地址解析方法中的全部或部分步骤。存储器12用于存储各种类型的数据以支持在该电子设备500的操作,这些数据例如可以包括用于在该电子设备500上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器12可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(staticrandomaccessmemory,简称sram),电可擦除可编程只读存储器(electricallyerasableprogrammableread-onlymemory,简称eeprom),可擦除可编程只读存储器(erasableprogrammableread-onlymemory,简称eprom),可编程只读存储器(programmableread-onlymemory,简称prom),只读存储器(read-onlymemory,简称rom),磁存储器,快闪存储器,磁盘或光盘。多媒体组件13可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器12或通过通信组件15发送。音频组件还包括至少一个扬声器,用于输出音频信号。i/o接口14为处理器11和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件15用于该电子设备500与其他设备之间进行有线或无线通信。无线通信,例如wi-fi,蓝牙,近场通信(nearfieldcommunication,简称nfc),2g、3g或4g,或它们中的一种或几种的组合,因此相应的该通信组件15可以包括:wi-fi模块,蓝牙模块,nfc模块。

在一示例性实施例中,电子设备500可以被一个或多个应用专用集成电路(applicationspecificintegratedcircuit,简称asic)、数字信号处理器(digitalsignalprocessor,简称dsp)、数字信号处理设备(digitalsignalprocessingdevice,简称dspd)、可编程逻辑器件(programmablelogicdevice,简称pld)、现场可编程门阵列(fieldprogrammablegatearray,简称fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的地址解析方法。

在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述地址解析方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器12,上述程序指令可由电子设备500的处理器11执行以完成上述的地址解析方法。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

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