一种域名解析请求发送方法及装置与流程

文档序号:14559939阅读:320来源:国知局
一种域名解析请求发送方法及装置与流程

本申请涉及互联网技术领域,尤其涉及一种域名解析请求发送方法及装置。



背景技术:

dns(domainnamesystem,域名系统)是一个将网络中主机的域名和ip地址相互映射的分布式数据库,通过便于人记忆、输入的域名与便于计算机处理的ip地址间的映射关系,使人们更方便地访问网络。域名到ip地址的映射存储在dns服务器中,通过dns服务器中的映射确定指定域名对应的ip地址的过程,即为域名解析。在使用vpn(virtualprivatenetwork,虚拟专用网络)的用户设备接入vpn网络后,通常可以为设备中的vpn虚拟网卡配置vpndns服务器地址,设备访问vpn内网资源时,首先向vpndns服务器发出域名解析请求,接收到该请求的vpndns服务器将域名解析为内网ip地址后响应该设备,之后设备便可通过该ip地址访问内网资源。

但是,由于部分用户设备的操作系统不允许进行网卡的优先级设置,且物理网卡的优先级默认高于虚拟网卡,用户设备的域名解析请求将优先由物理网卡发出,这种情况下,原本需要由vpndns服务器进行解析的vpn内网域名,将由物理网卡发送至所配置的公网dns服务器,而公网dns服务器无法响应该域名解析请求,将造成vpn内网域名解析失败,vpn无法正常使用。



技术实现要素:

有鉴于此,本申请提供一种域名解析请求发送方法及装置,技术方案如下:

一种域名解析请求发送方法,其特征在于,所述方法包括:

监听用户设备是否发送域名解析请求;

在监听到用户设备发送域名解析请求的情况下,截获所述域名解析请求;

将所述域名解析请求分别发送至预先配置的vpndns服务器与公网dns服务器。

一种域名解析请求发送装置,其特征在于,所述装置包括:

请求监听模块,用于监听用户设备是否发送域名解析请求;

请求截获模块,用于在监听到用户设备发送域名解析请求的情况下,截获所述域名解析请求;

请求发送模块,用于将所述域名解析请求分别发送至预先配置的vpndns服务器与公网dns服务器。

本申请所提供的技术方案,预先配置了vpndns服务器与公网dns服务器地址,首先对用户设备发送域名解析请求的情况进行监听,如果监听到用户设备向外发送域名解析请求则将其截获,并根据预先配置的地址,将其发送至vpndns服务器与公网dns服务器,则在用户设备需要解析的域名正确的情况下,无论是vpn内网域名或是公网域名,均可以由vpndns服务器与公网dns服务器中的至少一台服务器解析后得到解析结果。

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

附图说明

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

图1是发送域名解析请求的一种过程示意图;

图2是本申请实施例域名解析请求发送方法的流程示意图;

图3是本申请实施例发送域名解析请求的一种过程示意图;

图4是本申请实施例域名解析请求发送装置的一种结构示意图;

图5是本申请实施例域名解析请求发送装置的另一种结构示意图;

图6是本申请实施例映射建立模块的一种结构示意图;

图7是本申请实施例映射建立模块的另一种结构示意图。

具体实施方式

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

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

如图1所示,如果接入vpn网络的用户设备,由于操作系统的限制等原因,无法设置发送域名解析请求的网卡,而物理网卡的优先级默认高于虚拟网卡,则无论用户设备需要解析的域名是vpn内网域名、或是公网域名,均会由物理网卡发送至其配置的公网dns服务器进行解析。但是公网dns服务器中并未存储vpn内网ip地址与域名的映射关系,因此将无法向用户设备返回域名解析响应,造成vpn内网域名解析失败,用户设备无法正常访问vpn内网资源。

为了解决上述问题,本申请提供一种域名解析请求发送方法,在该方法中,由vpn客户端代理用户设备,向vpndns服务器与公网dns服务器发送域名解析请求,并接收dns服务器返回的域名解析响应,确保在用户设备需要解析的域名正确的情况下,可以得到正确的dns服务器的域名解析结果。本申请中的vpn客户端,可以内置于用户设备内部,也可以置于其他外部设备、并且通过各种有线或无线方式与用户设备连接,甚至可以部分内置于用户设备内部、而部分置于其他外部设备并与用户设备连接,可以理解的是,只要能够实现vpn客户端与用户设备间传输数据的目的,该本申请的基本方案不需对二者间的包含关系与连接方式进行限定,本领域技术人员可以在实际应用中灵活地设置。并且,本申请中所称的接入vpn网络的用户设备,可以是手机、平板电脑、笔记本电脑、台式计算机等等任意可以接入vpn网络并访问内网资源的设备。

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

s101,监听用户设备是否发送域名解析请求;

