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

Балансировка нагрузки DNS

У меня несколько серверов. Мы хотим создать новую большую службу (слово «большой» пришло от моего босса).

Я хочу использовать два Cisco LoadBalancer ACE 4700, но что произойдет, если один из ACE выйдет из строя?

Итак, я хочу настроить балансировку нагрузки DNS между этими двумя устройствами.

Моя цель - защитить от отказа одного балансировщика нагрузки с помощью DNS.

Как сделать? Использование кругового алгоритма - хорошая или плохая идея?

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

Я знаю, что балансировщики нагрузки Cisco CSS можно настроить для работы в качестве резервной пары, чтобы каждый из них контролировал состояние другого. Только один из них обрабатывает трафик в любой момент времени, но если он выходит из строя, другой немедленно берет на себя управление. Для такой настройки вам нужен только один IP-адрес.

Я не знаю о линейке продуктов ACE, но я был бы удивлен, если бы они не могли делать то же самое. Быстрый Google подсказывает, что он поддерживает какое-то аварийное переключение.

Мы выполняем балансировку нагрузки DNS (подходящее слово - совместное использование) и отказоустойчивость DNS с помощью службы dnsmadeeasy.com. Таким образом, у нас есть несколько записей для одних и тех же имен DNS, и в упрощенном DNS вы можете настроить переключение при отказе и мониторинг, и это тоже недорого. Это спасало нас несколько раз.

Вот загвоздка: если вы используете постоянство сеанса в своих пользовательских сеансах, не используйте балансировку нагрузки DNS. Используйте только аварийное переключение DNS, и это тоже отлично работает.

И чтобы ответить на беспокойство Ладададады, вы можете установить ttl очень низким. Мы используем 60 секунд для ttl.

Cisco ACE обычно (AFAIK) развертывается в паре активный-пассивный, поэтому, если один из них выходит из строя, другой должен действовать. Это не зависит от DNS (DNS будет просто еще одним типом услуг, предоставляемых через ACE). Это было бы удобно, если оба DNS-сервера находятся в одном дата-центре (или, возможно, в столичном дата-центре).

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

Также следует учитывать динамические обновления DNS (где состояние вашего кластера?)

Не используйте балансировку нагрузки DNS, потому что она не может реагировать на (не) доступность какого-либо устройства. Используйте вместо него VRRP (эти два балансировщика нагрузки будут совместно использовать один IP-адрес, и когда главный сервер умрет, подчиненный возьмет этот IP-адрес) и направьте ваши записи DNS на этот виртуальный IP-адрес.