递归 DNS 服务器使用 CNAME 应答,但未返回 A 记录

递归 DNS 服务器使用 CNAME 应答,但未返回 A 记录

我有一个递归 DNS 服务器,它会转发到我的主 DNS 服务器以获得解析。

举个例子

我有以下 CNAME:

server1.example1.com.    300     IN      CNAME   server1.example2.com

以及相关的 A:

server1.example2.com     IN     A    X.X.X.X

我面临的问题是,当我执行 a 时,递归服务器只返回 CNAME 记录dig,而不回答 A 记录。我已通过 TCP 转储验证,主服务器确实将 CNAME 和 A 记录返回给递归服务器,但它反过来不会将它们返回给命令dig或指向该服务器的任何客户端。我有其他递归名称服务器,它工作正常。但要注意,这似乎只发生在跨域 CNAME 中

    bash-4.1# dig @recurisveserver server1.example1.com.                                      

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.5 <<>> @recurisveserver server1.example1.com.
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49412
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;server1.example1.com.           IN      A

;; ANSWER SECTION:
server1.example1.com.    300     IN      CNAME   server1.example2.com.

;; Query time: 0 msec
;; SERVER: 10.73.241.88#53(10.73.241.88)
;; WHEN: Mon Mar  5 15:52:31 2018
;; MSG SIZE  rcvd: 76

Nslookup 给出空白响应

    > server1.example1.com
Server:  recursiveserver
Address:  x.x.x.x

Name:    server1.example1.com

答案1

在我看来,这一切都是正确的。CNAME 指向另一个域名 - 但客户端需要进行第二次查找,以将返回的 CNAME 转换为 A 记录 - 因此您不会期望 dig 或 nslookup 返回 IP 地址。

相关内容