Рекомендации по использованию Шлюза 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.

Каждый общедоступный IP-адрес, подключенный к шлюзу NAT, предоставляет 64 512 портов SNAT для исходящего подключения к Интернету. Шлюз NAT может масштабироваться для использования до 16 общедоступных IP-адресов, которые предоставляют более 1 миллиона портов SNAT. Если необходимо увеличить масштаб за пределы этого предела, можно развернуть несколько экземпляров шлюза 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.

Дальнейшие действия