Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Load Balancer предоставляет указанные ниже возможности для приложений TCP и UDP.
Плавающий IP-адрес
Некоторые сценарии приложений предпочитают или требуют использования одного порта несколькими экземплярами приложений на одной виртуальной машине в серверном пуле. К распространенным примерам повторного использования портов относятся виртуальные сетевые устройства, кластеризация для обеспечения высокой доступности и размещение нескольких конечных точек TLS без повторного шифрования. Если вы хотите, чтобы внутренний порт повторно использовался в нескольких правилах, то в определении правила необходимо активировать плавающий IP-адрес. Включение плавающего IP-адреса обеспечивает большую гибкость.
Статус плавающего IP-адреса | Результат |
---|---|
Включенный плавающий IP-адрес | Azure изменяет сопоставление IP-адресов с IP-адресом внешнего интерфейса подсистемы балансировки нагрузки |
Отключенный плавающий IP-адрес | Azure предоставляет IP-адрес экземпляров виртуальных машин |
На схемах показано, как работает сопоставление IP-адресов до и после включения плавающего IP-адреса:
Вы настраиваете плавающий IP-адрес в правиле Load Balancer с помощью портал Azure, REST API, CLI, PowerShell или другого клиента. Чтобы использовать плавающий IP-адрес, кроме настройки правил необходимо также задать конфигурацию гостевой ОС виртуальной машины.
Тип правил с плавающим IP-адресом лежит в основе нескольких шаблонов конфигураций балансировщика нагрузки. Одним из примеров, доступных в настоящее время, является настройка одного или нескольких прослушивателей группы доступности Always On. Со временем мы задокументируем больше этих сценариев.
Конфигурация гостевой ОС для плавающего IP-адреса
Чтобы функционировать, вы настроите гостевую ОС для виртуальной машины, чтобы получить весь трафик, привязанный к интерфейсному IP-адресу и порту подсистемы балансировки нагрузки. Для настройки виртуальной машины требуется:
- добавление сетевого интерфейса loopback
- Настроить интерфейс обратной связи с указанием внешнего IP-адреса балансировщика нагрузки.
- обеспечение того, что система может отправлять и получать пакеты в интерфейсах, у которых нет IP-адреса, назначенного данному интерфейсу. Для систем Windows необходимо, чтобы интерфейсы были настроены на использование модели "слабый узел". Для систем Linux эта модель обычно используется по умолчанию.
- Настройка брандмауэра хоста для разрешения трафика на внешнем IP-порту.
Примечание.
В приведенных ниже примерах используется протокол IPv4; для использования протокола IPv6 замените "ipv6" на "ipv4".
Windows Server
Развернуть
Для каждой виртуальной машины во внутреннем пуле выполните указанные ниже команды в командной строке Windows на сервере.
Чтобы получить список имен интерфейсов, которые у вас есть на виртуальной машине, введите следующую команду:
netsh interface ipv4 show interface
Для сетевой карты виртуальной машины (управляемая Azure) введите следующую команду после замены имени интерфейса именем интерфейса, который вы хотите использовать:
netsh interface ipv4 set interface <interface-name> weakhostreceive=enabled
Для каждого добавленного интерфейса обратной связи введите эти команды после замены loopback-interface-name именем интерфейса обратной связи и floating-IP и floating-IPnetmask на соответствующие значения, которые соответствуют IP-адресу внешнего интерфейса балансировщика нагрузки.
netsh interface ipv4 add addr <loopback-interface-name> <floating-IP> <floating-IPnetmask> netsh interface ipv4 set interface <loopback-interface-name> weakhostreceive=enabled weakhostsend=enabled
Наконец, если гостевой узел использует брандмауэр, убедитесь, что правило настроено, чтобы трафик можно было связаться с виртуальной машиной на соответствующих портах. В этом примере конфигурации предполагается IP-конфигурация интерфейса фронтенда балансировщика нагрузки 1.2.3.4, а также правило балансировки нагрузки для порта 80.
netsh int ipv4 set int "Ethernet" weakhostreceive=enabled netsh int ipv4 add addr "Loopback Pseudo-Interface 1" 1.2.3.4 255.255.255.0 netsh int ipv4 set int "Loopback Pseudo-Interface 1" weakhostreceive=enabled weakhostsend=enabled netsh advfirewall firewall add rule name="http" protocol=TCP localport=80 dir=in action=allow enable=yes
Убунту
Развернуть
Для каждой виртуальной машины во внутреннем пуле выполните указанные следующие команды в сеансе SSH.
Чтобы получить список имен интерфейсов на виртуальной машине, введите следующую команду:
ip addr
Для каждого добавленного интерфейса обратной связи введите эти команды после замены loopback-interface-name именем интерфейса обратной связи и floating-IP и floating-IPnetmask на соответствующие значения, которые соответствуют IP-адресу внешнего интерфейса балансировщика нагрузки.
sudo ip addr add <floating-IP>/<floating-IPnetmask> dev lo:0
Наконец, если гостевой узел использует брандмауэр, убедитесь, что правило настроено, чтобы трафик можно было связаться с виртуальной машиной на соответствующих портах. В этом примере конфигурации предполагается, что IP-конфигурация фронтенда балансировщика нагрузки составляет 1.2.3.4, правило балансировки нагрузки для порта 80 и использование UFW (Простой брандмауэр) в Ubuntu.
sudo ip addr add 1.2.3.4/24 dev lo:0 sudo ufw allow 80/tcp
Ограничения
- При включении плавающего IP-адреса в правиле балансировки нагрузки приложение должно использовать основную IP-конфигурацию сетевого интерфейса для исходящего трафика.
- Если ваше приложение привязывается к IP-адресу фронтенда, настроенному на интерфейсе обратной петли в гостевой ОС, исходящее соединение Azure не перенаправляет исходящий поток, и этот поток завершается ошибкой. Рассмотрите сценарии для исходящего трафика.
- Не удается использовать IP-адрес с плавающей запятой в дополнительных IP-конфигурациях для сценариев балансировки нагрузки. Это ограничение не применяется к общедоступным подсистемам балансировки нагрузки, в которых вторичная IP-конфигурация является IPv6 и частью конфигурации с двумя стеками, или к архитектурам, используюющим шлюз NAT для исходящего подключения.
Следующие шаги
- Узнайте об использовании нескольких фронтендов с Azure Load Balancer.
- Ознакомьтесь со сведениями об исходящих подключениях Azure Load Balancer.