一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

域名配置管理系统的制作方法

2021-11-03 21:09:00 来源:中国专利 TAG:


1.本发明涉及域名管理技术领域,尤其涉及一种域名配置管理系统。


背景技术:

2.域名系统(domain name system,dns)是互联网的一项服务。它作为将域名和ip地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。由于世界各国均存在着不同程度的域名侵权、域名抢注等问题,因此,需要对域名进行配置管理。
3.在一些实施例中,通过启动一个守护进程,例如定时器驱动或等待用户请求等,来执行配置更新任务,配置文件的传输一般借助rsync等文件同步工具,当配置文件更新后通过脚本或工具重启dns服务,达到一定程度的配置管理的目的。但是由于生产环境中的dns数据较为敏感,系统兼容其他dns软件成本较高,导致上述设计无法满足实际的应用场景。


技术实现要素:

4.本发明实施例提供了一种域名配置管理系统,以解决现有技术中由于生产环境中的dns数据较为敏感,系统兼容其他dns软件成本较高,导致现有设计无法满足实际的应用场景的问题。
5.为了解决上述技术问题,本发明是这样实现的:
6.第一方面,提供了一种域名配置管理系统,包括:配置管理服务端、代理agent管理集群和agent插件;所述配置管理服务端和所述agent管理集群设置于服务端,所述agent插件设置于域名系统dns客户端,所述agent插件可兼容多种类型的dns软件;
7.所述配置管理服务端为所述dns客户端提供应用程序接口,并通过所述应用程序接口向所述dns客户端下发服务端存储的配置信息,所述配置信息用于更新所述dns客户端中的配置,所述配置信息包括设备组配置数据、ip地址配置数据和区域配置数据;
8.所述agent管理集群包括多个agent管理节点,每个所述agent管理节点均接收并处理所述dns客户端中的agent插件上传的心跳信息、agent插件的配置加载状态以及所述配置管理服务端设置的锁状态。
9.在本发明实施例中,该域名配置管理系统包括设置于服务端的配置管理服务端、代理agent管理集群和设置于域名系统dns客户端的agent插件,其中,agent插件可兼容多种类型的dns软件,配置管理服务端为dns客户端提供应用程序接口,并通过应用程序接口向dns客户端下发服务端存储的配置信息,该配置信息用于更新dns客户端中的配置,配置信息包括设备组配置数据、ip地址配置数据和区域配置数据,agent管理集群包括多个agent管理节点,每个agent管理节点均接收并处理dns客户端中的agent插件上传的心跳信息、agent插件的配置加载状态以及配置管理服务器设置的锁状态。本发明实施例通过在dns客户端设置agent插件可以使系统兼容多种类型的dns软件,并在服务端设置相应的agent管理集群接收agent插件上传的心跳信息和配置加载状态,本系统支持多机房、多节点部署,系统的各个组件也支持横向扩展,因此具有较高的可用性、可扩展性。
附图说明
10.此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
11.图1是本发明的一个实施例提供的一种域名配置管理系统的结构示意图;
12.图2是本发明的一个实施例提供的一种域名配置管理系统的详细结构示意图;
13.图3是本发明的一个实施例提供的设备组配置数据的jackson图;
14.图4是本发明的一个实施例提供的ip库配置数据的jackson图;
15.图5是本发明的一个实施例提供的zone配置数据的jackson图;
16.图6是本发明的一个实施例提供的agent插件接收到etcd集群下发的配置信息后的处理逻辑流程图;
17.图7是本发明的一个实施例提供的agent管理节点的处理逻辑流程图;
18.图8是本发明的一个实施例提供的系统处理一次域名配置更新的执行流程时序图。
具体实施方式
19.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
20.本技术实施例提供了一种域名配置管理系统。该系统为一个工单系统,可允许用户批量的操作多个域名。在实现上该系统被划分为三个部分:首先为配置管理服务端,该部分对外提供应用程序接口(restful api),其包含了访问权限控制(rbac)模块、域名管理模块以及大量的业务逻辑模块;其次为部署在各个域名系统(domain name system,dns)客户端上的代理(agent),agent负责获取配置信息并使配置生效,其通过插件的方法兼容多种类型的dns软件;最后一部分为agent管理集群,该集群内的每个节点都负责接收并处理agent状态信息,agent状态信息包括agent心跳信息、agent的配置加载状态以及服务端设置的锁状态。
21.其中,rest为表述性状态传递,api为应用程序接口,restful api为rest风格的应用程序接口;dns为一个将域名和网际互连协议(internet protocol,ip)地址相互映射的分布式数据库;agent为部署在dns客户端上的守护进程,用于配置更新。
22.如图1所示,为本技术实施例提供的一种域名配置管理系统的结构示意图图。如图1所示,该域名配置管理系统可以包括:配置管理服务端、代理agent管理集群和agent插件。
23.其中,配置管理服务端和agent管理集群设置于服务端,agent插件设置于域名系统dns客户端,agent插件可兼容多种类型的dns软件。配置管理服务端为dns客户端提供应用程序接口,并通过应用程序接口向dns客户端下发服务端存储的配置信息,配置信息用于更新dns客户端中的配置,配置信息包括设备组配置数据、ip地址配置数据和区域配置数据;agent管理集群包括多个agent管理节点,每个agent管理节点接收并处理dns客户端中的agent状态信息,agent状态信息包括agent插件上传的心跳信息、agent插件的配置加载状态以及配置管理服务端设置的锁状态。
24.其中,锁状态可以包括释放状态、锁定状态。
25.在本技术实施例中,该域名配置管理系统包括设置于服务端的配置管理服务端、代理agent管理集群和设置于域名系统dns客户端的agent插件,其中,agent插件可兼容多种类型的dns软件,配置管理服务端为dns客户端提供应用程序接口,并通过应用程序接口向dns客户端下发服务端存储的配置信息,配置信息用于更新dns客户端中对的配置,配置信息包括设备组配置数据、ip地址配置数据和区域配置数据,agent管理集群包括多个agent管理节点,每个agent管理节点均接收并处理dns客户端中的agent状态信息,agent状态信息包括agent插件上传的心跳信息、agent插件的配置加载状态以及配置管理服务器设置的锁状态。本发明实施例通过在dns客户端设置agent插件可以使系统兼容多种类型的dns软件,并在服务端设置相应的agent管理集群接收agent插件上传的心跳信息和配置加载状态,本系统支持多机房、多节点部署,系统的各个组件也支持横向扩展,因此具有较高的可用性、可扩展性。
26.本系统依托用户表、产品线表、角色表、用户组表以及请求白名单表实现了基于角色的权限控制。在系统中,一个用户与产品线的组合对应了一个应用程序接口(application programming interface,api)用户,api用户自维护一个ip白名单,用于请求系统api,系统通过修改api用户的角色来控制api用户对域名资源的操作权限。
27.如图2所示,在本技术的一个可能的实施方式中,配置管理服务端包括访问权限控制模块、域名管理模块和业务逻辑模块。
28.其中,访问权限控制模块,用于根据从数据库中获取的数据确定下发的配置中的设备访问权限。域名管理模块,用于根据从数据库中获取的数据确定各设备的域名。业务逻辑模块包括大量的业务逻辑。
29.在本技术的一个可能的实施方式中,将多个dns客户端按照服务类别被划分为不同设备组,每个设备组使用一种dns软件。
30.在本技术实施例中,为实现对多种dns软件的兼容,系统将多个dns客户端按照服务类别划分为不同的设备组进行管理,每个设备组使用一种dns软件。
31.其中,服务类别是指域名系统提供服务的类别。例如,第一设备组提供主机名解析服务,第二设备组提供业务相关的域名的服务,该类信息均被记录在设备组角色表中。系统可以通过设备组对区域(zone)进行管理,再通过zone对域名进行管理。
32.如图2中所示,设备组1对应的是powerdns软件,设备组2对应的是bind9软件,设备组3对应的是其他dns软件。
33.为了实现域名的动态调度功能,系统引入了域名分区的概念,在本技术的一个可能的实施方式中,设备组包括多个区域,每个区域包括多个域名,每个域名与ip地址一一关联。
34.在本技术实施例中,域名通过分区与记录关联,每一个域名都可以有一个默认分区,当域名不需要动态调度时,系统可以通过默认分区查找域名的记录信息。系统通过ip库与ip地址存储完整的ip库信息,通过将域名分区与ip地址关联来实现域名动态调度。例如,某国家某省某地区的用户a在访问域名b时,dns软件可通过ip库获取该用户的地理位置,进而选择域名的一个分区来解析域名记录。
35.在本技术的一个可能的实施方式中,服务端还包括:数据库,数据库中存储配置信
息和agent状态信息,配置管理服务端从数据库获取配置信息和agent状态信息,并根据agent状态信息将配置信息通过应用程序接口下发至dns客户端。
36.在本技术实施例中,服务端可以包括数据库,数据库中存储配置信息,例如设备组配置数据、ip库配置数据和zone配置数据等。
37.具体地,设备组配置数据的jackson图如图3所示,ip库配置数据的jackson图如图4所示,zone配置数据的jackson图如图5所示,其中,*表示由一个数据元素出现至少一次构成。
38.设备组配置数据的顺序为:etcd值(etcd value)

