本作品采用知识共享署名 3.0 非移植许可协议授权。 http://creativecommons.org/licenses/by/3.0/legalcode
服务器池¶
https://blueprints.launchpad.net/designate/+spec/server-pools
问题描述¶
服务器池适用于以下几种场景
私有池¶
这允许用户拥有“私有”DNS服务器。这些服务器通常允许使用非标准顶级域名(.dev、.local 等),并且可能没有相同的黑名单限制。它们面向使用 Neutron 网络和 VPC 风格设置的人员,在这种设置中,对 DNS 服务器的访问来自受信任的网络(例如,云内 - 拥有的实例,以及通过 VPN 连接的现场资源)
这将允许客户为内部服务器设置 DNS 条目,这些条目在公共池中不可用的域上,并使其可供内部用户访问
分发¶
拥有具有相同功能的多个公共池,将允许调度器在多个基础设施上分发区域。
作为池更改的一部分,我们也在更改服务器 API 的工作方式,以便对服务器、其功能和后端进行更细粒度的控制
提议的变更¶
术语¶
池管理器不同部分的术语可能令人困惑,因此在引用服务器池的组件时,应使用以下列表
术语 |
含义 |
也称为 |
|---|---|---|
服务器池 |
DNS 服务器组 |
|
DNS 区域 |
DNS 区域(也称为 subzone.domain.com.)更常见地称为域 |
|
区域 |
参见 DNS 区域 |
|
展示 DNS 服务器 |
客户面向的 DNS 服务器(用于人们解析由 designate 拥有的区域) |
|
名称服务器 |
一个 FQDN(或 IP,但通常是 FQDN),用于填充 Designate 管理区域的 NS 记录。每个池都将有一组名称服务器,用户然后从其注册商处委派到这些服务器 |
nameserver, ns 记录 |
后端 |
一个驱动程序,允许 Designate 控制特定类型的 DNS 服务器软件(BIND、PowerDNS 等) |
|
MiniDNS |
一个 designate 服务,用于将通知发送到需要更新的服务器(有关区域的新信息),并使用新信息提供 AFXR 请求。通常,所有池都有一个共享的 MiniDNS 服务器集 |
|
FQDN |
完全限定域名 - 包含主机名部分(例如 ns1.)和区域部分(包括尾随“.”)(例如 example.com.)的 DNS 条目 |
这将允许我们将域拆分到不同的服务器组之间。这将对整个系统产生相当大的影响 - 并需要更改 Designate 的几乎每个部分。
我们将向 Designate 添加 2 个主要部分
池管理器¶
这是一个服务,它将负责通知 DNS 服务器已发生更改。它将采用 MiniDNS 实现的后端,并加载它们。
它将取代 miniDNS 通知器部分,并负责检查异步操作。
调度器¶
此服务将负责将区域分配给池。
调度器将根据请求中的提示将区域分配给池,或者如果没有请求中的提示,则将任何具有容量的池分配给区域。
最初对于池,配置中定义了一个“默认池”,并且可以通过区域创建 API 请求的“提示”部分允许覆盖。
服务器池信息流¶
可用单帧 [1]
https://wiki.openstack.org/w/images/a/a7/Designate-MiniDNS-Pools.gif [2]
我们现在已经亲自讨论过这个问题两次 - 一次在 Icehouse 中期,一次在亚特兰大的设计峰会上。
里程碑¶
- 完成目标里程碑
Kilo-2 [3]
工作项¶
工作项 |
受让人 |
优先级 |
里程碑 |
注意事项 |
|---|---|---|---|---|
server-pools-storage |
https://launchpad.net/~rjrjr / https://launchpad.net/~darshan104 |
高 |
||
server-pool-manager |
https://launchpad.net/~rjrjr / https://launchpad.net/~darshan104 |
高 |
||
server-pools-minidns-support |
高 |
|||
server-pools-api |
高 |