Произвольная маршрутизация с помощью Azure Route Server

Вы можете развернуть приложение в Зоны доступности в одном регионе Azure, чтобы обеспечить более высокую доступность, но иногда может потребоваться развернуть приложения в нескольких регионах, чтобы обеспечить более высокую устойчивость, повысить производительность пользователей по всему миру или повысить непрерывность бизнес-процессов. Существуют различные подходы, которые можно использовать для перенаправления пользователей в одно из расположений, в которых развертывается приложение с несколькими регионами: подходы на основе DNS, такие как Диспетчер трафика Azure, службы на основе маршрутизации, такие как Azure Front Door, или Подсистема балансировки нагрузки Между регионами Azure.

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

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

Топология

В проектировании этого сценария один и тот же IP-адрес объявляется из виртуальных сетей в разных регионах Azure, где виртуальные сетевые (модуль) (NVAs) объявляют IP-адрес приложения через сервер маршрутизации Azure. На следующей схеме показаны две простые звездообразные топологии, находящиеся в разных регионах Azure. NVA в каждом регионе объявляет один и тот же маршрут (a.b.c.d/32 в этом примере) на локальный сервер маршрутизации Azure (префикс маршрута не должен перекрываться с Azure и локальными сетями). Маршруты будут распространяться в локальную сеть через ExpressRoute. Когда пользователи приложения хотят получить доступ к приложению из локальной среды, инфраструктура DNS (не охватывается этим документом) разрешает DNS-имя приложения на IP-адрес любой рассылки (a.b.c.d), который локальные сетевые устройства направляются в один из двух регионов.

Diagram shows an example of using IP anycast with Azure Route Server.

Выбор доступных регионов полностью основан на атрибутах маршрутизации. Если маршруты из обоих регионов идентичны, локальная сеть обычно использует маршрутизацию с равными затратами (ECMP) для отправки каждого потока приложения в каждый регион. Можно также изменить объявления, созданные каждым NVA в Azure, чтобы сделать один из регионов предпочтительным. Например, с помощью предустановки пути BGP AS для установления детерминированного пути из локальной среды в рабочую нагрузку Azure.

Важно!

В модулях NVA объявления маршрутов должны содержать некий механизм проверки работоспособности, чтобы остановить объявление маршрута, когда приложение недоступно в соответствующих регионах, и предотвратить образование "черных дыр" трафика.

Обратный трафик

Когда трафик приложения из локального клиента поступает к одному из NVAs в Azure, NVA либо выполняет обратный прокси-сервер подключения или преобразование адресов назначения (DNAT). Затем он отправляет пакеты в фактическое приложение, которое обычно находится в периферийной виртуальной сети, пиринговой в виртуальную сеть концентратора, где развертывается NVA. Трафик обратно из приложения возвращается через NVA, что произойдет естественно, если NVA обратный прокси-сервер подключения (или выполняет исходный NAT дополнительно к целевому NAT).

В противном случае трафик, поступающий в приложение, по-прежнему создается из исходного IP-адреса локального клиента. В этом случае пакеты можно направлять обратно в NVA с определяемыми пользователем маршрутами (UDR). При наличии нескольких экземпляров NVA в каждом регионе необходимо учитывать особое внимание, так как трафик может быть асимметричным (исходящий и исходящий трафик, проходящий через разные экземпляры NVA). Асимметричный трафик обычно не является проблемой, если NVAs являются бессерверными, но это приводит к ошибкам, если NVAs отслеживают состояния подключения, такие как брандмауэры.