>md5校验值

>json格式配置信息

>设备角色id

>设备组id

>设备id

>设备管理ip

>设备id

>
…‑
>设备id(输入完成)

>设备组名

>设备组id

>
…‑
>设备组id(输入完成)

>设备角色名

>设备角色id

>
…‑
>设备角色id(输入完成)。
39.ip库配置数据的顺序为:etcd value

>md5校验值

>json格式配置信息

>ip段

>起始ip(整型)

>结束ip(整型)

>ip位置id

>父级位置id

>位置编号

>国家编号

>省份编号

>城市编号

>运营商编号

>数据中心(internet data center,简称idc)编号

>ip段

>
…‑
>ip段(输入完成)。
40.zone配置数据的顺序为:etcd value

>md5校验值

>json格式配置信息

>zone配置

>zone

>版本号

>所有域名配置

>域名

>启用

>所有分区

>分区

>默认

>策略

>所有记录

>记录

>类型

>启用

>生存时间值(time to live,ttl)

>权重

>所有记录

>
…‑
>所有记录(输入完成)

>所有分区

>
…‑
>所有分区(输入完成)

>所有域名配置

>
…‑
>所有域名配置(输入完成)

>刷新率(refresh)

>重试(retry)

>过期(expire)

>生存时间值(time to live,ttl)。
41.在本技术的一个可能的实施方式中,数据库可以根据agent管理集群接收的agent状态信息进行更新。
42.也就是,agent管理集群中的每个节点都负责接收并处理agent心跳信息、同步agent的配置加载状态以及清理服务端设置的锁,然后将这些信息发送至数据库,数据库将上述信息进行更新,以便下次下发数据时,配置管理服务端可以根据上述信息下发配置。
43.在本技术的一个可能的实施方式中,服务端还包括:etcd集群,以及配置管理服务端根据agent状态信息将配置信息通过应用程序下发至dns客户端,可以具体包括:配置管理服务端根据agent状态信息将配置信息同步至etcd集群,etcd集群将配置信息通过应用程序接口下发至dns客户端。
44.也就是,配置管理服务端从数据库中获取配置信息和agent状态信息,并根据agent状态信息将配置信息同步至etcd集群,etcd集群将配置信息通过应用程序接口下发至dns客户端。
45.具体地,etcd集群包括多个etcd节点,每个etcd节点对应dns客户端的一个设备组,etcd节点将配置信息下发至与应用程序接口相对应的设备组。
46.在本技术实施例中,配置管理服务端从数据库中获取配置信息后,同步至etcd集群中的不同etcd节点,然后再通过etcd节点将配置信息下发至dns客户端中相应的设备组。
47.在本技术的一个可能的实施方式中,etcd集群中的配置信息以区域为单元存储,每个区域均包括设备组角色id、设备组id和区域id。
48.在本实施例中,在etcd中域名配置信息以zone为单位存储,它的键key由设备组角色id、设备组id以及zone id组成。例如:cfg/device

