应用程序如何管理具有 2 个或更多 IP 地址的 DNS 记录?

Alb*_*ina 1 networking domain-name-system a-record

我有几个带有 2 个或更多 IP 地址的 DNS 记录,例如,我们电子邮件服务器的 A 记录是“mail.example.com”并且有 2 个 IP 地址:

mail.example.com  1.2.3.4
mail.example.com  2.3.4.5
Run Code Online (Sandbox Code Playgroud)

每个 IP 地址属于不同的 ISP。有时,当其中一个 IP 不可用时,用户计算机上的某些应用程序(如 Outlook)只会存储他们从 DNS 服务器收到的 A 记录中的第一个 IP 地址,即使它收到 2 个 IP,Outlook 也不会尝试使用另一个IP。我在其他应用程序中也看到了这一点。当我运行“ipconfig /displaydns”时,我看到 DNS 已经为 A 记录提供了 2 个 IP,但该应用程序仅使用第一个。

我们使用 Amazon Route 53 来管理 DNS,为了解决这个问题,我使用了“健康检查”,然后是基于 IP 可用性的 DNS 响应。

我的问题是,应用程序仅使用它们在 DNS 记录中找到的第一个 IP 地址是否正常?有没有其他方法可以让应用程序在给定 DNS 记录上的 IP 之间交替,或者这种行为取决于应用程序?

Dav*_*ude 6

我的问题是,应用程序仅使用它们在 DNS 记录中找到的第一个 IP 地址是否正常?

是的。许多应用程序的设计方式是在将主机名解析为数字地址时返回单个地址。某些应用程序(例如 Web 浏览器)会提取完整的记录列表,并在失败时按顺序尝试它们。

有没有其他方法可以让应用程序在给定 DNS 记录上的 IP 之间交替,或者这种行为取决于应用程序?

不,这需要由名称服务器处理。即使使用循环,也存在解析器返回的第一个 IP 地址不是从用于查找的方法返回到应用程序的第一个 IP 地址的情况。