在用户设备访问网络资源时,如果需要访问的ip地址为vpn内网ip地址,则需要向vpndns服务器发送域名解析请求,如果需要访问的ip地址为公网ip地址,则可以向公网dns服务器发送域名解析请求,通常情况下vpndns服务器也存储了大部分公网ip地址与域名的映射关系,因此访问公网ip地址时向vpndns服务器发送域名解析请求,vpndns服务器通常也可以解析成功,响应该域名解析请求。本申请方案中vpn客户端代理用户设备,向vpndns服务器与公网dns服务器发送域名解析请求,并接收dns服务器返回的域名解析响应的过程,可以如图3所示,在代理过程中,首先需要监听用户设备是否向dns服务器发送域名解析请求。

对于用户设备发送域名解析请求的监听,可以通过多种方式实现,本申请的基本方案理论上不需对此进行限定,本领域的技术人员可以在实际应用时灵活地选择合适的方式。由于向公网dns服务器发送域名解析请求,也可以由vpn客户端代理,而并不需要物理网卡发送,因此,在本申请的一种具体实施方式中,可以对物理网卡进行配置,使其将域名解析请求发送至用户设备本机,例如将物理网卡的dns服务器地址配置为回送地址127.0.0.1,则用户设备需要发送域名解析请求时,将由物理网卡发送该域名解析请求至用户设备本机的53端口,而vpn客户端通过监听用户设备的53端口,即可实现对用户设备是否发送域名解析请求的监听。

s102,在监听到用户设备发送域名解析请求的情况下,截获所述域名解析请求;

如上所述,本申请方案中由vpn客户端代理用户设备发送域名解析请求,因此在监听到用户设备发送域名解析请求的情况下,可以将该域名解析请求截获。截获用户设备发送的域名解析请求,可以通过多种方式实现,并且根据vpn客户端与用户设备的包含关系与连接方式的区别,也可以采取不同的方式,例如,vpn客户端可以对用户设备发送的域名解析请求进行拦截,并且创建udpsocket套接字接收该域名解析请求,又如,如果vpn客户端分为置于用户设备内的内部客户端、与置于其他外部设备外部客户端的两部分,则可以首先由内部客户端截获该域名解析请求,然后经由虚拟网卡通过vpn网络发送至外部客户端。可以理解的是,本申请的基本方案理论上不需对vpn客户端实现截获用户设备发送的域名解析请求这一目的的具体方式进行限定,本领域的技术人员可以在实际应用时灵活地选择合适的方式。

s103,将所述域名解析请求分别发送至预先配置的vpndns服务器与公网dns服务器。

虽然内网域名与多数公网域名均可以通过vpndns服务器进行解析,但也可能存在少数vpndns服务器内未存储的公网域名与ip地址的映射关系,因此如图3所示,vpn客户端中可以预先配置vpndns服务器与公网dns服务器的地址,并且在截获用户设备需要发送的域名解析请求后,根据预先配置的地址,将该域名解析请求分别发送至vpndns服务器与公网dns服务器,以确保在域名正确的情况下,无论该域名是vpn内网域名、或是公网域名,均可以接收到对应的域名解析响应。本申请对发送域名解析请求的具体实现方式不进行限定,例如也可以分别创建2个udpsocket套接字,向vpndns服务器与公网dns服务器发送域名解析请求。

此外,在本申请的一种具体实施方式中,为了提高vpn客户端与dns服务器间收发数据的效率,节约vpn客户端所占用的网络资源,可以在接收某一域名解析请求的域名解析响应时,由于可以判定先返回域名解析响应的dns服务器可以响应该域名解析请求,并且响应速度更快,因此可以建立该dns服务器与该域名解析请求的映射关系,写入预设的映射关系表中,则之后需要再次发送该域名解析请求时,则可以根据所建立的映射关系,只将该域名解析请求发送至与其建立了映射关系的dns服务器。当然,如果映射关系表中不存在该域名解析请求,表明该域名解析请求未与某一dns服务器建立映射关系,则依然可以将该域名解析请求分别发送至预先配置的vpndns服务器与公网dns服务器。

在本申请的一种具体实施方式中,如上所述,vpndns服务器也可以解析多数公网域名,为了更充分地利用vpn资源,可以在vpn客户端中,预先设定等待vpndns服务器域名解析响应的时长(如1ms),则在由公网dns服务器首先返回了某一域名解析请求的域名解析响应的情况下,可以先等待相应时长(如1ms),以确定vpndns服务器能否响应该域名解析请求。如果在等待时长内,再次接收到该域名解析请求的域名解析响应,即vpndns服务器发送的该域名解析请求的域名解析响应,表明vpndns服务器可以响应该域名解析请求,则可以在映射关系表中建立vpndns服务器与该域名解析请求的映射关系。如果在等待时长内,未接收到该域名解析请求的其他域名解析响应,表明vpndns服务器中未存储解析所需要的域名与ip地址的映射关系,无法响应该域名解析请求,则可以在映射关系表中建立公网dns服务器与该域名解析请求的映射关系。

