专利名称:一种安全可靠的dns区文件信息下发更新方法及系统的制作方法
技术领域:
本发明涉及一种安全可靠的DNS区文件信息下发更新方法及系统,属于计算机网络技术领域。
背景技术:
域名系统(Domain Name System,DNS)是重要的互联网基础设施,包括可以将域名 和IP(Internet Protocol,互联网协议)地址相互映射的一个分布式数据库,以及实现域名和网络可以识别的IP地址转换功能的软件系统。DNS中包含了用来按照一种分层结构定义Internet上使用的主机名字的语法,还有名字的授权规则,以及为了定义名字和IP地址的对应,系统需要进行的所有设置。实际上,DNS是一个分布式数据库。它允许对整个数据库的各个部分进行本地控制;同时整个网络也能通过客户/服务器方式访问每个部分的数据。权威解析数据库,用于存放标准的解析数据的数据库。在现有的DNS服务中,用户往往是将解析记录的数据以WEB或者API等这种简单易用的方式提交到权威解析数据库中,DNS服务提供者从权威解析数据库中提取数据,并生成相应的区文件,然后以手动或者其他第三方软件的方式下发到各个提供服务的子节点中,目前这种方法至少存在如下问题1.手动执行更新下发,会造成管理人员的操作繁琐,而且手动执行发生错误的概率较大,一旦出错以后,可能导致不可预计的后果。2.依赖第三方软件实现更新,虽然可靠性有所提高,但可控性较差,且性能与安全无法得到保障。
发明内容
针对现有技术中存在的技术问题,本发明的目的在于提供一种安全可靠的DNS区文件信息下发更新方法及系统。本发明主节点从权威解析数据库中定时批量的提取数据,经过预处理以后,将区文件的更新信息以消息的方式投递到消息服务器中,消息服务器将区文件的更新信息顺序的,隔离的下发到各个子节点并同时保存在数据库中,待所有子节点确认更新完毕以后,消息将从数据库中删除。本发明的技术方案为一种安全可靠的DNS区文件信息下发更新方法,其步骤为I)主节点从权威解析数据库中提取若干条解析更新数据;2)主节点对提取的相同区解析更新数据进行合并,并将合并后的解析更新数据组装成字节流消息;3)主节点监听消息服务器集群中各个消息服务器的连接情况;4)主节点根据设定的发送频率将字节流消息发送到监听所确定可达的消息服务器,即消息服务器集群的主消息服务器;
5)主消息服务器将接收的字节流消息持久化到本地数据库,然后再根据消息服务器集群中的配置文件将接收的字节流消息发送到子节点;6)子节点将主消息服务器发送来的字节流消息解析成对应的更新信息,执行更新命令并发送反馈信息给主消息服务器;如果所有子节点更新成功,则主节点将保存在数据库中的持久化消息进行删除。进一步的,主节点对提取的相同区解析更新数据进行合并的方法为对于同一条区文件的解析更新数据,如果该区文件更新多次,则将多次更新作为I次处理,获取最新的更新结果。进一步的,所述主消息服务器对发送到同一目的的字节流消息进行管理,其方法 为主消息服务器顺序为每一字节流消息设置一 ID编号,并且根据每一子节点的反馈信息保存当前各个节点所处理的字节流消息ID ;然后下一次发送字节流消息时,将各子节点当前保存的字节流消息编号ID+1的字节流消息发送给对应的子节点。进一步的,所述子节点根据设定的频率接收主消息服务器发送来的字节流消息。进一步的,所述消息服务器集群包括若干台消息服务器,在同一时间内,将其中一台消息服务器设为主消息服务器,提供服务,其余消息服务器设为辅消息服务器,并形成辅消息服务器队列;如果当前主消息服务器无法提供服务,则将辅消息服务器队列中最靠前的一台可达的辅消息服务器设为主消息服务器;如果原主消息服务器恢复正常,则将原主消息服务器列入辅消息服务器队列的末尾处。进一步的,每一子节点包括一接收更新区信息模块,用于根据设定的频率接收主消息服务器发送来的字节流消息。进一步的,子节点根据自身对字节流消息的处理速度动态调整其接收更新区信息模块中设定的频率。一种安全可靠的DNS区文件信息下发更新系统,其特征在于包括一主节点,若干子节点,消息服务器集群;所述消息服务器集群通过网络分别与主节点、子节点通信连接;其中,所述主节点用于监听消息服务器集群中各个消息服务器的连接情况,以确定可达的消息服务器,即消息服务器集群的主消息服务器;同时主节点从权威解析数据库中提取若干条解析更新数据,并对提取的相同区解析更新数据进行合并,然后将合并后的解析更新数据组装成字节流消息后,按照设定的发送频率发送到主消息服务器;所述主消息服务器将接收的字节流消息持久化到本地数据库,然后再根据消息服务器集群中的配置文件将接收的字节流消息发送到子节点;所述子节点将主消息服务器发送来的字节流消息解析成对应的更新信息,执行更新命令并发送反馈信息给主消息服务器;如果所有子节点更新成功,则主节点将保存在数据库中的持久化消息进行删除。与现有技术相比,本发明产生的技术效果为在无人工手动干预的情况下,保证区文件的更新下发的顺序性和正确性。即便在部分子节点因故障导致更新失败的情况下,也不会影响到其他子节点的更新情况,并且对于故障子节点来说,在其故障时间段内的更新消息不会被丢失,待其恢复正常以后,更新会继续,保证各个子节点数据的一致性。
本发明采用消息的方式将区文件的更新信息保存到消息服务器上并持久化到数据库中,保证了区文件的更新的顺序性,隔离性,安全性和一致性,并且具有较高的可控性。
图1为本发明系统结构图;图2为主节点对区文件更新信息发送方法流程图;图3为消息服务器方法流程图;图4为持久化消息管理模块方法流程图;
图5为子节点节点区文件更新方法流程图。
具体实施例方式本发明主要由三部分内容组成区文件更新信息发送、消息服务器集群、子节点区文件更新。如图1所示。区文件更新信息发送主要功能是主节点将解析数据从权威解析数据库中提取出来,并以消息的格式发送到消息服务器;即主节点将解析数据库的更新转换成区文件更新消息发送到消息服务器。区文件更新信息发送主要由以下几个模块组成解析数据提取模块,解析数据预处理模块,消息组装模块,消息发送模块。如图2所示。解析数据提取模块主要是从权威解析数据库中提取若干条解析更新数据,权威解析数据库中有数据表记录更新数据,该表的每一条数据都是更新数据。更新数据提取的条数可以根据消息的堆积情况进行动态的控制。如果消息服务器中的消息堆积了很多,提取的条数可以适当的调低,以避免消息服务器由于消息太多出现拥堵的故障。解析数据预处理模块主要是对提取的相同区解析更新数据进行合并,以降低发送消息的频率从而提高更新效率。比如,对于同一条区文件的解析更新数据进行合并处理,该区文件更新了 3次,系统会将3次更新作为I次处理,获取最新的更新结果,即只处理最近一次的更新。消息组装模块将合并以后的解析更新数据组装成字节流。消息服务器监听模块监听集群中各个消息服务器的连接情况。消息发送模块根据指定的发送频率将字节流消息发送到消息服务器监听模块所确定的可达的消息服务器(即消息服务器集群的主消息服务器)。这里同样对消息的发送采取了控制措施,以避免消息服务器产生拥堵。消息服务器集群主要由若干台消息服务器组成,在同一时间内,只有一台消息服务器提供服务,称为主消息服务器,其余的都是辅消息服务器,并形成辅消息服务器队列。如果主消息服务器因故障无法提供服务,比如路由不可达,则由辅消息服务器队列中的最靠前的一台可达的辅消息服务器接管服务,变为主消息服务器。如果原来的主消息服务器恢复正常,则原主消息服务器进入辅消息服务器队列的末尾处。主消息服务器的主要功能是接收消息并将其进行持久化到本地数据库(即消息服务器集群共享的数据库),然后再将消息发送到子节点并接收子节点的反馈信息,如果子节点更新成功,则将保存在数据库中的持久化消息进行删除。子节点信息包含在消息服务器集群中的配置文件里,所以不管是集群中的哪台服务器充当了主消息服务器,都会知道子节点的信息,并将消息准确的发送到子节点里。消息服务器主要有以下几个模块组成消息接收模块,消息识别模块,消息发送模块,消息持久化管理模块,持久化消息数据库。如图3所示。消息接收模块主要是接收区文件更新信息和子节点区文件更新的反馈信息。消息识别模块对接收到的消息来源,发送目的,消息类型进行识别,并将结果发送到持久化消息管理模块。持久化消息管理模块对持久化消息DB进行增删改的操作。持久化消息管理模块会对发送到同一目的的消息进行管理,具体流程如图4所示,其方法为每条消息在主消息服务器的数据库DB中都有一个ID,ID是自增长的,并且还根据子节点的反馈信息保存当前各个子节点所处理的消息的ID,因为每个子节点可能由于网络等 原因,处理消息的速度不会是一样的,所以有可能子节点A处理到了消息50,子节点B由于网络较慢,只处理到了消息48,那么,消息服务器下一个发送到A节点的消息ID应该是51,而下一个发送到B节点的消息ID应该是49 ;即主消息服务器下一次发送字节流消息时,将各子节点当前保存的字节流消息编号ID+1的字节流消息发送给对应的子节点。持久化消息DB :保存所有未被全部子节点更新确认的消息和各个子节点当前更新的消息ID。消息发送模块将符合各个子节点的消息以字节流的形式发送到各个子节点。子节点进行节点区文件更新主要是接收消息服务器发送来的更新消息,并解析成对应的更新信息,执行更新命令。主要由接收更新区信息模块,区更新信息处理模块,更新命令执行模块,反馈信息发送模块。如图5所示。接收更新区信息模块主要功能是根据设定的频率接收主消息服务器发送来的字节流消息。为了保证子节点更新的有序、流畅的进行更新,对于子节点更新的频率做到可控。区更新信息处理模块将字节流还原成解析节点能够识别的区文件格式和对应的生效命令。更新命令执行模块执行更新命令。反馈信息发送模块执行更新命令,如果成功以后,将更新成功的消息发送到主消息服务器。
权利要求
1.一种安全可靠的DNS区文件信息下发更新方法,其步骤为 1)主节点从权威解析数据库中提取若干条解析更新数据; 2)主节点对提取的相同区解析更新数据进行合并,并将合并后的解析更新数据组装成字节流消息; 3)主节点监听消息服务器集群中各个消息服务器的连接情况; 4)主节点根据设定的发送频率将字节流消息发送到监听所确定可达的消息服务器,即消息服务器集群的主消息服务器; 5)主消息服务器将接收的字节流消息持久化到本地数据库,然后再根据消息服务器集群中的配置文件将接收的字节流消息发送到子节点; 6)子节点将主消息服务器发送来的字节流消息解析成对应的更新信息,执行更新命令并发送反馈信息给主消息服务器;如果所有子节点更新成功,则主节点将保存在数据库中的持久化消息进行删除。
2.如权利要求1所述的方法,其特征在于主节点对提取的相同区解析更新数据进行合并的方法为对于同一条区文件的解析更新数据,如果该区文件更新多次,则将多次更新作为I次处理,获取最新的更新结果。
3.如权利要求1所述的方法,其特征在于所述主消息服务器对发送到同一目的的字节流消息进行管理,其方法为主消息服务器顺序为每一字节流消息设置一 ID编号,并且根据每一子节点的反馈信息保存当前各个节点所处理的字节流消息ID ;然后下一次发送字节流消息时,将各子节点当前保存的字节流消息编号ID+1的字节流消息发送给对应的子节点。
4.如权利要求1所述的方法,其特征在于所述子节点根据设定的频率接收主消息服务器发送来的字节流消息。
5.如权利要求1所述的方法,其特征在于所述消息服务器集群包括若干台消息服务器,在同一时间内,将其中一台消息服务器设为主消息服务器,提供服务,其余消息服务器设为辅消息服务器,并形成辅消息服务器队列;如果当前主消息服务器无法提供服务,则将辅消息服务器队列中最靠前的一台可达的辅消息服务器设为主消息服务器;如果原主消息服务器恢复正常,则将原主消息服务器列入辅消息服务器队列的末尾处。
6.如权利要求1所述的方法,其特征在于每一子节点包括一接收更新区信息模块,用于根据设定的频率接收主消息服务器发送来的字节流消息。
7.如权利要求6所述的方法,其特征在于子节点根据自身对字节流消息的处理速度动态调整其接收更新区信息模块中设定的频率。
8.一种安全可靠的DNS区文件信息下发更新系统,其特征在于包括一主节点,若干子节点,消息服务器集群;所述消息服务器集群通过网络分别与主节点、子节点通信连接;其中, 所述主节点用于监听消息服务器集群中各个消息服务器的连接情况,以确定可达的消息服务器,即消息服务器集群的主消息服务器;同时主节点从权威解析数据库中提取若干条解析更新数据,并对提取的相同区解析更新数据进行合并,然后将合并后的解析更新数据组装成字节流消息后,按照设定的发送频率发送到主消息服务器; 所述主消息服务器将接收的字节流消息持久化到本地数据库,然后再根据消息服务器集群中的配置文件将接收的字节流消息发送到子节点; 所述子节点将主消息服务器发送来的字节流消息解析成对应的更新信息,执行更新命令并发送反馈信息给主消息服务器;如果所有子节点更新成功,则主节点将保存在数据库中的持久化消息进行删除。
9.如权利要求8所述的系统,其特征在于所述主消息服务器包括一持久化消息管理模块;所述持久化消息管理模块为每一字节流消息设置一 ID编号,并且根据每一子节点的反馈信息保存当前各个节点所处理的字节流消息ID ;然后下一次发送字节流消息时,将各子节点当前保存的字节流消息编号ID+1的字节流消息发送给对应的子节点。
10.如权利要求8所述的系统,其特征在于所述消息服务器集群包括若干台消息服务器,在同一时间内,将其中一台消息服务器设为主消息服务器,提供服务,其余消息服务器设为辅消息服务器,并形成辅消息服务器队列;如果当前主消息服务器无法提供服务,则将辅消息服务器队列中最靠前的一台可达的辅消息服务器设为主消息服务器;如果原主消息服务器恢复正常,则将原主消息服务器列入辅消息服务器队列的末尾处。
全文摘要
本发明公开了一种安全可靠的DNS区文件信息下发更新方法及系统,属于计算机网络技术领域。本方法为主节点从权威解析数据库中定时批量的提取数据,经过预处理以后,将区文件的更新信息以消息的方式投递到消息服务器中,消息服务器将区文件的更新信息顺序的,隔离的下发到各个子节点并同时保存在数据库中,待所有子节点确认更新完毕以后,消息将从数据库中删除。本系统包括一主节点,若干子节点,消息服务器集群;所述消息服务器集群通过网络分别与主节点、子节点通信连接。与现有技术相比,本发明在无人工手动干预的情况下,保证区文件的更新下发的顺序性和正确性,并且具有较高的可控性。
文档编号H04L29/08GK103024094SQ20121046140
公开日2013年4月3日 申请日期2012年11月15日 优先权日2012年11月15日
发明者齐超, 欧阳万斌, 王国栋, 李洪涛 申请人:中国科学院计算机网络信息中心