一种VPN网络中使设备获得域名解析结果的方法及装置与流程

文档序号:14655455发布日期:2018-06-12 03:05阅读:863来源:国知局

本申请涉及通信技术领域,尤其涉及一种VPN网络中使设备获得域名解析结果的方法及装置。



背景技术:

DNS(Domain Name System,域名系统)是一个将网络中主机的域名和IP地址相互映射的分布式数据库,通过便于人记忆、输入的域名与便于计算机处理的IP地址间的映射关系,使人们更方便地访问网络。域名到IP地址的映射存储在DNS服务器中,通过DNS服务器中的映射确定指定域名对应的IP地址的过程,即为域名解析。在使用VPN(Virtual Private Network,虚拟专用网络)的电子设备接入VPN网络后,通常可以为设备中的本地网卡配置VPN DNS服务器地址,设备要访问的VPN内网资源,首先需要通过域名解析获取对应的内网IP地址,即需要由VPN DNS服务器将域名解析为IP地址,并将包括该IP地址的域名解析结果发送给设备,之后设备便可通过该IP地址访问内网资源。

现有技术中,接入VPN网络的设备需要获取内网域名对应的内网IP地址时,首先向VPN DNS服务器发起域名解析请求,再通过服务器返回的域名解析响应获得需要的IP地址。但是,域名解析请求与响应在该设备与VPN DNS服务器之间的传输往往需要经过多台中间设备,导致该设备发出请求到接收到响应之间耗时较长。甚至在某些设备中,如果VPN DNS服务器返回响应的时间过长,设备便会请求公网DNS服务器进行域名解析,如果公网DNS服务器的响应先到达该设备,该设备只会根据先到达的结果访问内网资源,并导致访问错误。



技术实现要素:

有鉴于此,本申请提供一种VPN网络中使设备获得域名解析结果的方法及装置,技术方案如下:

一种VPN网络中使设备获得域名解析结果的方法,其特征在于,该方法应用于VPN客户端,所述VPN客户端内置或连接于接入所述VPN网络的设备,该方法包括:

在接收到所述设备的域名解析请求发送通知的情况下,在本地查找所述域名解析请求对应的域名解析结果;

在查找到所述域名解析请求对应的域名解析结果的情况下,根据该域名解析结果回应所述发送通知;

在未查找到所述域名解析请求对应的域名解析结果的情况下,向VPN DNS服务器发送所述域名解析请求;

接收VPN DNS服务器返回的域名解析响应,并根据所述域名解析响应获得域名解析结果;

存储该域名解析结果,并建立所述域名解析请求与该域名解析结果的对应关系;

根据该域名解析结果回应所述发送通知。

一种VPN网络中使设备获得域名解析结果的装置,其特征在于,所述装置应用于VPN客户端,所述VPN客户端内置或连接于接入所述VPN网络的设备,该装置包括:

结果查找模块,用于在接收到所述设备的域名解析请求发送通知的情况下,在本地查找所述域名解析请求对应的域名解析结果;

通知回应模块,用于在查找到所述域名解析请求对应的域名解析结果的情况下,根据该域名解析结果回应所述发送通知;

请求发送模块,用于在未查找到所述域名解析请求对应的域名解析结果的情况下,向VPN DNS服务器发送所述域名解析请求;

结果获得模块,用于接收VPN DNS服务器返回的域名解析响应,并根据所述域名解析响应获得域名解析结果;

结果存储模块,用于存储该域名解析结果,并建立所述域名解析请求与该域名解析结果的对应关系;

所述通知回应模块,还用于根据该域名解析结果回应所述发送通知。

本申请所提供的技术方案,接入VPN网络的设备通过设备内部或与设备连接的VPN客户端,代理发送域名解析请求及接收域名解析响应,设备需要发送域名解析请求时即向VPN客户端发出发送通知,VPN客户端首先在本地查找是否已经缓存过对应的域名解析结果,如果未查找到则向VPN DNS服务器发送域名解析请求,根据服务器返回的域名解析响应获取域名解析结果,并发送到该设备,同时更新本地存储的域名解析结果,以便该设备再次发出相同通知时,客户端可以直接根据本地查找结果回应设备,从而提高设备获得域名解析结果的效率。并且由于VPN客户端只会向VPN DNS服务器发送域名解析请求,而不会向公网DNS服务器发送,因此可以避免因错误的域名解析造成访问错误。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。此外,本申请中的任一实施例并不需要达到上述的全部效果。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。