如果vpn客户端将域名解析请求,分别发送至预先配置的vpndns服务器与公网dns服务器一段时间后,vpndns服务器与公网dns服务器均未返回域名解析响应,则可以认为该域名为无效域名,也可以将这一情况写入映射关系表中,之后需要解析相同域名时,将不再代理发送对应的域名解析请求。或者可以设置重发机制,重复预设次数地将该域名解析请求分别发送至vpndns服务器与公网dns服务器,如果仍未得到域名解析响应,再设定不再代理发送对应的域名解析请求。

本申请的基本方案对预设映射关系表中的每条映射关系的建立方式不进行限定,本领域的技术人员可以根据vpn客户端与dns服务器间的数据收发方式等实际情况,灵活地选择合适的方式,例如,如果vpn客户端通过创建udpsocket套接字,向dns服务器发送域名解析请求,则在建立某一域名解析请求与dns服务器的映射关系时,可以直接将该域名解析请求与发送时所创建的udpsocket,对应地写入预设映射关系表中,并且需要再次发送该域名解析请求时,可以直接使用所写入的udpsocket进行发送。

此外,在本申请的一种具体实施方式中,可以设置映射关系表中各条映射关系的老化机制,即对所述映射关系表中的映射关系的已建立时长进行计时,在任一条映射关系的已建立时长不小于预设老化时间的情况下,删除该映射关系。删除映射关系后,如果用户设备经常访问对应的域名,将会再次建立对应的映射关系,并且可以根据dns服务器中存储的相应内容的更新,及时更新vpn客户端中建立的映射关系,如果用户设备不再访问对应的域名,则可以避免映射关系表中利用率低的映射关系占用过多的存储空间。

在vpn客户端接收到dns服务器返回的域名解析响应后,即可以通过与用户设备之间的连接关系,将该域名解析响应发送至用户设备,以使用户设备根据其中的解析结果,访问网络资源。例如,如上所述,如果vpn客户端通过创建的udpsocket接收用户设备,则可以再通过该udpsocket将该域名解析响应发送至用户设备。

可见,应用本申请方案,通过由vpn客户端代理用户设备,向vpndns服务器与公网dns服务器发送域名解析请求,并接收dns服务器返回的域名解析响应,可以解决部分用户设备由于操作系统的限制等原因,无法正常访问vpn内网资源的问题。同时,即使接入vpn网络的用户设备不存在上述问题,应用本申请方案也正常可以访问网络资源。

相应于上述方法实施例,本申请还提供一种域名解析请求发送装置,参见图4所示,该装置可以包括:

请求监听模块110,用于监听用户设备是否发送域名解析请求;

请求截获模块120,用于在监听到用户设备发送域名解析请求的情况下,截获所述域名解析请求;

请求发送模块130,用于将所述域名解析请求分别发送至预先配置的vpndns服务器与公网dns服务器。

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

映射建立模块140,用于在接收到所述域名解析请求的第一次域名解析响应的情况下,在预设的映射关系表中,建立发送该域名解析响应的dns服务器、与该域名解析请求的映射关系。

在本申请的一种具体实施方式中,所述请求发送模块130,具体可以用于:

在所述映射关系表中不存在所述域名解析请求的情况下,将所述域名解析请求分别发送至预先配置的vpndns服务器与公网dns服务器;

在所述映射关系表中存在所述域名解析请求的情况下,根据映射关系表中的映射关系,将所述域名解析请求发送至对应的dns服务器。

在本申请的一种具体实施方式中,参见图6所示,所述映射建立模块140可以包括:

等待计时单元141,用于在接收到所述域名解析请求的第一次域名解析响应、且该域名解析响应由公网dns服务器发送的情况下,进行预设等待时长的vpndns服务器域名解析响应等待;

映射建立单元142,用于若在预设等待时长内未接收到该域名解析请求的域名解析响应,则在预设的映射关系表中,建立公网dns服务器与该域名解析请求的映射关系;若在预设等待时长内接收到该域名解析请求的域名解析响应,则在预设的映射关系表中,建立vpndns服务器与该域名解析请求的映射关系。

在本申请的一种具体实施方式中,参见图7所示,所述映射建立模块140还可以包括:

老化计时单元143,用于对所述映射关系表中的映射关系的已建立时长进行计时;

映射老化单元144,用于在任一条映射关系的已建立时长不小于预设老化时间的情况下,删除该映射关系。

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

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

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

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

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

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

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