DNS无效记录

DNS无效记录,dns,powerdns,Dns,Powerdns,我有点头痛,试图建立自己的HA解决方案,docker和nginx在前面充当负载平衡器 它们现在实际上已经配置好了。但是如果主节点关闭,我想使用另一个作为备用,因为用于负载平衡的nginx配置是复制的 我认为,如果我有两个节点,都是用PowerDNS(与nginx和docker一起)设置的,并且我将这些DNS服务器设置为我的一个域,当一个节点关闭时,因为该节点正在承载DNS服务器,后续请求将从另一个DNS服务器获取信息,其中a记录被配置为指向本地IP(这样,指向另一个负载平衡器) 看来我做不到 鉴

我有点头痛,试图建立自己的HA解决方案,docker和nginx在前面充当负载平衡器

它们现在实际上已经配置好了。但是如果主节点关闭,我想使用另一个作为备用,因为用于负载平衡的nginx配置是复制的

我认为,如果我有两个节点,都是用PowerDNS(与nginx和docker一起)设置的,并且我将这些DNS服务器设置为我的一个域,当一个节点关闭时,因为该节点正在承载DNS服务器,后续请求将从另一个DNS服务器获取信息,其中a记录被配置为指向本地IP(这样,指向另一个负载平衡器)

看来我做不到

鉴于我有以下服务器:

服务器1 IP=1.1.1.1

服务器2 IP=1.1.2.2

它们中的每一个都有一个使用PowerDNS设置的DNS服务器(根据dig和其他测试,该服务器功能齐全)

我的域名DNS服务器指向它们:

ns1.example.com--->1.1.1.1

ns2.example.com--->1.1.2.2

ns1.example.com DNS服务器具有:

示例2.com A 1.1.1.1

ns2.example.com DNS服务器具有:

示例2.com A 1.1.2.2

那么,当两台服务器都在运行时,example2.com不应该指向1.1.1.1/1.1.2.2吗?但是当第一台服务器不可用时,应该指向1.1.2.2吗

嗯,当我关闭第一台服务器并尝试时,它会给我第一台服务器的IP,而不是第二台

甚至
dig example2.com@ns2.example.com
也在给我第一个DNS服务器中example2.com的A记录中定义的IP


我错了,还是这里有什么奇怪的地方?

我不知道你从哪里知道名称服务器是按某种优先级顺序列出的,但这完全错了。对于一个区域来说,所有具有权威性的名称服务器都应该有完全相同的内容。解析程序选择名称服务器随机询问,以便在它们之间分配负载。Pr为权威服务器提供不同的内容只会给最终用户带来不一致的结果,而没有任何用处


此外,您忘记了解析程序会缓存它们得到的答案。即使DNS按照您的想法工作(事实并非如此),解析程序也需要几分钟或几小时才能注意到“故障转移”.

不要在示例中使用IP地址1.1.1.1,这显然是错误的。这是当前用于为许多人提供的服务的有效IP,因此不要使用它。如果确实需要,请使用RFC5737混淆IP地址。这只是一个示例……不,您正在劫持一个不是您的IP,请使用为示例保留的相关IP,阅读RFC5737.人们这样做是某些创新无法发生的原因(例如,
.MAIL
TLD将永远不存在,因为它在许多文档中被滥用为“示例”)。停止这样做,
1.1.1
是有效的IP不是“示例”,也不是您的,所以不要使用它。