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

Поможет ли мне anycast в моем случае и как это реализовать?

У меня есть несколько серверов с разными IP-адресами, развернутых в разных центрах обработки данных (в основном географически близко к нашим пользователям). Представим, что это простые веб-серверы.

Я бы хотел иметь один IP-адрес для сервера, чтобы все пользователи могли его использовать, и он перенаправлял клиента на ближайший сервер.

Я думаю, что использование произвольного адреса может мне помочь. Я не понимаю

  1. Anycast, как я вижу, используется (только) для DNS серверов. Я считаю, что это связано с довольно простой природой протокола DNS (без сохранения состояния). Будет ли работать anycast для веб-серверов? Будет ли сеанс, направленный на один сервер, оставаться подключенным к этому единственному серверу (так, скажем, все запросы поддержки активности будут маршрутизироваться на один и тот же сервер), или каждый запрос может идти на другой сервер?

  2. Как я могу реализовать anycast на практике? Я понимаю, что мне нужна автономная система (хорошо, она у меня есть), затем мне нужен диктор BGP, осведомленный о состоянии сервера (чтобы он объявлял мой произвольный адрес только в том случае, если / когда сервер может ответить) - а я не знать, что использовать.

Был ли у кого-нибудь опыт развертывания Anycast? Идея проста, но я нашел слишком мало информации о ее практической реализации.

Заранее спасибо!

У вас должен быть ASN. Вы не можете объявить сеть меньше, чем / 25. Нет гарантии, что любой сеанс будет проходить по одному и тому же маршруту, но, скорее всего, будут использовать одни и те же пути.

Однако это не имеет отношения к сеансам приложений, поскольку маршрутизаторы не осведомлены о сеансах - они просто пересылают пакеты независимо от состояний / типов / флагов. Anycasting используется для всех видов услуг.

Пользователи окажутся на сервере (или балансировщике нагрузки), который содержит IP-адрес, это не имеет никакого отношения к тому, на каком сервере они оказались. Если клиент 1.1.1.1 общается с сервером 2.2.2.2, клиент всегда будет связываться с 2.2.2.2 независимо от того, как он был маршрутизирован в Интернете или интрасети.

Маршрутизатор не «осведомлен о состоянии сервера» и объявляет сети, а не отдельные IP-адреса. Он не будет знать или заботиться о том, может ли сервер ответить, я думаю, вы путаете его с балансировщиком нагрузки. (например, IPVS, HAproxy).

Если вы не запутались, вам нужно несколько провайдеров транзита, которые анонсируют вашу сеть (или ее часть, как минимум / 25). Если вы находитесь в другом месте, вы можете просто попросить своих провайдеров объявить о ваших сетях. Я думаю, что функция объявления клиентского ASN заключается в информации AS-SET, но я немного не уверен в этом.