本申请要求于2020年10月21日提交中国专利局、申请号为202011132622.1,发明名称为“域名线索备份方法和系统”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了解决现有技术中的上述技术问题,发明人进行了如下的研究:
正常情况下,当PC发一个域名查询请求到域名递归系统(也即递归DNS服务器),“请告知www.xxxyyy.com的IP地址”后,域名递归系统收到这个域名查询请求会回答PC,例如答案为www.xxxyyy.com的IP地址是221.229.203.213。但是,在一些特殊场景下,例如,电信运营商的域名递归系统刚开机,域名递归系统并不知道www.xxxyyy.com的IP地址是什么,此时递归DNS服务器需要经历一个复杂的DNS递归过程(递归DNS服务器的配置文件中,事先配置了DNS根域ROOT的域名线索记录,该域名线索记录主要包括类型为NS的权威域名服务器记录和与它们对应的IP地址信息记录等),DNS递归过程如图1所示:
(1)PC向递归DNS服务器发出DNS请求:请告知www.xxxyyy.com的IP地址;
(2)由于递归DNS服务器的内存中没有这个答案,递归DNS服务器通过配置的根域ROOT的域名线索记录找到ROOT的权威域名服务器(Authoritative Name Server,简称权威NS)和与它相关的IP地址信息,向ROOT的权威NS发出DNS请求:请告知www.xxxyyy.com的IP地址;
(3)ROOT的权威NS响应给递归DNS服务器的内容,主要是“.com”这个TLD的域名线索记录,包含了格式为NS的权威NS信息及与它相关的IP地址信息,TTL为48小时;
(4)递归DNS服务器收到这个DNS响应后,向.com的权威NS发出DNS请求:请告知www.xxxyyy.com的IP地址;
(5).com的权威NS响应给递归DNS服务器的内容,主要是“xxxyyy.com”这个域名的域名线索记录,包含了格式为NS的权威NS信息及与它相关的IP地址信息,TTL为48小时;
(6)递归DNS服务器收到这个DNS响应后,向xxxyyy.com的权威NS发出DNS请求:请告知www.xxxyyy.com的IP地址;
(7)xxxyyy.com的权威NS回答递归DNS服务器:www.xxxyyy.com的IP地址是221.229.203.213,TTL为300;
(8)递归DNS服务器回答PC:www.xxxyyy.com的IP地址是221.229.203.213,TTL为300;
以上是一个简单的DNS递归过程,可以看到每个DNS响应都带着TTL。TTL的一个重要的作用是调度,例如www.xxxyyy.com的IP地址为221.229.203.213,这台服务器很繁忙的时候,xxxyyy.com的权威NS响应递归DNS服务器:www.xxxyyy.com的IP地址为61.155.221.227,从而调度用户去访问61.155.221.227这台服务器。www.xxxyyy.com可能有成百上千台服务器,如果没有TTL,就会导致有些服务器很忙、有些服务器很闲,极端的情况下访问XY的所有用户都被引导到www.xxxyyy.com的几台服务器,容易导致XY网瘫痪。
DNS的TTL机制,保障了DNS响应的内容可以通过DNS递归过程不断地更新的,如果DNS递归过程失败导致TTL到期后仍然没有获得新的响应,按照DNS协议规范,过期的DNS内容是无效的。
DNS递归过程失败,逻辑上主要集中在三个位置:ROOT故障、TLD故障、域名的权威NS故障。
为了减少域名的权威NS故障引起DNS递归过程失败的影响,例如xxxyyy.com权威NS故障后用户无法访问XY,电信运营商的DNS系统增加了可延长TTL的DNS缓存软件,即对递归DNS服务器中的DNS递归软件的输出结果的使用规则进行了少量的修改,例如DNS递归软件已经解析出www.xxxyyy.com的IP地址为221.229.203.213、但TTL到期了,DNS递归软件再次递归解析www.xxxyyy.com的IP地址又失败了,如果严格按照DNS协议规范,221.229.203.213这个IP不再是有效的,而可延长TTL的DNS缓存软件,在这种情况下会继续使用TTL已经过期的221.229.203.213。这种方法对于用户访问量小的域名效果很好,但对xxxyyy.com这种访问量巨大的域名,因为www.xxxyyy.com总是被解析成221.229.203.213这个IP地址,所有用户都访问这个IP,这将导致XY瘫痪。因此,在DNS递归软件之外、通过增加延长TTL的DNS缓存软件,虽然有一定的效果,但改善网络服务质量的效果并不理想。
为了减少ROOT故障对DNS递归过程的影响,同时也为了降低DNS递归软件对ROOT的访问量,RFC7706协议规定了如何将ROOT的相关数据文件下载到本机,使用RFC7706协议可有效降低ROOT故障对DNS递归过程的影响。然而,TLD故障对DNS递归过程失败的影响,目前仍然没有好的对策,主要原因是TLD很多,而且有的TLD的数据量巨大(例如“.com”这个TLD的NS记录就有几亿条)并且时刻在更新,无法采用RFC7706协议应对ROOT故障的解决方案。
大规模TLD故障的后果是灾难性的,例如“.com”这个TLD故障,则48小时之后我们可能无法再访问全世界任何以“.com”结尾的网站,比如XY的www.xxxyyy.com;“.cn”这个TLD故障,则24小时之后我们可能无法再访问任何以“.cn”结尾的网站,因此TLD故障的影响巨大,也正是因为此,有些黑客试图通过攻击TLD而达到瘫痪全球互联网的目的,甚至发生过部分国家的TLD被一些组织关闭而导致这个国家的域名不能访问的重大事件。
TLD故障通过影响DNS递归软件的DNS递归过程体现出来,因此,DNS递归软件在整个DNS系统中扮演着关键的角色。一般而言,一套完善的DNS递归软件的代码量在万行以上级别,并且需要经过几年的实际使用检验、不断修改错误才能逐渐变成可用性较高的成熟软件,因而开发一套完善的DNS递归软件的资金成本及时间成本都很高。全世界大规模使用的DNS递归软件仅有少量的几种,DNS软件BIND从互联网诞生以来几十年,直到今天还在不断开发完善。
TLD故障影响巨大、它又发生在复杂的DNS递归软件的DNS递归过程之中,因此,如何减少TLD故障对DNS系统的影响是个现实的技术难题。
近年来部分用户的递归DNS地址被黑客非法篡改,它除了增加安全隐患之外、用户访问网络的服务质量也大幅度下降,例如电信运营商自动分配给用户的递归DNS的IP为12.34.56.78,黑客将用户的递归DNS的IP篡改成黑客控制的递归DNS服务地址87.65.43.21,用户解析www.xxxyyy.com的IP地址时,DNS请求发给了87.65.43.21,用户最终解析到www.xxxyyy.com的IP地址是什么完全由黑客决定。基础电信运营商为了应对这种恶意的DNS劫持,在网络上部署了DNS重定向设备,DNS重定向设备监测到用户发送DNS请求给黑客的DNS服务地址之后,立即响应用户的DNS请求,这个DNS响应的内容来自于电信运营商DNS递归软件已有结果,例如监测到用户发送解析www.xxxyyy.com的DNS请求到87.65.43.21,电信运营商立即回答:www.xxxyyy.com的IP地址为221.229.203.213,如果电信运营商抢答的速度更快,则用户先收到电信运营商的DNS响应,之后再收到来自于黑客的DNS的响应则会被抛弃。电信运营商的部分技术人员原准备用DNS重定向系统来应对TLD故障,经过技术分析后发现,DNS重定向系统的正常工作,同样建立在TLD无故障并且DNS递归软件能正常完成DNS递归过程的这些前提之上,这样才能解析到正确的DNS结果、并用这个结果抢在黑客之前回答用户。DNS重定向系统仅是利用DNS递归的结果进行抢答,它在技术上无法干预DNS递归过程,不能在DNS递归过程中提供额外的保障,因此它不具备应对TLD故障的能力。
综上所述,如何更好的应对域名系统不稳定所造成的域名递归规程异常的问题,需要提出新的解决方案。基于此,本申请提出一种域名线索备份方法、装置、系统、计算机设备和介质,在该域名线索备份方法中,预先存储域名系统的域名线索记录,然后当域名递归系统发送至域名查询请求至域名系统时,采集该域名查询请求,当该域名查询请求满足预设抢答条件,根据存储的域名线索记录向域名递归系统进行抢答回注。能够在不受域名系统稳定性影响的前提下,根据预先存储的域名线索记录生成抢答内容,并向域名递归系统进行回注,保证域名递归系统向终端反馈域名解析结果的稳定性,也即增强了域名递归系统的可靠性且无需更改现有技术中域名递归系统的逻辑。
关于本申请提供的域名线索备份方法、装置、系统、计算机设备和介质的具体实施例,将在下文中详细描述。
实施例一
本申请实施例一提供了一种域名线索备份方法,通过该方法,能够避免域名系统发生故障造成的影响,具体地,图2为本申请实施例一提供的域名线索备份方法的流程图,如图2所示,该域名线索备份方法包括如下的步骤S102和步骤S102:
在该实施例中,可预先存储域名系统的域名线索记录。
具体地,域名线索记录包括域名信息、域名信息对应的IP地址,以及正常情况下,该域名信息及对应的IP地址所在的域名系统的IP地址。可存储多个域名系统的域名线索记录,具体可包括ROOT根域域名系统、TLD顶级域域名系统或子域名域名系统,相应的,域名线索记录包括类型为NS的权威域名服务器记录和与所述权威域名服务器对应的类型为A和AAAA的IP地址信息记录,该域名线索记录可存储于内存、数据库、文件系统和/或硬盘存储介质等位置,本申请对此并不进行限定。
步骤S101:采集域名递归系统发送至域名系统的第一域名查询请求。
具体地,当用户端需要访问某一域名对应的位置时,需要向域名递归系统发送域名查询请求,以获取该域名对应的IP地址,进行访问。当域名递归系统的内存在具有该域名对应的IP地址时,可直接向用户端反馈,而当域名递归系统的内存中不具有该域名对应的IP地址时,则需要向对应的域名系统发送域名查询请求,该步骤中的第一域名查询请求即为域名递归系统向域名系统发送的域名查询请求。
其中,域名包括多级域名,例如根域名、顶级域名和子域名(例如二级域名、三级域名等),相应的域名系统包括ROOT根域域名系统、TLD顶级域域名系统和子域名域名系统,域名递归系统可根据需要向上述域名系统发送域名查询请求,在该步骤中,可实时采集域名递归系统向上述任意一种域名系统发送的域名查询请求。
需要说明的是,该处的“第一域名查询请求”中的“第一”仅是从逻辑上区别域名查询请求由域名递归系统发送,相应下文中的“第二域名查询请求”并不是由域名递归系统发送。也就是说,其中的“第一”和“第二”仅用于区分域名查询请求的源发送方不同,并不构成次序上以及数据内容上的限定。针对本申请中其他的“第一”和“第二”,也均为逻辑上的区别,对此,下文不再赘述。
步骤S102:若第一域名查询请求满足预设抢答条件,则根据预先存储的域名系统的域名线索记录,向域名递归系统进行抢答回注。
在通过步骤S102采集到第一域名查询请求后,判断该第一域名查询请求是否满足预设抢答条件,其中,可预设多种抢答条件以适应不同的应用,例如,预设抢答条件包括在可接受的时长内没有收到应答,又如,预设抢答条件包括发送的域名系统为处于系统升级维护中的域名系统等。当第一域名查询请求满足预设抢答条件时,根据存储的域名线索记录向域名递归系统进行抢答回注,对于域名递归系统而言,相当于接收到域名系统应答第一域名查询请求的应答数据,以根据该应答数据向用户端发送应答域名查询请求的数据。
在该实施例提供的域名线索备份方法中,预先存储域名系统的域名线索记录,在域名递归系统进行域名递归工作的过程中,采集其发送至域名系统的域名查询请求,从而到该域名查询请求满足预设抢答条件时,根据预先存储的域名线索记录向域名递归系统进行抢答回注。采用该实施例提供的域名线索备份方法,能够在预设抢答条件之下,代替域名系统向应答域名递归系统的域名查询请求,降低域名递归系统对域名系统稳定性的依赖,提升了域名递归系统的可靠性,同时,对于域名递归系统而言,无需修改其现有技术中的运行逻辑,实现方式简单可靠。
可选地,在一种实施例中,预先存储的域名系统的域名线索记录采用以下步骤存储:采集域名系统向域名递归系统返回的第一应答数据,根据第一应答数据生成域名线索记录进行存储。
具体地,域名系统正常工作时,当接收到域名递归系统发送的域名查询请求时,会向域名递归系统返回应答数据,基于此,为了存储域名系统的域名线索记录,对域名系统返回至域名递归系统的应答数据进行采集,并将采集到的域名线索记录进行存储,随着采集时间的增加,域名线索记录也在逐渐增加。可选地,可将域名递归系统与互联网公网连接的光纤进行分光,或对域名递归系统连接的网络交换机进行数据镜像,从而可以实时采集到域名递归系统与域名系统之间的双向通信数据,其中,包括上述第一应答数据。
采用该实施例提供的域名线索备份方法,基于实际通信数据获取并存储域名系统的域名线索记录,可随着实际通信过程数据的变化而动态变化,也即采集到的域名线索记录的实时性好,例如,域名系统会根据业务数据量的变化,将相同域名的访问导航至不同的服务器上,此时,采集到的域名线索记录可跟随这种变化,从而根据该域名线索记录进行抢答回注时,应答的内容更能符合最新的状态。
可选地,在一种实施例中,预先存储的域名系统的域名线索记录采用以下步骤存储:发送第二域名查询请求至域名系统,接收域名系统返回的第二应答数据,根据第二应答数据生成域名线索记录进行存储。
具体地,可设置数据采集脚本,并构建域名查询请求,通过该脚本向域名系统发送构建的域名查询请求,然后根据域名系统返回的应答数据生成域名线索记录。
采用该实施例提供的域名线索备份方法,通过向域名系统发送域名查询请求,来获取域名系统的应答数据,进而生成域名线索记录进行存储的方式,能够快速获得域名线索记录,并且通过全面构建域名查询请求,能够快速获得覆盖面广的域名线索记录。
可选地,在一种实施例中,预先存储的域名系统的域名线索记录采用以下步骤存储:接收域名系统的管理单位或第三方维护单位提供的域名线索记录进行存储。
具体地,对于部分域名系统,域名和IP地址的对应关系由管理单位或第三方维护单位维护,在该实施例中,也可直接获取存储上述对应关系的数据库的数据。
进一步可选地,在一种实施例中,第一应答数据和第二应答数据均为应答数据,根据应答数据生成域名线索记录的步骤包括:解析应答数据中Authoritative nameservers字段的信息;若Authoritative nameservers字段的信息包括类型为SOA的记录,则将应答数据丢弃;若Authoritative nameservers字段的信息包括类型为NS的记录,则校验应答数据对应的源IP地址、目标IP地址、端口号和/或域名解析ID;若校验通过,则根据源IP地址、应答数据中的Authoritative nameservers字段的信息和Additional records字段的信息生成域名线索记录。
具体地,在解析某级别域名系统的应答数据得到的Authoritative nameservers字段的信息包括类型为SOA的记录,表明域名递归系统请求解析的域名中,该级别下一级别对应的域名是无效的,此时将该应答数据丢弃;如果得到的上述字段的信息包括类型为NS的记录,域名递归系统请求解析的域名中,该级别下一级别对应的域名是有效的,进而对应答数据对应的源IP地址(也即域名系统的IP地址)、目标IP地址(以及域名递归系统的IP地址)、端口号和/或域名解析ID进行校验,在校验通过后,生成域名线索记录。
对于来自于ROOT(也即根域域名系统)的DNS响应(也即响应数据),首先将Authoritative nameservers字段的信息读出,如果Authoritative nameservers字段的信息包含类型为SOA的记录,说明DNS递归软件(也即域名递归系统)请求解析的域名所对应的TLD是无效的,抛弃这个DNS响应;如果Authoritative nameservers字段的信息包含类型为NS的记录,说明DNS递归软件请求解析的域名所对应的TLD是有效的,则核对DNS请求(也即响应数据所响应的域名查询请求)和DNS响应的源/目标IP地址、UDP/TCP端口及DNS的transaction ID无误后,将DNS响应的源IP地址、Authoritative nameservers字段的信息及Additional records字段的信息保存到存储设备之中。例如DNS递归软件发送DNS请求到ROOT的119.9.14.201要求解析www.xxxyyy.com的IP地址,将采集到一个与该请求相对应的DNS响应,该DNS响应的源IP地址为119.9.14.201,Authoritative nameservers字段的信息有13条,每条包含的信息是:TLD为com,类型为NS,TTL为172800,name server每条不同,例如为c.gtld-servers.net;Additional records字段的信息也有13条,分别记录了Authoritative nameservers字段每条name server对应的IP地址信息,例如c.gtld-servers.net的IP地址为192.26.92.30。
对于来自于TLD(也即顶级域域名系统)的DNS响应(也即响应数据),首先将Authoritative nameservers字段的信息读出,如果Authoritative nameservers字段的信息包含类型为SOA的记录,说明DNS递归软件请求解析的域名是无效的,数据收集存储设备抛弃这个DNS响应;如果Authoritative nameservers字段的信息包含类型为NS的记录,说明DNS递归软件请求解析的域名有效的,数据收集存储设备核对DNS请求和DNS响应的源/目标IP地址、UDP/TCP端口及DNS的transaction ID无误后,将DNS响应的源IP地址、Authoritative nameservers字段的信息及Additional records字段的信息保存到存储设备之中。例如DNS递归软件发送DNS请求到com这个TLD的192.33.14.30要求解析www.xxxyyy.com的IP地址,数据收集存储设备将采集到一个与该请求相对应的DNS响应,该DNS响应的源IP地址为192.33.14.30,Authoritative nameservers字段的信息有4条,每条包含的信息是:域名为xxxyyy.com,类型为NS,TTL为172800,name server每条不同,例如为ns4.xxxyyy.com;Additional records字段的信息有8条,分别记录了Authoritativenameservers字段每条name server对应的IP地址信息,例如ns4.xxxyyy.com有2个IP地址,其中的一条记录了IP地址为198.11.138.245。
采用该实施例提供的域名线索备份方法,先根据Authoritative nameservers字段的信息包含类型为SOA或NS的记录判断域名的有效性,在有效的前提下,进一步对源IP地址、目标IP地址、端口号和/或域名解析ID进行校验,从而能够避免存储无效的域名线索记录,进而避免在抢答回注时,向域名递归系统提供错误的应答数据,而导致用户端不能够进行正常的网络操作。
可选地,在一种实施例中,根据预先存储的域名系统的域名线索记录向域名递归系统进行抢答回注的步骤包括:根据预设时间段的域名线索记录向域名递归系统进行抢答回注。
具体地,预设时间段的域名线索记录可以为最新时间的域名线索记录,或者,也可以为指定的历史某一时间段的域名线索记录,可选地,可以设置抢答回注时间与域名线索记录的时间段之间的时间关联关系,从而在根据预设时间段的域名线索记录向域名递归系统进行抢答回注时,首先根据当前时间在上述时间关联关系中确定出域名线索记录的时间段,然后再在存储的不同时间段的域名线索记录中,查询该确定出的时间段的域名线索记录,例如,某域名的访问量在一天的不同时间段内差异较大,从而在不同时间段会将用户导航至不同的服务器,基于此,设置抢答回注时间与域名线索记录的时间段之间的时间关联关系为同时间段的关系,则在根据预设时间段的域名线索记录向域名递归系统进行抢答回注时,获取当前时间所在时间段的域名线索记录进行抢答回注。
采用该实施例提供的域名线索备份方法,当存储有不同时间段的域名线索记录时,可根据预设时间段的域名线索记录进行抢答回注,使得抢答回注的内容可配置度高,从而能够更灵活的进行域名对应IP地址的分配。
可选地,在一种实施例中,域名系统通过第一通信线路连接网络,根据预先存储的域名系统的域名线索记录向域名递归系统进行抢答回注的步骤包括:根据域名线索记录生成DNS响应数据包;将DNS响应数据包通过第二通信线路回注到网络,其中,DNS响应数据包的目标IP地址为域名递归系统,第二通信线路的通信速度高于所述第一通信线路。
具体地,在将响应数据包发送至域名递归系统时,采用与域名系统连接网络不同的通信线路进行回注,并且通信速度更高,从而有利于抢答回注的应答数据能够快速达到域名递归系统。
可选地,在一种实施例中,若第一域名查询请求满足预设抢答条件,则根据预先存储的域名系统的域名线索记录向域名递归系统进行抢答回注的步骤包括:若当前时间与第一域名查询请求的发出时间之间的间隔达到时长阈值时,则根据域名线索记录向域名递归系统进行抢答回注。
具体地,当域名系统存在故障不能正常响应域名递归系统时,域名递归系统无法及时接收到应答数据,在该实施例中,若发出域名查询请求后一定时长(也即时长阈值)内没有收到应答数据,则进行抢答回注,能够在顶级域名系统出现故障或被恶意篡改的情况下,仍然可保障域名递归系统的DNS递归过程基本不受影响,既无需重新开发域名递归系统中的递归软件,也无需修改现有递归软件的使用方法,这样既能保障建立在DNS之上的互联网的健壮性,又可节省大量的资金成本和时间成本。
可选地,在一种实施例中,若第一域名查询请求满足预设抢答条件,则根据预先存储的域名系统的域名线索记录向域名递归系统进行抢答回注的步骤包括:若第一域名查询请求对应的域名系统为预设域名系统,或者第一域名查询请求查询的域名为预设域名时,则根据域名线索记录向域名递归系统进行抢答回注。
具体地,抢答针对的域名查询请求可以为特定向特定域名系统发送的域名查询请求,也可以为查询的特定域名,基于预设域名系统和预设域名变化而变化。采用该实施例提供的域名线索备份方法,使得抢答回注的时机更灵活,以更好的适应不同需求。
实施例二
该实施例提供了一种域名线索备份方法及对应的系统。
其中,域名线索备份方法包括数据收集存储和数据抢答回注,其中的数据收集存储包括以下步骤:
(1)采集根域域名系统和顶级域域名系统响应给域名递归系统的域名线索记录,所述域名线索记录包括类型为NS的权威域名服务器记录和与所述权威域名服务器对应的类型为A和AAAA的IP地址信息记录;
(2)将步骤1采集到的域名线索记录,存储于内存、数据库、文件系统和/或硬盘存储介质,便于后续使用;
其中的数据抢答回注包括以下步骤:
(a)实时采集域名递归系统发送到根域域名系统和顶级域域名系统的域名查询请求;
(b)按照预设规则,对步骤a的全部或部分域名查询请求进行抢答,抢答回注的内容来源于数据收集存储的步骤2的域名线索记录。
该域名线索备份系统利用计算机硬件设备,实施上述的域名线索备份方法所描述的功能时,数据抢答回注设备通过分光或镜像的方法实时采集域名递归系统发送给根域域名系统和顶级域域名系统的域名查询请求并完成抢答回注,数据收集存储设备采用分光或镜像的方法实时采集根域域名系统和顶级域域名系统响应给域名递归系统的域名线索记录,或者采用根域域名系统和顶级域域名系统的管理单位或第三方提供的域名线索记录,或者通过编写程序发送各个域名查询请求到根域域名系统和顶级域域名系统并收集应答中的线索记录,数据收集存储设备将这些域名线索记录数据合并之后,提供给数据抢答回注设备作为抢答回注的内容来源。
利用上述的方法和系统,在TLD出现故障或被恶意篡改的情况下,仍然可保障DNS递归软件的DNS递归过程基本不受影响,既无需重新开发DNS递归软件,也无需修改现有DNS递归软件的使用方法。这样既能保障建立在DNS之上的互联网的健壮性,又可节省大量的资金成本和时间成本。
可选地,DNS递归软件通过网络发给ROOT、TLD的DNS请求都是明文,将DNS递归系统与互联网公网连接的光纤进行分光,或对DNS递归服务器连接的网络交换机进行数据镜像,可以实时采集到DNS递归软件与ROOT、TLD之间的双向通信数据。
来自于ROOT的DNS响应,数据收集存储设备首先将Authoritative nameservers字段的信息读出,如果Authoritative nameservers字段的信息包含类型为SOA的记录,说明DNS递归软件请求解析的域名所对应的TLD是无效的,数据收集存储设备抛弃这个DNS响应;如果Authoritative nameservers字段的信息包含类型为NS的记录,说明DNS递归软件请求解析的域名所对应的TLD是有效的,数据收集存储设备核对DNS请求和DNS响应的源/目标IP地址、UDP/TCP端口及DNS的transaction ID无误后,将DNS响应的源IP地址、Authoritativenameservers字段的信息及Additional records字段的信息保存到存储设备之中。例如DNS递归软件发送DNS请求到ROOT的119.9.14.201要求解析www.xxxyyy.com的IP地址,数据收集存储设备将采集到一个与该请求相对应的DNS响应,该DNS响应的源IP地址为119.9.14.201,Authoritative nameservers字段的信息有13条,每条包含的信息是:TLD为com,类型为NS,TTL为172800,name server每条不同,例如为c.gtld-servers.net;Additional records字段的信息也有13条,分别记录了Authoritative nameservers字段每条name server对应的IP地址信息,例如c.gtld-servers.net的IP地址为192.26.92.30;
来自于TLD的DNS响应,数据收集存储设备首先将Authoritative nameservers字段的信息读出,如果Authoritative nameservers字段的信息包含类型为SOA的记录,说明DNS递归软件请求解析的域名是无效的,数据收集存储设备抛弃这个DNS响应;如果Authoritative nameservers字段的信息包含类型为NS的记录,说明DNS递归软件请求解析的域名有效的,数据收集存储设备核对DNS请求和DNS响应的源/目标IP地址、UDP/TCP端口及DNS的transaction ID无误后,将DNS响应的源IP地址、Authoritative nameservers字段的信息及Additional records字段的信息保存到存储设备之中。例如DNS递归软件发送DNS请求到com这个TLD的192.33.14.30要求解析www.xxxyyy.com的IP地址,数据收集存储设备将采集到一个与该请求相对应的DNS响应,该DNS响应的源IP地址为192.33.14.30,Authoritative nameservers字段的信息有4条,每条包含的信息是:域名为xxxyyy.com,类型为NS,TTL为172800,name server每条不同,例如为ns4.xxxyyy.com;Additionalrecords字段的信息有8条,分别记录了Authoritative nameservers字段每条name server对应的IP地址信息,例如ns4.xxxyyy.com有2个IP地址,其中的一条记录了IP地址为198.11.138.245。
数据收集存储设备工作一段时间之后(例如一个星期),可以采集到绝大部分用户曾经使用过的域名的线索记录。数据收集存储设备可将这些数据,按时间进行存储。数据收集存储设备也可以采用TLD管理单位提供的数据,例如cn这个TLD由中国相关单位管理,数据收集存储设备可以利用该单位提供的与cn这个TLD有关的DNS线索记录,将这些数据与数据收集存储设备实时采集到的数据合并后,传输给数据抢答回注设备。
数据抢答回注设备实时采集DNS递归软件发送给ROOT、TLD的DNS请求。当ROOT或TLD出故障时,数据抢答回注设备针对DNS递归软件发送给ROOT、TLD的每个DNS请求,都按DNS协议规范合成相应的DNS响应数据包并将这个合成的DNS响应包发送到网络中,目标IP地址为递归DNS请求的源IP地址。对于递归DNS软件而言,数据抢答回注设备接替了故障ROOT或TLD的工作。例如当com这个TLD出故障时,DNS递归软件发送DNS请求到com这个TLD的192.33.14.30要求解析www.xxxyyy.com的IP地址,这个DNS请求的源IP地址为11.22.33.44,数据抢答回注设备实时采集到这个DNS请求之后,立即按DNS协议规范合成一个DNS响应数据包并发送到网络中,该DNS响应的源IP地址为192.33.14.30、目标IP地址为11.22.33.44,响应的内容来源于数据收集存储设备事先收集到的内容,例如Authoritative nameservers字段的信息有4条,每条包含的信息是:域名为xxxyyy.com,类型为NS,TTL为172800,name server每条不同,例如为ns4.xxxyyy.com;Additionalrecords字段的信息有8条,分别记录了Authoritative nameservers字段每条name server对应的IP地址信息,例如ns4.xxxyyy.com有2个IP地址,其中的一条记录了IP地址为198.11.138.245。
数据抢答回注的工作模式可以按需要设置,例如无论ROOT、TLD是否故障都抢答,或者DNS递归软件发出的DNS请求过了规定的时间还没得到响应后才应答;抢答的对象可以是ROOT、全部TLD、指定的TLD或某个TLD指定的某个域名;抢答的内容可以是数据收集存储设备的最新数据或指定时间的历史数据。
使用本申请的方法和系统,基础电信运营商可以在不修改现有DNS递归系统的前提下,具备应对ROOT、TLD故障或被恶意篡改的能力,从而保障DNS递归系统正常工作,避免ROOT、TLD故障或被恶意篡改而导致的大规模网络瘫痪。
可选地,在一种实施例中,如附图3所示,通过将DNS递归系统与互联网公网连接的双向光纤进行分光,或对DNS递归系统连接的网络交换机进行数据镜像的方法,数据收集存储可以实时采集到DNS递归软件与ROOT、TLD双向通信数据,数据收集存储设备核对DNS请求和DNS响应的源/目标IP地址、UDP/TCP端口及DNS的transaction ID无误后,将有效的DNS线索数据,包括ROOT、TLD响应的源IP地址、Authoritative nameservers字段的信息及Additional records字段的信息保存到存储设备之中。
如附图4所示,通过分光或镜像的方法,数据抢答回注设备可实时采集到DNS递归软件与ROOT、TLD双向通信数据,数据抢答回注设备可按预设的工作模式对这些DNS请求进行抢答,抢答的DNS数据包的内容是利用数据收集存储设备的数据、按照DNS协议规范合成的,其目标IP地址为递归DNS请求的源IP地址,通过另外一条物理网络连接将抢答DNS包回注到网络中,为了确保抢答DNS包可以先到达DNS递归软件,这条网络连接的时延越小越好。
具体实施方式描述了实施逻辑,在工程部署时,数据收集存储设备和数据抢答回注设备,可以利用同一套硬件设备,也可以按需要使用不同的硬件设备或共用一部分硬件设备。
实施例三
对应于上述实施例一,本申请实施例三提供了一种域名线索备份装置,相应的技术特征和对应的技术效果可参考上述实施例一,该处不再赘述。图5为本申请实施例提供的域名线索备份装置的框图,如图5所示,该装置包括:数据抢答回注模块201和数据收集存储模块202。
其中:所述数据收集存储模块用于存储域名系统的域名线索记录;以及所述数据抢答回注模块用于采集所述域名递归系统发送至所述域名系统的第一域名查询请求,并当所述第一域名查询请求满足预设抢答条件时,根据所述域名线索记录向所述域名递归系统进行抢答回注。
可选地,在一种实施例中,所述数据收集存储模块包括:第一存储单元,用于采集所述域名系统向所述域名递归系统返回的第一应答数据,根据所述第一应答数据生成所述域名线索记录进行存储;和/或第二存储单元,用于发送第二域名查询请求至所述域名系统,接收所述域名系统返回的第二应答数据,根据所述第二应答数据生成所述域名线索记录进行存储;和/或第三存储单元,用于接收所述域名系统的管理单位或第三方维护单位提供的所述域名线索记录进行存储。
可选地,在一种实施例中,所述第一应答数据与所述第二应答数据均为应答数据,在第二存储单元和第三存储单元中,根据所述应答数据生成所述域名线索记录时,具体执行的步骤包括:解析所述应答数据中Authoritative nameservers字段的信息;若所述Authoritative nameservers字段的信息包括类型为SOA的记录,则将所述应答数据丢弃;若所述Authoritative nameservers字段的信息包括类型为NS的记录,则校验所述应答数据对应的源IP地址、目标IP地址、端口号和/或域名解析ID;若校验通过,则根据所述源IP地址、所述应答数据中的Authoritative nameservers字段的信息和Additional records字段的信息生成所述域名线索记录。
可选地,在一种实施例中,所述数据抢答回注模块在根据所述域名线索记录向所述域名递归系统进行抢答回注时,根据预设时间段的所述域名线索记录向所述域名递归系统进行抢答回注。
可选地,在一种实施例中,所述域名系统通过第一通信线路连接网络,所述数据抢答回注模块包括生成单元,用于根据所述域名线索记录生成DNS响应数据包;发送单元,用于将所述DNS响应数据包通过第二通信线路回注到网络,其中,所述DNS响应数据包的目标IP地址为所述域名递归系统,所述第二通信线路的通信速度高于所述第一通信线路。
可选地,在一种实施例中,所述数据抢答回注模块包括:第一抢答单元,用于若当前时间与所述第一域名查询请求的发出时间之间的间隔达到时长阈值时,则根据所述域名线索记录向所述域名递归系统进行抢答回注;和/或第二抢答单元,用于若所述第一域名查询请求对应的所述域名系统为预设域名系统,或者所述第一域名查询请求查询的域名为预设域名时,则根据所述域名线索记录向所述域名递归系统进行抢答回注。
实施例四
本实施例四还提供一种计算机设备,如可以执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图3所示,本实施例的计算机设备01至少包括但不限于:可通过系统总线相互通信连接的存储器012、处理器011,如图6所示。需要指出的是,图6仅示出了具有组件存储器012和处理器011的计算机设备01,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
本实施例中,存储器012(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器012可以是计算机设备01的内部存储单元,例如该计算机设备01的硬盘或内存。在另一些实施例中,存储器012也可以是计算机设备01的外部存储设备,例如该计算机设备01上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器012还可以既包括计算机设备01的内部存储单元也包括其外部存储设备。本实施例中,存储器012通常用于存储安装于计算机设备01的操作系统和各类应用软件,例如实施例三的域名线索备份装置。此外,存储器012还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器011在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器011通常用于控制计算机设备01的总体操作。本实施例中,处理器011用于运行存储器012中存储的程序代码或者处理数据,例如域名线索备份方法等。
实施例五
本实施例五还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于存储域名线索备份装置,该计算机可读存储介质被处理器执行时实现实施例一的域名线索备份方法。
进一步地,所述计算机可读存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。
本申请所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。