本作品采用知识共享署名 3.0 非移植许可协议授权。 http://creativecommons.org/licenses/by/3.0/legalcode

指定分割视图

https://blueprints.launchpad.net/designate/+spec/split-view https://bugs.launchpad.net/designate/+bug/1875939

分割视图是大多数 DNS 服务器都支持的重要功能,基于需要分割内部和外部 IP 及主机名视图。大多数公司在其现有的 DNS 结构中都具有此功能,为 Designate 添加对此功能的支持将使用户更容易将 Designate 集成到当前用户系统中。

以下链接提供了关于分割视图功能和用例的见解: * http://techgenix.com/you_need_to_create_a_split_dns/ * https://en.wikipedia.org/wiki/Split-horizon_DNS

问题描述

Designate 的当前实现不支持分割视图。想要实现此功能的用户必须修补 Designate 代码或以某种方式在 Designate 的后端(bind、powerdns 等)中实现。

提议的变更

在 Designate 中引入一种新的区域类型(split_view)。当创建具有该类型的区域时,Designate 将执行以下操作:

  • 在不同的视图(内部、外部)中创建两次相同的区域。这将需要将 pool.yaml 配置为具有两个池,并用 internal/external 属性分隔。注意:用户可以使用 bind 中的 view 参数或定义两个 powerdns 实例来实现这一点。

  • 为每个区域创建两个 TSIG 密钥,并将 TSIG 附加到正确的区域。

  • 基于 TSIG 密钥提供 AXFR。如果发送的 TSIG 是外部的,则向用户提供外部视图。用户应为外部/内部视图提供匹配应包含在每个视图中的 IP 的正则表达式。如果 IP 匹配用户指定的内部正则表达式,并且 AXFR 请求使用内部 TSIG 签名,则 IP 将包含在区域 AXFR 响应中。

  • 通知请求也应使用正确的 TSIG(内部、外部)签名。用户应为内部/外部提供匹配应包含/排除在每个视图中的 IP 的正则表达式,并基于此选择 TSIG 密钥。

后端应配置如下:

Storage 变更

Designate 区域表应更新为接受新的区域类型 split_view 类型 enum(‘PRIMARY’,’SECONDARY’) 到类型 enum(‘PRIMARY’,’SECONDARY’,’SPLIT_VIEW’)

负责人

哈姆扎·阿尔克泰沙特