本作品采用知识共享署名 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 密钥。
后端应配置如下:
所有 AXFR 请求都应使用 TSIG 签名,以便 AXFR 可以返回正确的视图。
Designate 中列出的大多数后端代理,请参见以下链接 https://docs.openstack.org/designate/pike/contributor/backends/index.html 都支持 TSIG AXFR/split_view(初始开发可以针对 bind、powerdns)。
[bind] https://www.slashroot.in/how-to-configure-split-horizon-dns-in-bind https://bind9.readthedocs.io/en/latest/advanced.html#instructing-the-server-to-use-a-key [powerdns] https://www.frank.be/implementing-bind-views-with-powerdns/ https://doc.powerdns.com/authoritative/tsig.html#provisioning-signed-notification-and-axfr-requests [djbdns] djbdns 不支持基于以下链接的 TSIG https://en.wikipedia.org/wiki/Djbdns https://www.fefe.de/djbdns/#splithorizon [gdnsd] gdnsd 不确定是否支持分割视图/tsig AXFR [infoblox] https://docs.infoblox.com/display/NAG8/Chapter+18+DNS+Views https://docs.infoblox.com/display/NAG8/Enabling+Zone+Transfers [knote] https://www.knot-dns.cz/docs/2.6/html/configuration.html https://knot-resolver.readthedocs.io/en/v2.2.0/modules.html#views-and-acls [MSDNS] https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-gssa/c0c6ffdd-a094-40b1-bbb9-bc4e5a58804f https://docs.microsoft.com/en-us/windows-server/networking/dns/deploy/split-brain-dns-deployment
Storage 变更¶
Designate 区域表应更新为接受新的区域类型 split_view 类型 enum(‘PRIMARY’,’SECONDARY’) 到类型 enum(‘PRIMARY’,’SECONDARY’,’SPLIT_VIEW’)
负责人¶
哈姆扎·阿尔克泰沙特