Назад | Перейти на главную страницу

Как приложения управляют записями DNS с двумя или более IP-адресами?

У меня есть несколько записей DNS с 2 или более IP-адресами, например, запись A для нашего почтового сервера - «mail.example.com» и имеет 2 IP-адреса:

mail.example.com  1.2.3.4
mail.example.com  2.3.4.5

Каждый IP-адрес принадлежит другому интернет-провайдеру. Иногда, когда один из этих IP-адресов недоступен, некоторые приложения на компьютерах пользователей (например, Outlook) получают только первый IP-адрес в записи A, полученной от DNS-сервера, даже если он получает 2 IP-адреса, Outlook не пытается использовать другой IP. Я видел это и в других приложениях. Когда я запускаю «ipconfig / displaydns», я вижу, что DNS доставил 2 IP для записи A, но приложение использует только первый.

Мы используем Amazon Route 53 для управления DNS, и чтобы обойти это, я использую «Проверки работоспособности», а затем ответ DNS, основанный на доступности IP-адресов.

Мой вопрос: нормально ли, что приложения используют только первый IP-адрес, который они находят в записи DNS? Есть ли другой способ заставить приложения чередовать IP-адреса в данной записи DNS, или это поведение зависит от приложения?

Мой вопрос: нормально ли, что приложения используют только первый IP-адрес, который они находят в записи DNS?

Да. Многие приложения спроектированы таким образом, чтобы возвращать один адрес при преобразовании имени хоста в числовой адрес. Некоторые приложения, такие как веб-браузеры, извлекают полный список записей и последовательно пробуют их в случае неудачи.

Есть ли другой способ заставить приложения чередовать IP-адреса в данной записи DNS, или это поведение зависит от приложения?

Нет, это должно выполняться сервером имен. Даже с циклическим перебором бывают случаи, когда первый IP-адрес, возвращаемый преобразователем, не является первым, возвращаемым приложению из метода, используемого для поиска.

Конечно, цель DNS - получить IP-адрес. Единственная причина, по которой я, как разработчик приложения, использовал вторую запись A или AAAA, - это то, что я не мог подключиться к конечной точке с помощью первой.

Если вы хотите выполнить балансировку нагрузки, вам придется принять во внимание это «обычное» поведение и сделать так, чтобы ваш DNS-сервер назначил приоритет записям A или AAAA соответственно.