【具体实施方式】
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
请参考图3,本申请实施例提供的获取并收集客户端本地DNS服务器的系统从硬件架构上来讲,包括请求端50、本地域名服务器60、权威服务器70、应用服务器80以及存储服务器90。该请求端50通过本地域名服务器60递归解析至权威服务器70。该应用服务器80和权威服务器70连接至存储服务器90。
从软件设置上来讲,该获取并收集客户端本地DNS服务器的系统包括第一模块A、第二模块B以及第三模块C。从硬件对应关系上来看,第一模块A设置在权威服务器70上、第二模块B设置在应用服务器80以及该第三模块C设置在存储服务器90上。
该第一模块A用于在权威服务器处,在接收到针对探测域名的解析请求时,重定向至预设的应用服务器;
该第二模块B用于在应用服务器处,在接收到针对探测域名的HTTP请求时,将该HTTP访问请求重定向至第二域名;该第二域名包括探测域名以及发送HTTP请求的请求端的IP地址;
该第一模块A还用于在权威服务器处,在接收到针对第二域名的解析请求时,建立第二域名中包含的请求端IP地址与发送该第二域名解析请求的本地域名服务器IP地址之间的对应关系。
该第三模块C用于在存储服务器处,存储确认的对应关系形成的对应关系库;以及该第一模块A还用于在该权威服务器处,基于该对应关系库,为请求端提供有效的本地域名服务器的IP地址。
本申请实施例在现有域名解析系统的基础上,通过设置定制的权威服务器70、应用服务器80以及存储服务器90,基于探测域名和第二域名的访问机制,通过重定向方式简单快速地获取并收集请求端50以及关联的本地域名服务器60的IP地址。该权威服务器70、应用服务器80以及存储服务器90针对探测域名及其第二域名的解析请求采取特殊的处理,以增强权威服务器解析用户请求的准确率。
需要说明的是,该存储服务器90的数据库功能可以设置该权威服务器70上,也可以设置在该应用服务器80上。为了清楚说明本申请技术方案,以下实施例以单独设置的存储服务器90为例加以阐述。
在内容分发网络或应用交付网络中该获取并收集客户端本地DNS服务器的系统的部署如下,本实施例中请求端50和应用服务器80之间使用HTTP协议(HyperText TransferProtocol,HTTP)通信,应用服务器80给请求端50的应答采用HTML(HyperText MarkupLanguage,HTML)格式。可以理解的是,也可以使用其它协议作为请求端50和应用服务器80之间通信的协议。应用服务器80给请求端50的应答也可以使用其它格式,比如JSON格式。为简化本申请技术方案的描述,以下实施例中的请求端50具有IP地址,本实施例IP地址指公网地址,该公网地址指客户端的出口公网IP地址,又称为LDNS地址,如果请求端50在内网中,则例子中请求端的IP地址指的是其公网出口的IP地址。
实施例1
请进一步参考图1,在本实施例提供的获取并收集客户端本地DNS服务器的系统中,每一对应关系的建立过程如下:
该权威服务器70在接收到针对探测域名的解析请求时,重定向至预设的应用服务器80;该应用服务器80在接收到针对探测域名的HTTP请求时,将该HTTP访问请求重定向至第二域名。
其中,该第二域名包括探测域名以及发送HTTP请求的请求端的IP地址。
该权威服务器70在接收到针对第二域名的解析请求时,建立第二域名中包含的请求端50的IP地址与发送该第二域名解析请求的本地域名服务器60的IP地址之间的对应关系。
该应用服务器80在收到请求端50针对探测域名的HTTP请求时,该应用服务器80获取请求端50的IP地址并保存至该存储服务器90,该应用服务器80重定向该请求端50至第二域名。请求端50针对该重定向的第二域名向权威服务器70发起解析请求,该权威服务器70获取该请求端50以及其连接的本地域名服务器60的IP地址,本实施例IP地址指公网地址,该公网地址指客户端的出口公网IP地址,又称为LDNS(Local Domain Name System,LDNS)地址。
该权威服务器70验证请求端50的IP地址,向存储服务器90查询此IP地址是否刚刚向应用服务器80发起过请求,如果有,则校验通过。
验证通过后,该权威服务器70建立该请求端IP地址和该本地域名服务器IP地址的对应关系并保存至该存储服务器90。
同时,该权威服务器70将请求端50重定向至应用服务器80的IP地址。该请求端50再针对第二域名向应用服务器80发起HTTP请求,该应用服务器80确认该对应关系,同时返回经确认的该本地域名服务器60的IP地址。
若干经过确认的对应关系形成对应关系库。
该存储服务器90存储确认的对应关系的每笔数据并形成对应关系库。该权威服务器70可读取和查询该对应关系库,并基于该对应关系库,为任何请求端提供关联的有效的本地域名服务器IP地址。
本实施例中,该权威服务器70通过配置探测域名和第二域名作为通信的媒介。该权威服务器70、应用服务器80收到该探测域名及其第二域名的解析请求时进行域名解析优化处理。其中,该请求端50通过探测域名,通过本地域名服务器60以及权威服务器70获取应用服务器80的IP地址;该请求端50被应用服务器80重定向至第二域名。之后该请求端50通过第二域名在系统间完成该请求端50的IP地址以及该本地域名服务器60的IP地址的提取,校验、确认以及获取地址的操作。本实施例中的获取并收集客户端本地DNS服务器的系统通过配置探测域名以及重定向的第二域名实现信息的收集和传递。
本实施例中,该探测域名举例为:www.example.com。该第二域名举例为:c.c.c.c.www.example.com,其中,c.c.c.c代表请求端50的IP地址。
请一并参考图3,其中,该本地域名服务器60包括递归解析模块61。该请求端50基于探测域名通过该递归解析模块61解析至权威服务器70。
该权威服务器包括预存模块71以及第二提取模块72。所述预存模块71用于向请求端50提供该应用服务器80的IP地址,使得该请求端50获得应用服务器80的IP地址后,通过该探测域名访问该应用服务器80。
该应用服务器80包括第一提取模块81、校验模块82以及重定向模块83。该第一提取模块81用于提取该请求端50的IP地址并保存至该存储服务器90,该重定向模块83用于使该请求端50重定向至第二域名。
该存储服务器90包括对应关系库91、标记模块92以及筛查模块93。可以理解的是,该对应关系库91、标记模块92以及筛查模块93也可以是设置在权威服务器70上的软件模块也可以是设置在应用服务器80上的软件模块。
请参考图1,当权威服务器70收到针对探测域名的解析请求时,向请求端50返回与权威服务器70配合工作的应用服务器的IP地址(b.b.b.b),为了简化说明技术方案,该IP地址也为LDNS地址。然后基于探测域名请求端50向应用服务器80发送HTTP请求,请求中携带该探测域名www.example.com。应用服务器80接收到HTTP请求后,从数据报文中提取出此请求端50的源IP地址。将客户端IP地址和收到请求时的时间戳保存到存储服务器90中。然后应用服务器80向请求端50发送一个第二域名的重定向应答,重定向的目的域名为:请求端IP地址+探测域名,中间用“.”分割,从而形成第二域名。
请一并参考图2,接着,该请求端50基于该重定向的第二域名c.c.c.c.www.example.com,通过本地域名服务器60的递归解析模块61解析至权威服务器70。该权威服务器70的第二提取模块72提取该本地域名服务器60的IP地址(a.a.a.a)并从第二域名中获取请求端的IP地址(c.c.c.c)。同时,该权威服务器70检验访问的第二域名是否是原探测域名的子域名,完成地址提取、确认以及校验过程。验证通过后,该权威服务器70从第二域名的域名解析请求中数据报文中提取出该本地域名服务器60的IP地址。该权威服务器70建立该请求端IP地址和该本地域名服务器IP地址的对应关系并保存至该存储服务器90,该存储服务器90的标记模块92标记该对应关系为待确认。
首次地址提取、确认以及校验的过程如下:
请求端50收到第二域名的重定向应答后,再次向权威服务器70发起域名解析请求,权威服务器70收到此解析请求后,检测第二域名是否是探测域名的子域名,如果是,则从第二域名中去掉后缀探测域名后得到请求端的IP地址(c.c.c.c),权威服务器70向存储服务器查询此IP地址是否刚刚向应用服务器80发起过请求,如果有,则校验通过。从对第二域名的域名解析请求数据报文中提取出该本地域名服务器60的IP地址(a.a.a.a),然后把客户端IP地址和本地域名服务器IP地址一起存储到存储服务器90的对应关系库中。完成存储动作后,再次把应用服务器80的IP地址(b.b.b.b)作为域名应答返回给请求端50。如果合法性校验失败,不响应域名解析请求。
首次地址提取的确认过程如下:
请求端50针对该第二域名向该应用服务器80发起HTTP请求。收到请求后,该应用服务器80从该第二域名提取IP地址,该校验模块82根据第二域名中去掉后缀探测域名后得到IP地址与从HTTP请求数据报文提取的请求端IP地址进行地址校验,校验合格时,修改该对应关系为已确认并记录归入该对应关系库;校验不合格时,不响应该请求端的请求。
建立对应关系库以后的校验过程如下:
请求端50针对该第二域名向该应用服务器80发起HTTP请求,收到HTTP请求后,该应用服务器80的第一提取模块81获取该请求端50的IP地址,该校验模块82根据该对应关系库91进行地址校验,在发现错误访问或者IP地址提取失败时,该重定向模块83还用于通过探测域名将该请求端50重定向至本地域名服务器60。
具体过程为:请求端50收到该权威服务器70的域名解析结果后,再次向应用服务器80发起HTTP请求,请求中以第二域名作为被请求域名,应用服务器80接收到HTTP请求后,发现请求域名是第二域名,应用服务器80从第二域名中提取出携带的IP地址,并从HTTP数据报文中提取出请求端IP地址,校验两个IP地址是否一致,校验通过后,从存储服务器90的对应关系库91中查询客户IP地址对应的本地域名服务器60的IP地址作为应答内容返回给请求端50。
该存储服务器90还包括筛查模块93用于梳理所有待确认的对应关系,并对未经确认的对应关系在存储设定时间后进行删除。
实施例2
请一并参考图4,在本实施例提供获取并收集客户端本地DNS服务器的方法,该方法主要包括以下步骤:
步骤101:在权威服务器处,在接收到针对探测域名的解析请求时,重定向至预设的应用服务器;
步骤102:在应用服务器处,在接收到针对探测域名的HTTP请求时,将该HTTP访问请求重定向至第二域名;该第二域名包括探测域名以及发送HTTP请求的请求端的IP地址;
步骤103:在权威服务器处,在接收到针对第二域名的解析请求时,建立第二域名中包含的请求端IP地址与发送该第二域名解析请求的本地域名服务器IP地址之间的对应关系。
该方法还包括以下步骤:
确认的对应关系存储至对应关系库;以及
基于该对应关系库,为请求端提供有效的IP地址。
请参考图5,以下详细介绍该获取并收集客户端本地DNS服务器的方法。
该获取并收集客户端本地DNS服务器的方法通过设置定制的权威服务器70、应用服务器90以及存储服务器90,基于探测域名和第二域名的访问机制,通过重定向方式简单快速地获取并收集请求端50以及关联的本地域名服务器60的IP地址。在收到探测域名及第二域名的解析请求时,该定制的权威服务器70、应用服务器90以及存储服务器90开始域名解析优化处理。
本实施例中,该获取并收集客户端本地DNS服务器的方法通过配置探测域名及第二域名作为优化通信的媒介。该探测域名举例为:www.example.com。该第二域名举例为:c.c.c.c.www.example.com,其中,c.c.c.c代表请求端50的IP地址。
步骤201:权威服务器处在接收到请求端针对探测域名的解析请求时,重定向至预设的应用服务器;
步骤202:请求端再通过该探测域名访问该应用服务器,包括:
请求端向本地域名服务器发起域名解析请求,请求解析www.example.com;
本地域名解析服务器向www.example.com的权威域名解析服务器发起域名解析请求;
www.example.com的权威域名解析服务器返回应用服务器的IP地址给本地域名服务器;
本地域名服务器返回应用服务器的IP地址给请求端;
请求端再通过该探测域名访问该应用服务器,向应用服务器发起请求;
步骤203:该应用服务器在接收到针对探测域名的HTTP请求时,提取该请求端IP地址并保存,并使该请求端重定向至第二域名,包括:
应用服务器接到请求,发现是对www.example.com的请求,提取请求端的IP地址(c.c.c.c)并存储在存储服务器;
应用服务器向客户端发送重定向应答,重定向到第二域名:c.c.c.c.www.example.com;
步骤204:针对该第二域名该请求端通过该本地域名服务器递归至权威服务器,包括:
请求端向本地域名服务器发起域名解析请求,请求解析c.c.c.c.www.example.com;
本地域名解析服务器向c.c.c.c.www.example.com的权威域名解析服务器发起域名解析请求;
步骤205:权威服务器通过该第二域名,获取该请求端IP地址以及该本地域名服务器的IP地址;
步骤206:权威服务器验证该请求端IP地址后,建立该请求端IP地址和该本地域名服务器IP地址的对应关系并保存,标记该对应关系为待确认。该权威服务器提取该本地域名服务器的IP地址(a.a.a.a)并通过该第二域名提取该请求端IP地址,校验从第二域名提取的IP地址,校验合格后,建立该请求端IP地址和该本地域名服务器IP地址的对应关系并保存,包括:
检测第二域名c.c.c.c.www.example.com是否是探测域名的子域名;
如果是,则从第二域名中去掉后缀探测域名后得到请求端的IP地址(c.c.c.c);
向存储服务器查询此IP地址是否刚刚向应用服务器80发起过请求,如果有,则校验通过;
校验通过后,c.c.c.c.www.example.com的权威域名解析服务器把c.c.c.c.和a.a.a.a的对应关系保存到存储服务器;
标记该对应关系为待确认,包括:
c.c.c.c.www.example.com的权威域名解析服务器把存储的c.c.c.c.和a.a.a.a的对应关系标记为待确认状态;
c.c.c.c.www.example.com的权威域名解析服务器返回应用服务器的IP地址给本地域名服务器;
本地域名服务器返回应用服务器的IP地址给请求端;
步骤207:请求端通过该第二域名向该应用服务器发起HTTP请求;
请求端向应用服务器发起请求,被请求域名是c.c.c.c.www.example.com。
步骤208:应用服务器收到针对第二域名的HTTP请求时,从该第二域名提取IP地址并与解析的请求端IP地址进行地址校验,校验合格时,修改该关联数据为已确认并归入该关联数据库,包括:
应用服务器接到请求,发现是对c.c.c.c.www.example.com的请求,提取请求端IP地址(c.c.c.c);
与存储服务器存储的IP地址比较,把提取的IP地址和真实IP地址进行校验,防止恶意访问;
查询请求端IP地址(c.c.c.c)对应的本地应用服务器IP地址(a.a.a.a);
在存储服务器中把IP地址(c.c.c.c)和IP地址(a.a.a.a)的对应关系对应关系改为确认状态;
存储服务器返回请求端的本地域名服务器IP地址(a.a.a.a);
应用服务器把请求端IP地址(c.c.c.c)和请求端本地域名服务器IP地址(a.a.a.a)返回给请求端;
步骤209:校验不合格时,不响应该请求端的请求;
步骤210:筛查所有待确认的对应关系,未经确认的对应关系在存储设定时间后进行删除,该获取并收集客户端本地DNS服务器的方法还包括筛查所有待确认的对应关系,未经确认的对应关系在存储设定时间后进行删除。
本实施例的获取并收集客户端本地DNS服务器的方法除了首次地址提取、确认以及校验需要借助探测域名和第二域名完成域名解析优化操作之外,在建立对应关系库以后,任何请求端也可通过探测域名和重定向至第二域名的方式进行本地DNS服务器优化和校验操作。
请参考图6,建立对应关系库以后的校验过程包括:
步骤301:请求端通过该第二域名向应用服务器发起HTTP请求;
步骤302:应用服务器提取请求端IP地址并根据该对应关系库进行地址校验;
步骤303:判断是否发现错误访问;
步骤304:或者判断是否IP地址提取失败;
步骤305:在判断是错误访问或者IP地址提取失败时,通过探测域名将该请求端重定向至本地域名服务器。
实施例的获取并收集客户端本地DNS服务器的方法以及系统,以探测域名和第二域名为媒介,通过重定向方式简单快速地获取并收集请求端以及关联的本地域名服务器的IP地址。在系统中,权威服务器连接存储服务器,该存储服务器获取并收集请求端以及关联的本地域名服务器的IP地址,结合数据分析和合并不断更新优化权威服务器所使用的IP地址对应关系库,为用户提供最优的网路接入节点,以及提供有效并且准确性更高的域名解析服务,同时可返回IP地址给请求端系统并显示给客户。
实施例3
图7是本申请实施例提供的获取并收集客户端本地DNS服务器的方法的每个服务器节点设备600的硬件结构示意图,如图7所示,该种服务器集群,包括请求端、本地域名服务器、权威服务器、应用服务器以及存储服务器,
其中,每一权威服务器、应用服务器以及存储服务器包括:至少一个或多个处理器610、存储器620以及通信组件650,图7中以一个处理器610为例。该存储器620存储有可被该至少一个处理器610执行的指令,该指令被该至少一个处理器执行时,通过通信组件650建立数据通道,以使该至少一个处理器能够执行该获取并收集客户端本地DNS服务器的方法。
处理器610、存储器620以及通信组件650可以通过总线或者其他方式连接,图7中以通过总线连接为例。
存储器620作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的获取并收集客户端本地DNS服务器的方法对应的程序指令/模块(例如,附图3权威服务器所示的预存模块71、第二提取模块72,应用服务器所示的第一提取模块81、重定向模块82、校验模块82,存储服务器所示的对应关系库91、标记模块92以及筛查模块93)。处理器610通过运行存储在存储器620中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的获取并收集客户端本地DNS服务器的方法。
存储器620可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据域名解析系统的使用所创建的数据等。此外,存储器620可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器620可选包括相对于处理器610远程设置的存储器,这些远程存储器可以通过网络连接至机器人交互电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述一个或者多个模块存储在所述存储器620中,当被所述一个或者多个处理器610执行时,执行上述任意方法实施例中的获取并收集客户端本地DNS服务器的方法,例如,执行以上描述的图4中的方法步骤101至步骤103,执行以上描述的图5中的方法步骤201至步骤210以及执行以上描述的图6中的方法步骤301至步骤305;实现附图3权威服务器所示的预存模块71、第二提取模块72,应用服务器所示的第一提取模块81、重定向模块82、校验模块82,存储服务器所示的对应关系库91、标记模块92以及筛查模块93等的功能。
上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。
本申请实施例提供了一种非易失性计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如,执行以上描述的图4中的方法步骤101至步骤103,执行以上描述的图5中的方法步骤201至步骤210以及执行以上描述的图6中的方法步骤301至步骤305;实现附图3权威服务器所示的预存模块71、第二提取模块72,应用服务器所示的第一提取模块81、重定向模块82、校验模块82,存储服务器所示的对应关系库91、标记模块92以及筛查模块93等的功能。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施方式的描述,本领域普通技术人员可以清楚地了解到各实施方式可通过软件加通用硬件平台的方式来实现,当然也可以通过硬件。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本申请的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。