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 и поддерживает, например, сопоставление портов.
С точки зрения стоимости услуга балансировки нагрузки является бесплатной, в то время как стоимость шлюза приложения оплачивается в час.
Есть много замечательных статей на эту тему, когда выбрать какой сервис. Смотрите, например, ссылки для более подробной информации