图1是VPN网络中使设备获得域名解析结果的一种过程示意图;

图2是本申请实施例VPN网络中使设备获得域名解析结果的方法的交互流程示意图;

图3是本申请实施例VPN网络中使设备获得域名解析结果的一种过程示意图;

图4是本申请实施例VPN网络中使设备获得域名解析结果的装置的一种结构示意图;

图5是本申请实施例VPN网络中使设备获得域名解析结果的装置的另一种结构示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

如图1所示,为接入VPN网络的电子设备访问内网资源时,获得内网域名的解析结果的过程示意图。由于该设备访问内网资源所需要的是内网IP地址,因此需要向存储有内网域名与IP地址映射关系的VPN DNS服务器发出域名解析请求,VPN DNS服务器在确定请求中的内网域名对应的内网IP地址、或者确定该域名无对应的内网IP地址后,向该设备返回域名解析响应,域名解析响应中包括所确定内网IP地址、或者域名解析失败的提示,可以认为服务器返回的IP地址或失败提示即为域名解析结果,也可以认为包括二者的域名解析响应报文、或者其他包括二者的内容为域名解析结果,在本申请实施例中对于域名解析结果具体指代的内容不做限定。

获得域名解析结果后,该设备就可以通过内网IP访问资源、或者做出其他相应处理。但是,接入VPN网络的设备,通常并非直接连接到VPN DNS服务器,二者之间传输域名解析请求与响应时,往往需要经过多台中间设备。因此,该设备向VPN DNS服务器发出域名解析请求后,往往需要较长的时间,才能接收到VPN DNS服务器的域名解析响应,导致域名解析效率较低。甚至在某些设备中,如果发出域名解析请求一定时间后未接收到域名解析响应,将会请求公网DNS服务器对该域名进行解析,而公网DNS服务器中显然并未存储VPN内网域名与IP地址的映射关系,因此将导致域名解析失败或者错误,并向设备返回域名解析失败的提示或者错误的IP地址。此外,由于多数设备采用先到先得机制,即只会根据先接收到的域名解析结果做出处理,而丢弃之后收到的域名解析结果,因此如果公网DNS服务器的域名解析响应先到达该设备,则该设备只会根据公网DNS服务器返回的错误结果做出相应处理,进而导致访问错误。

为了提高VPN网络中设备获得域名解析结果的效率,并避免因设备错误地要求公网DNS服务器解析内网域名造成访问错误,本申请提供了一种VPN网络中使设备获得域名解析结果的方法,在该方法中,接入VPN网络中的设备向VPN DNS服务器发出域名解析请求及接收响应的行为,由VPN客户端代理。该VPN客户端可以内置于该设备内部,也可以在该设备外部通过各种有线或无线方式与该设备连接,只要能够实现二者间传输数据的目的,本申请的基本方案不需对二者间的包含关系与连接方式进行限定,本领域技术人员可以在实际应用中灵活地设置。并且,本申请中所称的接入VPN网络的设备或电子设备,可以是手机、平板电脑、笔记本电脑、台式计算机等等任意可以接入VPN网络并访问内网资源的设备。

如图2所示,本申请所提供的方法可以包括以下步骤:

S101,所述设备向所述VPN客户端发出域名解析请求发送通知;

如图3所示,为本申请方案中,接入VPN网络的设备访问内网资源时,获得内网域名的解析结果的过程示意图。接入VPN网络中的设备向VPN DNS服务器发出域名解析请求的行为,由VPN客户端代理,当该设备为了访问内网资源而需要域名对应的IP地址时,即需要向VPN DNS服务器发出域名解析请求时,将向VPN客户端发出域名解析请求发送通知,通知VPN客户端代为向VPN DNS服务器发出请求。因此,即使在部分设备中,等待VPN DNS服务器的域名解析响应时间过长,将再向公网DNS服务器发送域名解析请求,在本申请方案中,如果VPN客户端不采用这种机制,将不会发生向公网DNS服务器发送内网域名的解析请求的情况,从而可以避免因此造成的访问错误。

S102,VPN客户端接收到所述域名解析请求发送通知后,本地查找所述域名解析请求对应的域名解析结果;

