一种DNS服务器的监测方法及装置与流程

文档序号:12491866阅读:201来源:国知局
本申请涉及通讯
技术领域
,尤其涉及一种DNS服务器的监测方法及装置。
背景技术
:DNS(DomainNameServer,域名服务器)是进行域名和与之相对应的IP地址转换的服务器。当DNS服务器无法正常工作时,将导致无法访问对应于域名的网站,以及依靠域名解析的应用程序无法正常工作等问题。在相关技术中,通过周期性向指定的DNS服务器主动发送指定的域名的DNS请求,并根据该DNS服务器的响应情况来判断该DNS服务器是否正常工作。然而,指定的域名由人工配置。一方面,当人工配置的域名为未注册的域名时,DNS服务器将无法解析该域名,若该DNS服务器实际上工作正常,则导致误判定该DNS服务器为工作异常;另一方面,由于人工配置的域名有限,不能覆盖实际网络中的DNS请求的多种情况,可能出现人工配置的域名DNS服务器可以正常解析,而除人工配置的域名以外的其他域名,DNS服务器不能解析的情况,导致误判定该DNS服务器为工作正常。技术实现要素:有鉴于此,本申请提供一种DNS服务器的监测方法及装置,可以解决因请求的域名不全面而导致对DNS服务器运行状态的误判的问题。为实现上述目的,本申请提供技术方案如下:根据本申请的第一方面,提出了一种DNS服务器的监测方法,包括:获取网络设备向DNS服务器发送的DNS请求报文;提取所述DNS请求报文中包含的请求信息;根据所述请求信息,监测所述DNS服务器的运行状态。根据本申请的第二方面,提出了一种DNS服务器的监测装置,包括:获取单元,获取网络设备向DNS服务器发送的DNS请求报文;提取单元,提取所述DNS请求报文中包含的请求信息;监测单元,根据所述请求信息,监测所述DNS服务器的运行状态。由以上技术方案可见,本申请通过解析网络设备向DNS服务器发送的DNS请求报文,获取并根据该网络设备请求的域名和DNS服务器的IP地址,来监测DNS服务器的运行状态,从而无需人工配置域名和DNS服务器,一方面可以避免因人工配置的域名未注册导致对DNS服务器运行状态的误判;另一方面使得向DNS服务器请求的域名覆盖更广泛,更全面,从而提高确定DNS服务器运行状态的准确性。附图说明图1是相关技术中监测模块监测DNS服务器运行状态的示意图。图2是本申请一示例性实施例提供的一种DNS服务器的监测方法的流程图。图3是本申请一示例性实施例提供的另一种DNS服务器的监测方法的流程图。图4是本申请一示例性实施例提供的一种电子设备的结构示意图。图5是本申请一示例性实施例提供的一种DNS服务器的监测装置的框图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。在相关技术中,通过在网络设备或者独立的监测设备中配置监测模块,来监测DNS服务器的运行状态。请参见图1,图1是相关技术中监测模块监测DNS服务器运行状态的示意图,如图1所示,通过人工在监测模块配置指定的域名以及指定的DNS服务器的IP地址,再由监测模块周期性向该指定的DNS服务器发送DNS请求报文,以请求指定的域名对应的IP地址,最终根据该指定的DNS服务器的响应情况来判断该指定的DNS服务器是否正常工作。举例而言,假定在监测模块配置如表1所示的域名和DNS服务器的IP地址的对应关系。序号请求域名DNS服务器的IP地址1www.baidu.com114.114.114.1142www.taobao.com202.106.196.115表1那么,监测模块周期性(比如按照周期为60秒)向IP地址为114.114.114.114的DNS服务器1发送DNS请求报文,该DNS请求报文所请求的域名为www.baidu.com;以及向IP地址为202.106.196.115的DNS服务器2发送DNS请求报文,该DNS请求报文所请求的域名为www.taobao.com。并根据相应的DNS服务器的响应情况,确定该DNS服务器是否正常工作。比如,若DNS服务器1返回了www.baidu.com对应的IP地址,则确定DNS服务器1运行正常;若DNS服务器2未返回www.taobao.com对应的IP地址,则确定DNS服务器2运行异常。然而,在相关技术中,指定的域名由人工配置。一方面,当人工配置的域名为未注册的域名时,DNS服务器将无法解析该域名,若该DNS服务器实际上工作正常,则导致误判定该DNS服务器为工作异常;另一方面,由于人工配置的域名有限,不能覆盖实际网络中的DNS请求的多种情况,可能出现人工配置的域名DNS服务器可以正常解析,而除人工配置的域名以外的其他域名,DNS服务器不能解析的情况,比如,对于已注册的域名www.test.com,该域名未配置在监测模块中,若DNS服务器不能解析出该域名对应的IP地址,且配置在监测模块中的域名该DNS服务器都可以解析出相应的IP地址,则导致误判定该DNS服务器为工作正常,而实际上该DNS服务器为工作异常。因此,本申请通过改进配置请求的域名的方式,以解决相关技术中存在的上述技术问题。为对本申请进行进一步说明,提供下列实施例:图2是本申请一示例性实施例示出的一种DNS服务器的监测方法的流程图。如图2所示,该方法可以应用于转发设备中,也可以应用于独立设置的用于监测DNS服务器运行状态的设备中。该方法可以包括以下步骤:步骤201,获取网络设备向DNS服务器发送的DNS请求报文。步骤202,提取所述DNS请求报文中包含的请求信息。在本实施例中,所述请求信息可以包含以下至少之一:所述DNS请求报文所请求的域名、所述DNS服务器的IP地址。步骤203,根据所述请求信息,监测所述DNS服务器的运行状态。在本实施例中,通过解析网络设备向DNS服务器发送的DNS请求报文,获取并根据该网络设备请求的域名和DNS服务器的IP地址,来监测DNS服务器的运行状态,从而无需人工配置域名和DNS服务器,一方面可以避免因人工配置的域名未注册导致对DNS服务器运行状态的误判;另一方面使得向DNS服务器请求的域名覆盖更广泛,更全面,从而提高确定DNS服务器运行状态的准确性。在本实施例中,可以通过获取预配置的监测结果集合并动态维护该监测结果集合来监测所述DNS服务器的运行状态,所述监测结果集合用于记录所述DNS服务器的历史状态信息;举例而言:在一种情况下,若所述监测结果集合中记录有所述DNS服务器的历史状态信息,且所述历史状态信息对应的缓存时长未超时,则维持所述历史状态信息不变。在另一种情况下,若所述监测结果集合中未记录所述DNS服务器的历史状态信息,或者记录的所述历史状态信息对应的缓存时长超时,则根据所述请求信息,向所述DNS服务器发送DNS请求报文,以根据所述DNS服务器的响应结果,确定并在所述监测结果集合中更新所述DNS服务器的历史状态信息。其中,在一实施例中,所述缓存时长可以为预定义的固定时长;当获取的DNS请求报文对应的历史状态信息的缓存时长未超过该固定时长时,默认该历史状态信息记录的运行状态即为所述DNS服务器的当前运行状态。在另一实施例中,可以动态设置所述缓存时长,举例而言:在一种情况下,可以将所述缓存时长设置为所述DNS服务器返回的DNS响应报文中所有资源记录的TTL值的平均值;在另一种情况下,可以将所述缓存时长设置为所述DNS服务器返回的DNS响应报文中排列于首个或最后一个资源记录的TTL值;在又一种情况下,可以将所述缓存时长设置为所述DNS服务器返回的DNS响应报文中所有资源记录的TTL值中的最大值或者最小值。在本实施例中,通过设置缓存时长,可以有效降低向DNS服务器请求域名的频率,从而减少对DNS服务器处理资源的占用。为了便于理解,下面结合图3,对本申请的技术方案进行详细说明。请参见图3,图3是本申请一示例性实施例示出的一种DNS服务器的监测方法的流程图,如图3所示,该方法可以应用于转发设备中,也可以应用于独立设置的用于监测DNS服务器运行状态的设备中。该方法可以包括以下步骤:步骤301,解析DNS请求报文。步骤302,提取请求信息。在本实施例中,通过获取并解析网络设备向DNS服务器发送的DNS请求报文,提取请求信息(包含DNS请求报文所请求的域名、所请求的DNS服务器的IP地址),并根据该请求信息来监测相应的DNS服务器的运行状态。相比于人工配置指定的域名和指定的DNS服务器,本申请可以监测实际网络环境中网络设备所请求的域名和DNS服务器,从而使得监测的范围更为广泛,更为全面。步骤303,查找对应的监测结果集合。在本实施例中,本申请动态维护了针对网络设备请求的域名的监测结果集合。监测结果集合中记录了对应于域名的DNS服务器的历史状态信息。举例而言,比如对应于域名www.dp.com的监测结果集合可以为如表2所示的形式:序号DNS服务器的IP地址DNS服务器的状态缓存时长1114.114.114.114UP100s表2其中,监测结果集合中记录有对应于域名www.dp.com的DNS服务器的IP地址、该DNS服务器的状态、该状态的缓存时间。DNS服务器的状态包括UP和DOWN。UP状态表示DNS服务器为工作正常的状态,即DNS服务器可以提供对相应域名的解析服务;DOWN状态表示DNS服务器为工作异常的状态,即DNS服务器无法提供对相应域名的解析服务。缓存时长表示在该时长内,默认相应的DNS服务器的当前运行状态即为监测结果集合中记录的运行状态,而在缓存时长外,则默认监测结果集合中记录的运行状态失效,即监测结果集合中记录的运行状态已经不能准确表明该DNS服务器的当前运行状态了。比如,表2中的DNS服务器,其IP地址为114.114.114.114,在一种情况下,当该DNS服务器的状态为UP状态时,说明从记录该DNS服务器为UP状态开始,在接下来的100s内,默认该DNS服务器都为UP状态。而当超过100s时,记录的UP状态失效,需要重新确认并更新该DNS服务器的运行状态;在另一种情况下,当该DNS服务器的状态为DOWN状态时,说明从记录该DNS服务器为DOWN状态开始,在接下来的100s内,默认该DNS服务器都为DOWN状态。而当超过100s时,记录的DOWN状态失效,需要重新确认并更新该DNS服务器的运行状态。步骤304,判断是否存在对应的监测结果集合,若存在,则转入步骤305,否则转入步骤306。在本实施例中,当存在对应的监测结果集合用于记录对应的DNS服务器的历史状态信息时,动态维护该监测结果集合;当不存在对应的监测结果集合用于记录对应的DNS服务器的历史状态信息时,创建相应的监测结果集合,用于后续记录对应的DNS服务器的历史状态信息。步骤305,判断监测结果集合中记录的状态对应的缓存时长是否超时,若超时,则转入步骤306,否则转入步骤308。在本实施例中,可以利用当前时刻和记录状态的时刻来确定缓存时长是否超时。举例而言,假定当前时刻为12:00:00,记录表2中DNS服务器为UP状态的时刻为11:58:00,由于缓存时长100s<120s,所以确定缓存时长超时。当然,也可以采用其他方式(例如采用定时器)来确定缓存时长是否超时,本申请并不对此进行限制。步骤306,根据提取的请求信息,向DNS服务器发送DNS请求报文。在本实施例中,承接于步骤304,若不存在对应的监测结果集合,或者承接于步骤305,若对应的监测结果对应的缓存时长超时,则根据步骤302提取的请求信息,向对应的DNS服务器发送DNS请求报文,以根据该DNS服务器的响应情况,判断该DNS服务器的运行状态。举例而言,在一种情况下,承接于步骤305中的举例(即缓存时长超时),此时可以先将监测结果集合中记录的提取的请求信息为:请求的域名为www.dp.com,所请求的DNS服务器的IP地址为114.114.114.114。由于该DNS服务器的UP状态对应的缓存时长超时,所以需要向IP地址为114.114.114.114的DNS服务器发送请求报文,该请求报文请求的域名为www.dp.com。当该DNS服务器返回的DNS响应报文中包含对应于该域名的IP地址时,判断该DNS服务器工作正常,并更新监测结果集合记录“UP状态”的时刻;当该DNS服务器未能解析出该域名对应的IP地址时,判断该DNS服务器工作异常,并在监测结果集合中将“UP状态”更新为“DOWN状态”,同时更新记录“DOWN状态”的时刻。在另一种情况下,当不存在与提取的请求信息对应的监测结果集合时,其发送DNS请求报文的过程与上述情况类似,在此不再赘述。步骤307,根据DNS服务器的响应情况,更新历史状态信息。步骤308,维持历史状态信息不变。在本实施例中,若监测结果集合中记录的状态对应的缓存时长未超时,则维持监测结果集合中记录的历史状态信息不变,即默认该历史状态信息记录的运行状态即为相应的DNS服务器的当前运行状态。通过设置缓存时长,可以有效降低向DNS服务器请求域名的频率,从而减少对DNS服务器处理资源的占用。由以上技术方案可见,本申请通过解析网络设备向DNS服务器发送的DNS请求报文,获取并根据该网络设备请求的域名和DNS服务器的IP地址,来监测DNS服务器的运行状态,从而无需人工配置域名和DNS服务器,一方面可以避免因人工配置的域名未注册导致对DNS服务器运行状态的误判;另一方面使得向DNS服务器请求的域名覆盖更广泛,更全面,从而提高确定DNS服务器运行状态的准确性。在本申请的技术方案中,监测结果集合中的缓存时长可以设置为固定时长,例如对应于所有的运行状态的缓存时长可以统一设置为100s,当然,也可以是其他固定的数值,本申请并不对此进行限制。同时,也可以根据DNS服务器返回的DNS响应报文中包含的多个资源记录的TTL值,对缓存时长进行动态设置,下面举例进行说明:假定向IP地址为192.168.2.1的DNS服务器发送DNS请求报文,其请求的域名为www.baidu.com,请求的类型为A类型,在该DNS服务器返回的响应报文中,存在3个A类型资源记录,依次为220.181.112.244(TTL值为60s)、220.181.111.188(TTL值为30s)、220.181.111.180(TTL值为90s)。则该DNS服务器的运行状态为UP状态。那么,在一种情况下,可以将上述“UP状态”对应的缓存时长设置为上述3个A类型资源记录的TTL值的平均值,即设置为60s。在另一种情况下,可以将上述“UP状态”对应的缓存时长设置为上述3个A类型资源记录中排列于首个或最后一个资源记录的TTL值。比如,若为选取排列于首个资源记录的TTL值作为缓存时长,则选取220.181.112.244的TTL值60s;若为选取排列于最后一个资源记录的TTL值作为缓存时长,则选取220.181.111.180的TTL值90s。在又一种情况下,可以将上述“UP状态”对应的缓存时长设置为上述3个A类型资源记录的TTL值中的最大值或者最小值。比如,若选取3个A类型资源记录的TTL值中的最大值作为缓存时长,则选取220.181.111.180对应的TTL值90s;若选取3个A类型资源记录的TTL值中的最小值作为缓存时长,则选取220.181.111.188对应的TTL值30s。图4示出了根据本申请的一示例性实施例的电子设备的示意结构图。请参考图4,在硬件层面,该电子设备包括处理器402、内部总线404、网络接口406、内存408以及非易失性存储器410,当然还可能包括其他业务所需要的硬件。处理器402从非易失性存储器410中读取对应的计算机程序到内存402中然后运行,在逻辑层面上形成DNS服务器的监测装置。当然,除了软件实现方式之外,本申请并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。请参考图5,在软件实施方式中,该DNS服务器的监测装置可以包括获取单元501、提取单元502和监测单元503。其中:获取单元501,获取网络设备向DNS服务器发送的DNS请求报文;提取单元502,提取所述DNS请求报文中包含的请求信息;监测单元503,根据所述请求信息,监测所述DNS服务器的运行状态。可选的,所述请求信息包含以下至少之一:所述DNS请求报文所请求的域名、所述DNS服务器的IP地址。可选的,所述监测单元503具体用于:获取预配置的监测结果集合,所述监测结果集合用于记录所述DNS服务器的历史状态信息;若所述监测结果集合中记录有所述DNS服务器的历史状态信息,且所述历史状态信息对应的缓存时长未超时,则维持所述历史状态信息不变。可选的,所述监测单元503进一步具体用于:若所述监测结果集合中未记录所述DNS服务器的历史状态信息,或者记录的所述历史状态信息对应的缓存时长超时,则根据所述请求信息,向所述DNS服务器发送DNS请求报文,以根据所述DNS服务器的响应结果,确定并在所述监测结果集合中更新所述DNS服务器的历史状态信息。可选的,所述缓存时长为预定义的固定时长;或者,所述缓存时长为以下任一TTL值:所述DNS服务器返回的DNS响应报文中所有资源记录的TTL值的平均值;所述DNS服务器返回的DNS响应报文中排列于首个或最后一个资源记录的TTL值;所述DNS服务器返回的DNS响应报文中所有资源记录的TTL值中的最大值或者最小值。上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1