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

Маршрутизация Anycast позволяет рекламировать один и тот же IP-адрес из нескольких регионов Azure, обеспечивая улучшенную доступность приложений, производительность и устойчивость. С помощью Azure Route Server можно реализовать маршрутизацию любой рассылки, чтобы автоматически направлять трафик к ближайшему или наиболее оптимальному экземпляру приложения на основе метрик маршрутизации.

В этой статье объясняется, как реализовать anycast маршрутизацию с помощью Azure Route Server для доставки приложений в нескольких регионах по частным сетям.

Что такое маршрутизация anycast?

Маршрутизация anycast — это методология сетевой адресации и маршрутизации, в которой один и тот же IP-адрес присваивается нескольким серверам или инстанциям приложений в разных местах. Когда клиент отправляет запрос на anycast IP-адрес, сетевая инфраструктура, на основе протоколов маршрутизации и метрик, автоматически направляет трафик на ближайший или оптимальный сервер.

Преимущества anycast-маршрутизации

Маршрутизация Anycast предоставляет несколько преимуществ для развертывания в нескольких регионах.

  • Улучшенная производительность: трафик автоматически направляется в ближайший экземпляр приложения, уменьшая задержку.
  • Улучшенная доступность: если один регион становится недоступным, трафик автоматически переключается на другие регионы.
  • Распределение нагрузки: трафик можно распределять по нескольким регионам на основе метрик маршрутизации
  • Упрощенная конфигурация клиента: клиенты подключаются к одному IP-адресу независимо от фактического расположения сервера.
  • Поддержка частной сети: в отличие от решений на основе DNS, anycast работает с частными IP-адресами и сетями.

Anycast и другие подходы с несколькими регионами

Хотя Azure предлагает несколько служб для развертываний в нескольких регионах, таких как Диспетчер трафика Azure, Azure Front Door и Azure Cross-Region Load Balancer, эти службы предназначены для общедоступного интернет-трафика и общедоступного IP-адреса.

Маршрутизация anycast с помощью Azure Route Server предназначена для:

  • Сценарии частной сети: приложения, требующие частных IP-адресов
  • Гибридное подключение: сценарии с использованием expressRoute или VPN-подключений к локальным сетям
  • Управление трафиком на основе маршрутизации: когда кэширование DNS или поведение клиента может повлиять на решения на основе DNS.

Реализация Anycast с помощью Azure Route Server

Сервер маршрутов Azure обеспечивает маршрутизацию любой рассылки, упрощая объявление идентичных маршрутов из нескольких регионов Azure в локальные сети через ExpressRoute или VPN-подключения.

Обзор архитектуры

Реализация anycast использует следующие компоненты:

  • Несколько регионов Azure: каждый регион размещает экземпляр приложения
  • Сервер маршрутизации Azure: развернуто в каждом регионе для управления объявлениями маршрутов
  • Сетевые виртуальные устройства (NVAs): рекламирование anycast IP-адреса в каждом регионе
  • Топология концентраторов и периферийных узлов: обеспечивает подключение между NVA и экземплярами приложений.
  • ExpressRoute или VPN: подключение регионов Azure к локальным сетям

Топология реализации

На следующей схеме показана типичная реализация anycast с двумя регионами Azure. Каждый регион содержит следующее:

  • Виртуальная сеть концентратора с NVA и сервером маршрутизации Azure
  • Периферийная виртуальная сеть, на котором размещен экземпляр приложения
  • Подключение ExpressRoute к локальным сетям

Схема, показывающая реализацию маршрутизации Anycast с помощью Azure Route Server в двух регионах, демонстрируя, как один и тот же IP-адрес объявляется из нескольких точек.

Принцип работы маршрутизации любой рассылки

  1. Объявление маршрута: NVAs в каждом регионе объявляют один и тот же префикс IP-адреса (например, a.b.c.d/32) на локальный сервер маршрутизации Azure
  2. Распространение маршрутов. Сервер маршрутизации Azure распространяет эти маршруты в локальные сети через ExpressRoute или VPN-подключения.
  3. Выбор маршрута: Внутренние протоколы маршрутизации выбирают лучший путь для достижения anycast IP-адреса на основе метрик маршрутизации.
  4. Распределение трафика: трафик клиента автоматически направляется в оптимальный регион на основе выбранного пути.

Выбор маршрута и балансировка нагрузки