为了减少VPN客户端发出域名解析请求,到获得域名解析响应之间的时长,提高设备获得域名解析结果的效率,本申请方案中,在服务器第一次就某个内网域名的返回域名解析响应后,VPN客户端将在本地存储该响应中的域名解析结果。之后,设备再次需要获得同一个域名的解析结果时,VPN客户端可以直接将本地存储的解析结果返回到设备,而不必等待VPN DNS服务器的响应。

此外,VPN客户端存储该域名解析结果时,可以与该域名解析请求建立对应关系,为之后再根据域名解析请求查找存储的域名解析结果提供依据,例如,可以预先建立域名解析结果存储列表,并将域名解析请求与其解析结果存储在列表的同一表项中,又如,将每个域名解析请求及其解析结果分别存入单独的文本,等等,本申请的基本方案不需对具体的存储方式及对应关系建立方式进行限定,本领域的技术人员可以根据实际情况灵活地选择。

因此,VPN客户端接收到该设备的域名解析请求发送通知后,并不会立即向VPN DNS服务器发送域名解析请求,而是首先在本地存储的域名解析结果中,查找该域名解析请求所对应的解析结果。

在本申请的一种具体实施方式中,VPN客户端在存储域名解析结果时,可以直接建立域名解析请求中指定的域名与其解析结果的对应关系,而VPN客户端在接收到域名解析请求发送通知时,可以首先解析该请求,得到设备指定的域名,再根据所建立的域名与其解析结果的对应关系,在存储的域名解析结果中查找该域名对应的解析结果。

S103,VPN客户端在查找到所述域名解析请求对应的域名解析结果的情况下,根据该域名解析结果回应所述发送通知;

如果VPN客户端在存储的域名解析结果中,查找到了该域名解析请求对应的解析结果,则可以直接根据该域名解析结果,回应设备的发送通知。具体地,如果所存储的域名解析结果,为VPN DNS服务器返回的域名解析响应报文,可以直接将该报文发送至该设备,如果所存储的域名解析结果,为根据该报文解析得到的IP地址或其他结果信息,则可以将该IP地址或其他结果信息直接发送至该设备、或重新封装为域名解析响应等形式后发送至设备,等等,本申请的基本方案不需对相关的技术细节进行限定,本领域的技术人员可以根据实际情况灵活地设置。

此外,VPN客户端接收及回应设备的发送通知,也可以通过多种方式实现,例如,如果VPN客户端内置于设备内部,则可以通过设备内部的数据传输方式实现,又如,如果VPN客户端在设备外部与其连接,则可以根据具体的连接方式采用具体的数据传输方式,等等。在本申请的一种具体实施方式中,可以首先创建UDP socket,通过该UDP socket接收并回应设备的发送通知。可以理解的是,本申请的基本方案并不对具体的实现方式进行限定,本领域技术人员在实际应用时也可以根据实际情况选择其他的方式。

S104,VPN客户端在未查找到所述域名解析请求对应的域名解析结果的情况下,向VPN DNS服务器发送所述域名解析请求;

S105,VPN DNS服务器向VPN客户端返回域名解析响应;

S106,VPN客户端接收到所述域名解析响应后,根据所述域名解析响应获得域名解析结果;

为了便于描述,将S104至S106结合进行说明。

如果VPN客户端未在存储的域名解析结果中,查找到该域名解析请求对应的域名解析结果,则需要向VPN DNS服务器发送所述域名解析请求,VPN DNS服务器完成域名解析后,即向VPN客户端返回域名解析响应,而客户端根据该响应获得域名解析结果。同样地,VPN客户端向服务器发送域名解析请求及接收响应,也可以通过多种方式实现,此处不再赘述。在本申请的一种具体实施方式中,可以创建另一个UDP socket,并通过该UDP socket向服务器发送域名解析请求并接收响应。可以理解的是,本申请的基本方案并不对具体的实现方式进行限定,本领域技术人员在实际应用时也可以根据实际情况选择其他的方式。

S107,VPN客户端本地存储该域名解析结果,并建立所述域名解析请求与该域名解析结果的对应关系;

