我使用 DNS 做了一些有趣的事情,例如好多其它的确实如此,但是这一点令人费解。
我在 DNS 中有一个抽象层,以使面向客户的记录保持一致且独立于后端基础设施,其中一部分是通过 1 条记录更改来翻转整个区域的能力,为此我们使用 DNAME
$ORIGIN example.com.
record.example.com. IN CNAME record.alias.example.net.
@ IN NS ns.example.com.
ns.example.com. IN A 192.168.1.10
$ORIGIN example.net.
alias IN DNAME real_site
record.real_site IN CNAME server-name.example.org.
@ IN NS ns.example.com.
$ORIGIN example.org.
server-name.example.org. IN A 192.168.1.1
@ IN NS ns.example.com.
出于某种原因,我可以 DIG record.example.com。并在 example.com 的名称服务器上收到记录 192.168.1.1。
DIG 输出
dig @192.168.1.10 record.example.com.
;; QUESTION SECTION:
;record.example.com. IN A
;; ANSWER SECTION:
record.example.com. 600 IN CNAME record.alias.example.net.
alias.example.net. 300 IN DNAME real_site.example.net.
record.alias.example.net. 300 IN CNAME record.real_site.example.net.
record.real_site.example.net. 300 IN CNAME server-name.example.org.
server-name.example.org. 300 IN A 192.168.1.1
但我无法通过本地绑定 DNS 服务器查询相同的请求。
绑定错误:
named-pkcs11[8613]: error (FORMERR) resolving 'record.example.com/A/IN': 192.168.1.10#53
绑定版本
named-pkcs11 -v
BIND 9.9.4-RedHat-9.9.4-38.el7_3 (Extended Support Version)