Выбор региона, который получает трафик, зависит от атрибутов маршрутизации:

  • Эквивалентные маршруты с несколькими путями (ECMP) — если маршруты из нескольких регионов имеют одинаковые метрики, трафик распределяется равномерно по всем доступным путям.
  • Параметры пути BGP: вы можете повлиять на решения по маршрутизации, изменив атрибуты BGP, такие как длина пути AS, локальные предпочтения или значения MED
  • Предустановка пути AS: искусственно продляйте путь AS для конкретных маршрутов, чтобы сделать их менее предпочтительными, создавая основной или резервный сценарий

Внимание

NVA должны реализовать механизмы проверки работоспособности, чтобы остановить рекламные маршруты, когда локальный экземпляр приложения становится недоступным. Это предотвращает перенаправление трафика на неудачные экземпляры (blackholing).

Соображения по возврату трафика

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

Методы обработки трафика

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

  • В режиме преобразования сетевых адресов (NAT) необходимо учесть различные факторы, когда NVA выполняет преобразование сетевых адресов назначения (DNAT). NVA преобразует конечный IP-адрес из anycast IP в фактический IP-адрес приложения. Если NVA также выполняет исходный NAT (SNAT), возвращающийся трафик проходит обратно через тот же NVA. Однако если SNAT не выполняется, дополнительная конфигурация требуется для обеспечения правильной маршрутизации трафика возврата.

Маршрутизация возвратного трафика

Когда приложение получает трафик с исходным IP-адресом клиента (без SNAT), необходимо убедиться, что трафик возвращается через правильный NVA. Определяемые пользователем маршруты (UDR) можно настроить в подсети приложения, чтобы направлять трафик обратно в NVA. Эти UDR должны охватывать локальные диапазоны IP-адресов и работать хорошо для отдельных развертываний NVA.

Для развертываний с несколькими экземплярами NVA в каждом регионе важно учитывать асимметричный трафик. Stateless NVA может обрабатывать асимметричный трафик, в котором входящие и исходящие потоки проходят через различные экземпляры. Однако виртуальные сети с отслеживанием состояния требуют симметричного потока трафика для поддержания состояния подключения. Решения для NVA с отслеживанием состояния включают использование механизмов сопоставления подключений, реализацию общего доступа к сеансам между экземплярами NVA или настройку подсистем балансировки нагрузки с сохраняемостью сеансов.

Рекомендации по потоку трафика

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

Вопросы реализации

Требования и предварительные условия

Перед реализацией маршрутизации любой рассылки с помощью Сервера маршрутизации Azure необходимо тщательно спланировать выделение IP-адресов, чтобы убедиться, что IP-адрес рассылки не конфликтует с существующими сетями Azure или локальными сетями. Твердое понимание политик маршрутизации BGP и их влияние на распределение трафика является важным для успешного развертывания. Архитектура приложения должна быть разработана для эффективного обработки трафика из нескольких регионов, и необходимо реализовать комплексный мониторинг работоспособности как для приложений, так и для виртуальных сетевых устройств, чтобы обеспечить надежную работу.

Рекомендации по развертыванию

При развертывании маршрутизации anycast рекомендуется начать с простого развертывания в двух регионах перед расширением на другие регионы. Регулярное тестирование сценариев резервирования отказа помогает обеспечить соответствие системе требованиям к доступности и корректную работу системы во время сбоев. Мониторинг метрик производительности, таких как задержка и пропускная способность из разных локальных расположений, предоставляет ценные сведения об эффективности конфигурации маршрутизации. Ведение четкой документации по политикам BGP и их предполагаемым последствиям важно для текущего управления и устранения неполадок.

Ограничения и рекомендации

При реализации маршрутизации anycast с помощью сервера маршрутизации Azure Route Server следует учитывать несколько факторов. Время конвергенции BGP может привести к задержкам во время аварийного переключения, что может повлиять на целевые показатели времени восстановления. Добавленная сложность маршрутизации на уровне сети по сравнению с решениями на основе DNS требует больше опыта и тщательного планирования. Устранение неполадок маршрутизации на уровне сети может быть более сложным, чем диагностика проблем на уровне приложений, требующих специализированных знаний и инструментов. Кроме того, расходы на инфраструктуру увеличиваются из-за необходимости большего числа виртуальных сетевых устройств и экземпляров сервера маршрутизации в нескольких регионах.

Дальнейшие шаги