DNS NS 记录未解析

DNS NS 记录未解析

我有一个 PowerDNS 服务器,我正在尝试在其中创建 NS 记录。这就是我的域example.com

cluster                 NS          node1.cluster.example.com
cluster                 NS          node2.cluster.example.com
node1.cluster           A           1.1.1.1
node2.cluster           A           1.1.1.2

1.1.1.1 和 1.1.1.2 是外部名称服务器。

我想要的是:

  • 挖 cluster.example.com
  • 将我的 DNS 请求转移到节点 1 或节点 2 之一
  • DNS 请求已在那里得到解决

我拥有的:

  • 挖 cluster.example.com

    ;; QUESTION SECTION:
    ;cluster.example.com.   IN  A
    
    ;; AUTHORITY SECTION:
    cluster.example.com.    3600 IN NS  node2.cluster.example.com.
    cluster.example.com.    3600 IN NS  node1.cluster.example.com.
    
    ;; ADDITIONAL SECTION:
    node2.cluster.example.com. 3600 IN A    1.1.1.2
    node1.cluster.example.com. 3600 IN A    1.1.1.1
    

我没有从挖掘中得到答案。

虽然dig cluster.example.com @1.1.1.2效果很好。

我在 DNS 方面没有太多能力,所以非常感谢您的帮助。

答案1

如果你发明语法,那是行不通的。

NS前面的是域名;如果你不放在那里,它默认为当前的,例如example.com.

根据 DNS 默认行为,它将当前域名添加到对象(例如集群)中,并且它变成cluster.example.com.未定义的。

如果你想定义一个基于 DNS 的集群,那就是:

                  NS          cluster.example.com.

cluster           A           1.1.1.1
cluster           A           1.1.1.2

或进一步说明我的评论:

example.com.      NS          cluster.example.com.

cluster           A           1.1.1.1
cluster           A           1.1.1.2

请注意,我特意为两台主机进行了定义cluster,并且没有使用节点 1 和节点 2,因为 NS 记录不应指向 CNAME。

在 DNS 中,IN NS 可以指向 CNAME 吗?

让 NS 记录指向 CNAME 是不好的,并且可能与当前的 BIND 服务器发生严重冲突。事实上,当前的 BIND 实现将忽略此类记录,可能导致蹩脚的委派。 BIND 中进行了一定量的安全检查,以防止欺骗 DNS NS 记录。此外,据报道,较旧的 BIND 服务器将陷入无限查询循环,试图找出别名服务器的地址,从而导致发送连续的 DNS 请求流。

或者,如果您仍然想要拥有node1node2名称:

example.com.      NS          cluster.example.com.

cluster           A           1.1.1.1
cluster           A           1.1.1.2
node1             A           1.1.1.1
node2             A           1.1.1.2

附带说明一下:使用基于 DNS 的集群方法会产生影响,其中一个节点发生故障时,通常无法获得预期的结果,因为客户端会选择他们想要通信的节点。

还有更先进(也更可靠)的创建 DNS 集群的方法,即DNS任播,这超出了本答案的范围。

相关内容