本作品采用知识共享署名 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 的工作方式,以便对服务器、其功能和后端进行更细粒度的控制

功能/高级系统

通过使用调度器提示,我们可以将不同的池标记为具有不同的功能 - 例如 GeoIP / Round Robin DNS / Anycast。

这允许运营商根据需要运行不同的 DNS 基础设施。例如,这允许用户在具有 GeoIP 的池上拥有某些区域,并为该功能支付溢价,同时将他们其余的区域放在更便宜的“标准”层级上。

提议的变更

术语

池管理器不同部分的术语可能令人困惑,因此在引用服务器池的组件时,应使用以下列表

术语

含义

也称为

服务器池

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 中期,一次在亚特兰大的设计峰会上。

Etherpad

里程碑

完成目标里程碑

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

https://launchpad.net/~vinod-mang

server-pools-api

https://launchpad.net/~betsy-luzader

依赖项

脚注