Вопрос или проблема
Я ищу возможность реализовать топологию подобную этой:
Spoke VNETs <====> NVA, например FortiGate <=====> VPN Gateway <=====> локально
Реализовать это с помощью статической маршрутизации довольно просто, но у нее есть раздражающие ограничения:
-
Если я размещу NVA и VPN Gateway в одном
HUB-VNET
, включив опциюEnable Spoke-VNET to use HUB-VNET's remote gateway or route server
– тогда узкие локальные префиксы, полученные от VPN Gateway, будут перезаписывать более общие префиксы вSpoke-VNET
UDR, которые направляют трафик к NVA для инспекции. Мне придется перезаписывать каждый из них в UDR, что не практично. -
Если я размещу их в одном
HUB-VNET
без включения этой опции, или если я размещу VPN Gateway в VNET, который непосредственно не соединен со Spokes – тогда VPN Gateway не будет знать о диапазонах IP Spoke VNETs. Он все равно будет передавать трафик для них к NVA с помощью UDR, примененного к егоGatewaySubnet
– но если VPN Gateway узнает какой-либо префикс, перекрывающийся с префиксом Spoke VNET из одного из его BGP-over-IPsec соседей – он отправит трафик туда вместо того, чтобы доставить его к NVA, и связь будет нарушена.
Пример:
- UDR
GatewaySubnet
говорит “доставить трафик к 10.0.0.0/0 через NVA
“. - Диапазон Spoke VNET составляет
10.11.12.0/24
.
Если VPN Gateway не узнает его автоматически из SDN, в то время как узнает префикс10.11.0.0/16
от одного из своих BGP-соседей – тогда трафик к10.11.12.0/24
будет отправляться к этому соседу вместо Spoke.
Я ищу решение, которое бы:
-
Позволяло Spoke VNETs доставлять трафик к NVA – без необходимости перезаписывать UDR каждый узкий префикс, внедренный в них VPN Gateway.
-
Позволяло VPN Gateway автоматически узнавать префиксы Spoke VNETs – при этом продолжая доставлять трафик к ним через NVA.
Возможно ли это? Со службой Azure Route Server или без нее?
Спасибо!
Муций.
Ответ или решение
Динамическая маршрутизация с использованием Azure VPN Gateway и инспекции через NVA
Ваша задача – сформировать архитектуру, в которой Spoke VNETs смогут взаимодействовать с NVA (Network Virtual Appliance), например, FortiGate, для инспекции трафика перед взаимодействием с Azure VPN Gateway, который в свою очередь будет соединен с локальной сетью. Данная задача действительно неплоха в своей сложности, и вам, безусловно, предстоит обойти некоторые ограничения, связанные с статической маршрутизацией. Рассмотрим решение, которое может удовлетворить ваши требования:
Проблемы и ограничения текущей архитектуры
Как вы правильно отметили, использование статической маршрутизации имеет свои недостатки:
-
Конфликт маршрутов: Когда NVA и VPN Gateway находятся в одном HUB VNET и активирована опция "Enable Spoke-VNET to use HUB-VNET’s remote gateway or route server", маршруты, полученные от VPN Gateway, могут затмить более общие маршруты в UDR (User Defined Route) Spoke VNET. Это требует ручного управления маршрутизацией и может привести к ошибкам.
-
Проблемы с динамическим обновлением: Если VPN Gateway размещён в VNET, который не непосредственно связан с Spoke VNET, он не сможет автоматически получать информацию о диапазонах IP Spoke VNET, что может вызвать проблемы с маршрутизацией трафика.
Решение проблемы
Чтобы достичь ваших целей, рекомендую следующее решение на основе Azure Route Server вместе с BGP:
-
Использование Azure Route Server:
Azure Route Server позволяет динамически управлять маршрутами и обеспечивает автоматическую регистрацию маршрутов для VPN Gateway и NVA. Настройка Azure Route Server может устранить необходимость ручного управления маршрутизацией и устранить конфликты маршрутов. -
Конфигурация BGP:
Настройте BGP между вашим Azure Route Server, VPN Gateway и NVA. Это позволит NVA и VPN Gateway автоматически обмениваться маршрутами. Ваши Spoke VNETs также должны быть подключены к Azure Route Server через настройку BGP.
Шаги по настройке решения:
-
Подключите Route Server:
Создайте Azure Route Server в вашем HUB VNET. Подключите его к вашему NVA и VPN Gateway через BGP с соответствующими ASN (Autonomous System Number). -
Конфигурируйте BGP на NVA:
Настройте BGP на вашем NVA, чтобы он мог взаимодействовать с Azure Route Server. Это позволит NVA загружать маршруты от Spoke VNET через Route Server. -
Настройка маршрутов в VPN Gateway:
После подключения VPN Gateway к Route Server и настройки BGP, маршруты из Spoke VNET будут автоматически передаваться Gateway. UDR для GatewaySubnet теперь могут указывать на NVA без необходимости вручную управлять каждым маршрутом.
Преимущества данного решения:
- Динамическое обновление маршрутов: Вся информация о маршрутах обрабатывается автоматически, что избавит вас от необходимости вручную настраивать маршруты.
- Поддержка инспекции NVA: Все запросы из Spoke VNET будут направляться через NVA, где они могут быть инспектированы, прежде чем направляться к VPN Gateway.
- Масштабируемость: При добавлении новых Spoke VNET не потребуется переконфигурация существующих маршрутов.
Заключение
Ваша архитектура сможет эффективно использовать услуги Azure с динамической маршрутизацией, предоставляя автоматическое обновление маршрутов при использовании Azure Route Server и BGP. Это позволит вам достичь вашей цели без значительных усилий по управлению маршрутизацией на стороне Spoke VNET и VPN Gateway.
Если у вас возникнут дополнительные вопросы или вам потребуется помощь в настройке, обратитесь за поддержкой к специалистам Azure или вашему техническому отделу.
Удачи в реализации вашей архитектуры!