group

role
‑1‑
part/device

group
‑3‑
part/zone

12

part。这样在批量操作域名时可以提高配置同步效率,但一个zone的配置数据往往较多,可能超过请求etcd时允许的最大字节数,因此在同步至etcd集群时还可以对数据进行压缩处理。也即,配置管理服务端将配置信息压缩处理后同步至etcd集群。
49.进一步地,如图6所示,agent插件接收到etcd集群下发的配置信息后的处理逻辑如下所示。
50.启动协程用于监控内部运行错误,设置定时器,扫描agent错误日志,判断是否出现系统错误,若出现系统错误则发送报警然后设置定时器循环,若是未出现系统错误则设置定时器循环。
51.启动协程用于定时的心跳信息同步,设置定时器,发送心跳至agent管理集群,若失败则重试,然后设置定时器循环。
52.通过etcd获取所有设备组信息,判断agent所在设备是否加入设备组,若否则结束,若是则通过etcd获取该设备管理的所有zone配置信息,对设备解压缩,然后判断数据版本号是否等于缓存版本号,若否则缓存更新zone配置的版本号,并回传状态(失败则重试),然后启动协程用于监控zone配置的变化,若否则直接启动协程用于监控zone配置的变化,然后监控zone配置变化,判断监控(watch)是否中断,若中断则返回通过etcd获取该设备管理的所有zone配置信息,对设备解压缩,若未中断则判断是否发生变化,若未发生变化,则继续监控zone配置变化,若发生变化则缓存更新zone配置的版本号,并回传状态(失败则重试),然后继续监控zone配置变化。在判断agent所在设备加入设备组时,还启动协程用于监控设备组配置的变化,监控设备组配置变化,判断watch是否中断,若中断则重新启动协程用于监控设备组配置的变化,若未中断则判断设备是否被移动至其他设备组,若移动到其他设备组则进行通过etcd获取该设备管理的所有zone配置信息,对设备解压缩的流程,若未被移动至其他设备组则判断设备是否被移除,若被移除则结束,若未被移除则继续监控设备组配置变化。在判断agent所在设备加入设备组时,还启动协程用于监控ip库配置变化,监控ip库配置变化,判断watch是否中断,若中断则重新启动协程用于监控ip库配置变化,若未中断则判断配置是否发生变化,若未发生变化则继续监控ip库配置变化,若发生变化则重新加载配置文件,然后回传状态(失败则重试),然后继续监控ip库配置变化。在缓存更新zone配置的版本号和缓存更新zone配置版本号以及重新加载配置文件后,还可以进行数据处理插件:生成配置文件,然后dns软件配置文件,配置加载验证:加载配置并验证。
53.在本技术实施例中,agent在运行过程中会定期的向agent管理节点发送心跳信息,同时利用etcd监控机制来监控内部运行错误、定时的心跳信息同步和设备组的信息的变化。agent通过监控设备组配置来判断程序是否需要结束运行,通过监控ip库配置来更新dns客户端上的ip库数据,通过监控zone配置来执行dns配置的更新。在实现上,agent可以容忍由于网络问题导致的监控中断,并且具备异常自监控的能力。
54.agent对多种dns软件都具有良好的兼容性,这依赖于其插件化设计。不同的dns软件它们的配置文件、配置加载方式以及验证方法均不相同,将相关逻辑剥离出来并编译成插件能够以最小代价提高对dns软件的兼容性。
55.在本技术的一个可能的实施方式中,agent管理节点与agent插件通过远程过程调
用rpc进行通信;当同步心跳信息时,agent插件向agent管理节点发送设备管理ip;当同步配置加载状态时,agent插件向agent管理节点发送工单id、设备管理ip、区域以及状态码。
56.具体地,如图7所示,agent管理节点的处理逻辑如下所示。
57.启动协程用于监控内部运行错误,设置定时器,扫描agent管理节点错误日志,判断是否出现系统错误,若出现系统错误则发送报警然后设置定时器循环,若是未出现系统错误则设置定时器循环。
58.启动多个协程用于处理agent心跳信息,同时启动多个协程用于同步agent配置变更状态,然后等待rpc调用请求,保存rpc请求数据,响应agent请求,判断是否为心跳信息或者状态同步数据,若是则进行心跳数据处理,然后更新数据库设备表,继续等待rpc调用请求;若不是则设置锁(防止处理过程中集群内的数据冲突),然后更新数据库配置变更状态/更新redis缓存,来判断变更任务相关agent是否全部执行成功,若是则更新数据库配置变更状态/释放分布式锁,邮件通知、信息同步等,释放锁(方式处理过程中集群内的数据冲突),继续等待rpc调用请求,若是未成功则释放锁(方式处理过程中集群内的数据冲突),继续等待rpc调用请求。
59.在本技术实施例中,agent管理节点与agent之间使用远程过程调用(rpc)进行通信,二者通信信息较为简单。当同步心跳时agent发送设备管理ip,当同步配置加载状态时agent发送工单id、设备管理ip、zone以及状态码。为了提高信息处理效率,当接收到rpc请求后agent管理节点只会响应一个随机id,之后再通过多个协程异步的处理心跳信息与配置变更状态。与agent相同,agent管理节点也具备异常自监控的能力。
60.本系统对多种dns软件都具有较高的兼容性,同时由于agent的插件化设计,系统在部署、维护过程中也非常简单,本系统支持域名的动态调度功能,用户可自行决定是否启用,本系统实时的响应用户请求,只对待更新的zone进行配置更新,配置数据通过加密方式传输,因此配置更新的效率与安全性都较高,支持多机房、多节点部署,系统的各个组件也支持横向扩展。因此具有较高的可用性、可扩展性。
61.如图8所示,为系统处理一次域名配置更新的执行流程时序图。
62.用户向配置管理服务端提交工单数据,配置管理服务端缓存工单状态/设备分布式锁至redis,然后接收redis响应,配置管理服务端将处理后的工单数据发送至数据库,并接收数据库返回的配置数据,将配置数据发送至etcd,然后接收etcd响应数据,并向用户返回工单id,此时,agent向etcd获取配置数据,接收etcd返回的配置数据,然后向agent管理集群发送任务状态,agent管理集群设置任务锁至redis,并接收redis响应,然后向agent发送响应信息,然后agent管理集群更新数据库并接收数据库响应,agent管理集群向redis更新缓存/释放分布式锁,并接收redis响应,然后向redis发送释放锁的命令,并接收redis响应。
63.用户向配置管理服务端查询工单状态时,配置管理服务端从redis获取工单缓存,得到redis返回的工单缓存信息,并将工单执行状态发送至用户。
64.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该
要素的过程、方法、物品或者装置中还存在另外的相同要素。
65.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
66.上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献