如上所述,VPN客户端获得域名解析结果后,可以在本地存储该解析结果,并建立域名解析请求或域名与其解析结果的对应关系。此外,本申请中所称的本地,是指相对于VPN DNS服务器而言,客户端可以直接获取数据的位置,例如,如果客户端内置于某设备中,则可以指该设备的内存或其他存储位置,等等。

S108,根据该域名解析结果回应所述发送通知。

VPN客户端还需要根据获得的域名解析结果回应设备的发送通知,具体的回应方式如上所述,此处不在赘述。为了避免客户端本地存储的域名解析结果过于冗余,节省存储资源,并提高查找效率,在本申请的一种具体实施方式中,可以对本地存储的域名解析结果设置老化机制。具体地,首先在客户端中预设老化时长,当某一域名解析结果在本地存储的时长超过该老化时长时,即删除该域名解析结果。

相应于上述方法实施例,本申请还提供一种VPN网络中使设备获得域名解析结果的装置,其特征在于,所述装置应用于VPN客户端,所述VPN客户端内置或连接于接入所述VPN网络的设备,参见图4所示,该装置可以包括:

结果查找模块110,用于在接收到所述设备的域名解析请求发送通知的情况下,在本地查找所述域名解析请求对应的域名解析结果;

通知回应模块120,用于在查找到所述域名解析请求对应的域名解析结果的情况下,根据该域名解析结果回应所述发送通知;

请求发送模块130,用于在未查找到所述域名解析请求对应的域名解析结果的情况下,向VPN DNS服务器发送所述域名解析请求;

结果获得模块140,用于接收VPN DNS服务器返回的域名解析响应,并根据所述域名解析响应获得域名解析结果;

结果存储模块150,用于存储该域名解析结果,并建立所述域名解析请求与该域名解析结果的对应关系;

所述通知回应模块120,还用于根据该域名解析结果回应所述发送通知。

在本申请的一种具体实施方式中,参见图5所示,该装置还可以包括:

时长获得模块160,用于获得本地存储的任一域名解析结果的已存储时长;

老化判断模块170,用于判断所述已存储时长是否超过预设的老化时长;

结果删除模块180,用于在所述已存储时长超过所述老化时长的情况下,删除该域名解析结果。

在本申请的一种具体实施方式中,该装置还可以包括:

套接字创建模块,用于创建第一UDP套接字socket;

通知接收模块,具体用于通过第一UDP socket接收到所述设备的域名解析请求发送通知;

所述通知回应模块120,具体用于:通过第一UDP socket根据该域名解析结果回应所述发送通知。

在本申请的一种具体实施方式中,所述套接字创建模块,还用于:创建第二UDP套接字socket;

所述请求发送模块130,具体用于:通过第二UDP socket向VPN DNS服务器发送所述域名解析请求;

所述结果获得模块140,具体用于:通过第二UDP socket接收VPN DNS服务器返回的域名解析响应。

在本申请的一种具体实施方式中,所述结果查找模块110,具体用于:

在接收到所述设备的域名解析请求发送通知的情况下,解析所述域名解析请求得到域名;

在本地查找该域名对应的域名解析结果;

所述结果存储模块150,具体用于:将解析所述域名解析请求得到域名的域名,与该域名解析结果对应存储。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

虽然本说明书包含许多具体实施细节,但是这些不应被解释为限制任何发明的范围或所要求保护的范围,而是主要用于描述特定发明的具体实施例的特征。本说明书内在多个实施例中描述的某些特征也可以在单个实施例中被组合实施。另一方面,在单个实施例中描述的各种特征也可以在多个实施例中分开实施或以任何合适的子组合来实施。此外,虽然特征可以如上所述在某些组合中起作用并且甚至最初如此要求保护,但是来自所要求保护的组合中的一个或多个特征在一些情况下可以从该组合中去除,并且所要求保护的组合可以指向子组合或子组合的变型。

类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求这些操作以所示的特定顺序执行或顺次执行、或者要求所有例示的操作被执行,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中均需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中,或者封装成多个软件产品。

由此,主题的特定实施例已被描述。其他实施例在所附权利要求书的范围以内。在某些情况下,权利要求书中记载的动作可以以不同的顺序执行并且仍实现期望的结果。此外,附图中描绘的处理并非必需所示的特定顺序或顺次顺序,以实现期望的结果。在某些实现中,多任务和并行处理可能是有利的。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

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