Задать вопрос
Vamp
@Vamp

Каким образом достигается отказоустойчивость на одном IP?

Существует сервис, куда клиенты коннектятся по TCP протоколу и отправляют сообщения. TCP соединения долгоиграющие. Большинство клиентов умеют автоматически переподключаться в случае обрыва коннекта, но почти никто не умеет автоматически переключаться на резервный IP адрес в случае тотальной недоступности основного сервера. Клиенты просят чтобы я самостоятельно их переключал, но так как резервный сервер находится в физически другом месте, то я не могу просто взять и перенести IP между ДЦ.

Каким образом обеспечить отказоустойчивость сервиса, используя только один внешний IP адрес? Проблема, которую я хочу решить - перенос всего трафика из одного ДЦ в другой без изменения IP адреса для клиентов в случае полной недоступности ДЦ.

Пример:
ДЦ1 где-то у себя накосячил и сеть легла. Доступность сервера просела и клиента стали получать connection reset, connection timeout. Мне необходимо каким-то образом перенести ip адрес в ДЦ2, а потом вернуть обратно, когда проблемы в ДЦ1 будут устранены.

В поисках информации я дошел до BGP и его фишки с анонсированием префикса из двух разных мест, но с разными весами. То есть при коннекте будет выбран маршрут с наибольшим весом. Но не всегда. Часть клиентов всё же будет попадать на резервный сервер, чего бы мне не хотелось.

Какие ещё есть варианты?

UPD
Прямо сейчас применяется вариант с доменными именами и коротким TTL. Но не всем клиентам помогает.
  • Вопрос задан
  • 592 просмотра
Подписаться 2 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
@entermix
А нужен именно IP, или можно домен?
Если домен, то можно ведь менять IP на уровне DNS, т.е. клиент будет получать тот IP, на который ссылается A запись.

Посмотрите zilore.com, например, там же есть возможность автоматического мониторинга и смены IP в случае недоступности основного сервера.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы