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

Несколько записей DNS A, ссылающихся на один и тот же хост

Если я создам несколько записей DNS A для одних и тех же хостов, например:

my-domain.com   A   1.2.3.4   3600s
my-domain.com   A   4.5.6.7   3600s
my-domain.com   A   7.8.9.0   3600s
  1. Действительно ли запросы между тремя серверами выполняются циклически? Это даже?

  2. Предположим, клиент запрашивает my-domain.com и возвращается 1.2.3.4. Это затем кешируется на час, поэтому каждый запрос, сделанный клиентом, будет использовать 1.2.3.4, или каждый запрос будет захватывать случайный хост?

  3. Что будет, если 4.5.6.7 выходит из строя, DNS автоматически удаляет его, или запросы по-прежнему будут маршрутизироваться к нему циклически?

  1. Да, это будет круговая система между тремя. Для DNS-сервера Windows вам необходимо включить Round Robin на своем DNS-сервере. Когда он включен, он будет отвечать всеми тремя записями в порядке вращения:

    • 1-й клиент - 1.2.3.4, 4.5.6.7, 7.8.9.0

    • 2-й клиент - 4.5.6.7, 7.8.9.0, 1.2.3.4

    • 3-й клиент - 7.8.9.0, 1.2.3.4, 4.5.6.7

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

  3. Если 4.5.6.7 если он упадет, он не будет удален автоматически. Клиенты по-прежнему будут пытаться подключиться к этому IP. Это недостаток Round Robin DNS.

Да, вы можете реализовать некоторое распределение нагрузки, используя несколько записей DNS для одной и той же службы. Однако это не лучший способ реализовать распределение нагрузки, особенно если у вас все хосты находятся в одном месте. Гораздо более эффективным подходом будет использование выделенной машины в качестве балансировщика нагрузки. Эта машина получает весь трафик и перенаправляет его на один из реальных серверов на основании нескольких критериев, таких как:

  1. Параллельные подключения.
  2. Загрузка сервера.
  3. IP-адрес источника пользователя.
  4. По-круговой.
  5. Круговой алгоритм с взвешиванием и т. Д.

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

Кроме того, кэширование DNS делает вещи более сложными и трудными для управления. Кэширование DNS может происходить в любом узле от вашего клиента до любого промежуточного DNS-сервера до достижения авторитетного DNS-сервера.