Azure шлюз с виртуальной сетью

У меня есть несколько вопросов по настройке шлюза и виртуальной машины, так что вот что у меня есть на самом деле.

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

Цели, которые я пытаюсь достичь:

  • Сделайте балансировщик нагрузки на порт 1680, перенаправленный на порт 1680.

  • Чтобы перенаправить SSH каждой виртуальной машины для подключения конкретно к одной, поскольку на данный момент у них нет общедоступных IP-адресов. Можно ли сделать это с помощью правила на основе пути? Как www.example.com/VM1 для подключения по SSH к первой виртуальной машине? Если нет, что можно использовать для разграничения соединения SSH VM1 и VM2?

  • Перенаправить порт 80 шлюза на порт 8080 конкретной виртуальной машины. Как и в предыдущем примере, www.example.com/adminPanelVM1 для подключения к первой виртуальной машине через порт 80 (перенаправлен на порт 8080 виртуальной машины)

Мне уже удалось создать перенаправление порта 1680 шлюза с параметром HTTP, слушателем и правилом.

1 ответ

Решение

Шлюз приложений Azure

Шлюз приложений Azure работает на уровне 7 в модели OSI по протоколам HTTP/HTTPS/WebSocket, из-за чего невозможно использовать любой другой протокол (например, SSH).

У тебя есть несколько вариантов.

Вы можете использовать Network Security Group или NSG для контроля доступа к вашим виртуальным машинам. В NSG вы определяете, откуда может поступать трафик, которому разрешен доступ к виртуальным машинам.

NSG ведет себя подобно фильтрующему трафик списку контроля доступа на основе информации об источнике и получателе и правилам оценки в порядке приоритета. Смотрите эту страницу для получения дополнительной информации о ГЯП.

Другой вариант - использовать балансировщик нагрузки.

Azure Load Balancer

Если вам нужно сопоставить порты, как вы описали в своем вопросе, тогда простой балансировщик нагрузки может быть лучшим решением для вас. Балансировщик нагрузки Azure работает на более низком уровне в модели OSI, а именно на уровне 4 (транспортный уровень), обрабатывая трафик TCP/UDP.

Итак, если вы используете балансировщик нагрузки, то вы можете настроить правила NAT для перенаправления трафика на определенные машины, другими словами, если вы хотите сделать:

  • LB-порт 1234 перенаправляет на VM1 порт 22 и
  • LB порт 4312 перенаправляет на VM2 порт 22

Вы можете сделать это с помощью PowerShell, как описано в разделе Создание общедоступного балансировщика нагрузки в Resource Manager с помощью статьи PowerShell.

Есть довольно много шагов, но он проведет вас через весь процесс создания правил NAT, сетевых карт и связанных виртуальных машин.

Шлюз приложений Azure против Azure Load Balancer?

Эти два сервиса являются совершенно разными сервисами и пытаются решить разные проблемы, хотя эти проблемы могут выглядеть похожими:)

Основное использование шлюза приложений:

  • Прекращение SSL
  • близость сеанса на основе файлов cookie
  • циклический перебор для балансировки нагрузки трафика

Где служба Azure Load Balancer работает как уровень TCP/UDP и поддерживает, например, сопоставление портов.

С точки зрения стоимости услуга балансировки нагрузки является бесплатной, в то время как стоимость шлюза приложения оплачивается в час.

Есть много замечательных статей на эту тему, когда выбрать какой сервис. Смотрите, например, ссылки для более подробной информации

Другие вопросы по тегам