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

Как перенаправить запрос на второй хост, если первый не в сети?

У меня два хоста в разных сетях (разные интернет-провайдеры). Я хотел бы перенаправить весь трафик на второй хост только в том случае, если первый отключен (неожиданно).

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

Это машины FreeBSD.

Вам нужна какая-то система балансировки нагрузки. Системы балансировки нагрузки могут быть реализованы несколькими способами. Вот некоторые из них:

  1. Выделенный сервер балансировки нагрузки - это устройство находится «перед» вашими внутренними узлами и направляет запросы к одному или нескольким из них в зависимости от установленных вами условий.
  2. DNS Failover - автоматизация, встроенная в ваши DNS-серверы, которая автоматически меняет IP, связанный с определенным именем хоста, снова в зависимости от заранее определенных условий.
  3. CARP / Виртуальный IP / и т. Д. - На двух или более серверах работает контрольное сообщение, один из которых может получить IP-адрес другого в случае выхода из строя одного из них. Скорее всего, это не сработает в вашем случае из-за того, что ваши серверы находятся в двух разных AS.

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

HAProxy это очень способный и широко используемый балансировщик нагрузки F / OSS - фактически он используется на всех сайтах SE. HAProxy делает поддерживают FreeBSD.