Рекомендации по использованию Шлюза NAT в Azure для мультитенантности

Шлюз NAT Azure обеспечивает управление исходящим сетевым подключением из ресурсов, размещенных в виртуальной сети Azure. В этой статье мы рассмотрим, как шлюз NAT может снизить нехватку портов преобразования сетевых адресов (SNAT), что может повлиять на мультитенантные приложения. Мы также рассмотрим, как шлюз NAT назначает статические IP-адреса исходящему трафику из мультитенантного решения.

Примечание.

Брандмауэры, такие как Брандмауэр Azure, позволяют контролировать и регистрировать исходящий трафик. Брандмауэр Azure также предоставляет аналогичный масштаб портов SNAT и управление исходящими IP-адресами шлюза NAT. Шлюз NAT является менее дорогостоящим, но он также имеет меньше функций и не является продуктом безопасности.

Функции шлюза NAT, поддерживающего мультитенантность

Высокомасштабируемые порты SNAT

Порты SNAT выделяются, когда приложение делает несколько одновременных исходящих подключений к одному и тому же общедоступному IP-адресу на одном порту. Порты SNAT — это конечный ресурс в подсистемах балансировки нагрузки. Если приложение открывает большое количество отдельных подключений к одному узлу, оно может использовать все доступные порты SNAT. Эта ситуация называется исчерпанием портов SNAT.

В большинстве приложений исчерпание портов SNAT указывает, что приложение неправильно обрабатывает HTTP-подключения или TCP-порты. Однако некоторые мультитенантные приложения подвергаются определенному риску превышения ограничений портов SNAT, даже если они повторно используют подключения. Например, эта ситуация может произойти, когда приложение подключается ко многим базам данных, зависящим от клиента, за тем же шлюзом баз данных.

Совет

Если в мультитенантном приложении наблюдается исчерпание портов SNAT, следует проверить, следует ли использовать рекомендации приложения. Убедитесь, что вы повторно используете HTTP-подключения и не создаете новые подключения при каждом подключении к внешней службе. Возможно, вы сможете развернуть шлюз NAT для решения проблемы, но если код не соответствует рекомендациям, вы можете столкнуться с этой проблемой в будущем.

Проблема усугубляется при работе со службами Azure, которые совместно используют распределение портов SNAT между несколькими клиентами, такими как служба приложение Azure и Функции Azure.

Если вы определите, что вы испытываете нехватку SNAT и убедитесь, что код приложения правильно обрабатывает исходящие подключения, рассмотрите возможность развертывания шлюза NAT. Этот подход часто используется клиентами, которые развертывают мультитенантные решения, созданные на основе службы приложение Azure и Функции Azure.

Отдельный шлюз NAT может иметь несколько общедоступных IP-адресов, и каждый общедоступный IP-адрес предоставляет набор портов SNAT для подключения исходящего трафика к Интернету. Чтобы понять максимальное количество портов SNAT и IP-адресов, которые поддерживает один шлюз NAT, см . ограничения подписки и службы Azure, квоты и ограничения. Если необходимо увеличить масштаб до этого ограничения, можно рассмотреть возможность развертывания нескольких экземпляров шлюза NAT в нескольких подсетях или виртуальных сетям. Каждая виртуальная машина в подсети может использовать любой из доступных портов SNAT, если они нужны.

Элемент управления исходящим IP-адресом

Управление исходящими IP-адресами может быть полезным в мультитенантных приложениях, если у вас есть все следующие требования:

  • Службы Azure, которые не предоставляют выделенные статические IP-адреса для исходящего трафика, используются автоматически. К этим службам относятся служба приложение Azure, Функции Azure, Управление API (при выполнении на уровне потребления) и Экземпляры контейнеров Azure.
  • Необходимо подключиться к сетям клиентов через Интернет.
  • Клиенты должны фильтровать входящий трафик на основе IP-адреса каждого запроса.

При применении экземпляра шлюза NAT к подсети любой исходящий трафик из этой подсети использует общедоступные IP-адреса, связанные с шлюзом NAT.

Примечание.

При связывании нескольких общедоступных IP-адресов с одним шлюзом NAT исходящий трафик может поступать из любого из этих IP-адресов. Возможно, потребуется настроить правила брандмауэра в месте назначения. Следует разрешить каждый IP-адрес или использовать ресурс префикса общедоступного IP-адреса для использования набора общедоступных IP-адресов в одном диапазоне.

Модели изоляции

Если необходимо предоставить разные исходящие общедоступные IP-адреса для каждого клиента, необходимо развернуть отдельные ресурсы шлюза NAT. Каждая подсеть может быть связана с одним экземпляром шлюза NAT. Чтобы развернуть дополнительные шлюзы NAT, необходимо развернуть несколько подсетей или виртуальных сетей. В свою очередь, вам, скорее всего, потребуется развернуть несколько наборов вычислительных ресурсов.

Ознакомьтесь с подходами архитектуры к сети в мультитенантных решениях для получения дополнительных сведений о разработке мультитенантной топологии сети.

Соавторы

Эта статья поддерживается корпорацией Майкрософт. Первоначально он был написан следующими участниками.

Автор субъекта:

Другие участники:

Чтобы просмотреть недоступные профили LinkedIn, войдите в LinkedIn.

Следующие шаги