Внутренняя сеть Azure с балансировкой нагрузки с VNet Gateway с P2S VPN
Как следует из названия, мне нужно создать внутренний шлюз с балансировкой нагрузки с VPN. Я разработчик, поэтому работа в сети - не моя сильная сторона.
У меня есть две идентичные виртуальные машины (VM1 в зоне доступности 1 и VM2 в зоне доступности 2), и мне нужно разделить трафик VPN между ними. Мой клиент предоставил диапазон из 5 адресов, которые будут настроены на его брандмауэре, поэтому я выберу один для них, и они затем должны будут забыть о внутренней маршрутизации.
Моя конечная цель - разрешить клиенту подключаться через VPN к одному IP-адресу (в выделенном им диапазоне) и позволить Azure направлять трафик в основном на VM1, но при сбое на VM2, если зона доступности 1 выходит из строя. Клиент должен не знать, к какой виртуальной машине он в конечном итоге подключится.
Моя проблема заключается в том, что я не могу создать конфигурацию, в которой статический IP-адрес балансировщика нагрузки находится в диапазоне адресов пула адресов VPN P2S шлюза. Azure требует, чтобы пул адресов P2S находился за пределами адресного пространства виртуальной сети, а балансировщик нагрузки должен использовать подсеть виртуальной сети (которая, очевидно, находится внутри адресного пространства виртуальной сети, поэтому я застрял.
Я могу создать GW -> Vnet -> подсеть -> VM1/VM2 без проблем, используя указанный диапазон IP-адресов клиента для P2S VPN, но без балансировщика нагрузки, как мне тогда направлять трафик между виртуальными машинами?
например (IP-адреса являются гипотетическими)
- Диапазон адресов Vnet - 172.10.0.0/16.
- Подсеть шлюза 172.10.10.0/24
- Пул адресов P2S шлюза - 172.5.5.5/29.
- IP-адрес VM1 172.10.10.4
- IP-адрес VM2 172.10.10.5
Я могу создать балансировщик нагрузки для использования Vnet (и виртуальных машин в бэкэнд-пуле), но тогда его статический IP-адрес должен попадать в подсеть VNet и, следовательно, выходить за пределы пула адресов P2S. Так как мне этого добиться?
Я думал о создании второй виртуальной сети и соответствующего шлюза и связывании шлюзов, но я, похоже, оказался в одной лодке
ОБНОВЛЕНИЕ: вот изображение моей диаграммы VNet. На данный момент я только добавил одну из виртуальных машин (NSPHiAvail1), но VM2 будет в том же внутреннем пуле LB
NSP_Address_Range - это диапазон, подсеть виртуальной сети и диапазон, определяемый клиентом. Балансировщик нагрузки имеет IP-интерфейс в этом диапазоне
2 ответа
Моей проблемой были правила балансировки нагрузки - или их отсутствие. После того, как я добавил правило для порта 1433 (SQL Server), я смог запросить базу данных из моего локального экземпляра SSMS.
Есть другое решение, которое НАМНОГО проще, чем решение, которое я пытался реализовать, НО оно не работает, если учесть внутренний балансировщик нагрузки
Наборы масштабирования виртуальных машин Azure реализуют столько виртуальных машин, сколько я укажу, и автоматически переключатся в другую зону, если она выйдет из строя. Мне не нужен аспект масштабируемости, поэтому я отключил это, и я использую только аспект балансировки нагрузки.
Примечание. Эта настройка предоставляет только публичный IP-адрес, и вы не можете назначить внутренний балансировщик нагрузки в сочетании с общедоступным балансировщиком нагрузки по умолчанию.
Вот немного информации:
Краткое руководство: создание набора масштабов виртуальных машин на портале Azure
Создайте набор масштабов виртуальной машины, который использует зоны доступности
Сеть для наборов масштабирования виртуальных машин Azure
Наборы масштабов виртуальной машины
Стоимость - это то, что вы платите за отдельные виртуальные машины, но балансировка нагрузки включена. Так что это дешевле, чем решение, которое я описал в своем вопросе. Бонус!
Во-первых, балансировщик нагрузки Azure выполняет циклическое распределение нагрузки для новых входящих TCP-соединений, его нельзя использовать для восстановления после отказа.
Моя проблема заключается в том, что я не могу создать конфигурацию, в которой статический IP-адрес балансировщика нагрузки находится в диапазоне адресов пула адресов VPN P2S шлюза.
Вам не нужно добавлять внешний IP-адрес балансировщика нагрузки в пул адресов P2S, пул адресов используется для клиентов, подключающихся к вашей виртуальной сети Azure.
Как правило, вы можете настроить шлюз P2S VPN, создать подсеть шлюза и vmsubnet и создать балансировщик нагрузки внутреннего стандарта SKU в vmsubnet, а затем добавить виртуальные машины vmsubnet в бэкэнд-пул в качестве конечной цели балансировщика нагрузки и настроить Healthpro и правило балансировки нагрузки для балансировки нагрузки трафика. Если это так, вы можете получить доступ к внутренним виртуальным машинам с клиентов через частный IP-адрес балансировщика нагрузки.
Кроме того, вы можете знать некоторые ограничения относительно внутреннего балансировщика нагрузки.