Consideraciones de Azure NAT Gateway para la administración multiinquilino
NAT Gateway de Azure proporciona control sobre la conectividad de red saliente desde los recursos que se hospedan dentro de una red virtual de Azure. En este artículo, se revisa cómo NAT Gateway puede mitigar el agotamiento del puerto de traducción de direcciones de red de origen (SNAT), lo que puede afectar a las aplicaciones multitentenimiento. También se revisa cómo NAT Gateway asigna direcciones IP estáticas al tráfico saliente de su solución multiusuario.
Nota:
Los firewalls, como Azure Firewall, le permiten controlar y registrar el tráfico saliente. Azure Firewall también proporciona una escala de puerto SNAT similar y un control de direcciones IP salientes para NAT Gateway. NAT Gateway es menos costoso, pero también tiene menos características y no es un producto de seguridad.
Características de NAT Gateway que admiten multiinquilino
Puertos SNAT a gran escala
Los puertos SNAT se asignan cuando la aplicación realiza varias conexiones salientes simultáneas a la misma dirección IP pública, en el mismo puerto. Los puertos SNAT son un recurso finito dentro de los equilibradores de carga. Si la aplicación abre un gran número de conexiones independientes al mismo host, puede consumir todos los puertos SNAT disponibles. Esta situación se denomina agotamiento de puertos SNAT.
En la mayoría de las aplicaciones, el agotamiento de puertos SNAT indica que la aplicación está controlando incorrectamente las conexiones HTTP o los puertos TCP. Sin embargo, algunas aplicaciones multiinquilino corre el riesgo particular de superar los límites de puertos SNAT, incluso si reutilizan las conexiones correctamente. Por ejemplo, esta situación puede producirse cuando la aplicación se conecta a muchas bases de datos específicas del inquilino detrás de la misma puerta de enlace de base de datos.
Sugerencia
Si observa el agotamiento de puertos SNAT en una aplicación multiinquilino, debe comprobar si la aplicación sigue los procedimientos recomendados. Asegúrese de reutilizar las conexiones HTTP y de no volver a crear nuevas conexiones cada vez que se conecte a un servicio externo. Es posible que pueda implementar un NAT Gateway para solucionar el problema, pero si el código no sigue los procedimientos recomendados, podría encontrar el problema de nuevo en el futuro.
El problema se acentúa cuando se trabaja con servicios de Azure que comparten asignaciones de puertos SNAT entre varios clientes, como Azure App Service y Azure Functions.
Si determina que está experimentando agotamiento de SNAT y está seguro de que el código de la aplicación controla correctamente las conexiones salientes, considere la posibilidad de implementar NAT Gateway. Este enfoque lo usan normalmente los clientes que implementan soluciones multiinquilino que se basan en Azure App Service y Azure Functions.
Una NAT Gateway individual puede tener varias direcciones IP públicas conectadas y cada dirección IP pública proporciona un conjunto de puertos SNAT para conectarse a Internet. Para comprender el número máximo de puertos SNAT y direcciones IP que puede admitir una sola NAT Gateway, consulte Límites, cuotas y restricciones de suscripción y servicio de Azure. Si necesita escalar más allá de este límite, puede considerar la posibilidad de implementar varias instancias de NAT Gateway en varias subredes o redes virtuales. Cada máquina virtual de una subred puede usar cualquiera de los puertos SNAT disponibles, si los necesita.
Control de direcciones IP salientes
El control de direcciones IP salientes puede ser útil en aplicaciones multiinquilino, cuando se cumplen todos los requisitos siguientes:
- Los servicios de Azure que no proporcionan automáticamente direcciones IP estáticas dedicadas para el tráfico saliente. Estos servicios incluyen Azure App Service, Azure Functions, API Management (cuando se ejecuta en el nivel de consumo) y Azure Container Instances.
- Debe conectarse a las redes de los inquilinos a través de Internet.
- Los inquilinos deben filtrar el tráfico entrante en función de la dirección IP de cada solicitud.
Cuando se aplica una instancia NAT Gateway a una subred, cualquier tráfico saliente de esa subred usa las direcciones IP públicas asociadas a la puerta de enlace NAT.
Nota:
Al asociar varias direcciones IP públicas a un único NAT Gateway, el tráfico saliente podría proceder de cualquiera de esas direcciones IP. Es posible que tenga que configurar reglas de firewall en el destino. Debe permitir cada dirección IP o usar un recurso de prefijo de dirección IP pública para usar un conjunto de direcciones IP públicas en el mismo rango.
Modelos de aislamiento
Si necesita proporcionar diferentes direcciones IP públicas de salida para cada inquilino, debe implementar recursos de NAT Gateway individuales. Cada subred se puede asociar a una única instancia de NAT Gateway. Para implementar más puertas de enlace NAT, debe implementar varias subredes o redes virtuales. A su vez, es probable que necesite implementar varios conjuntos de recursos de proceso.
Revise los enfoques arquitectónicos para redes en soluciones multiinquilino para obtener más información sobre cómo diseñar una topología de red multiinquilino.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes colaboradores.
Autor principal:
- John Downs | Ingeniero de clientes principal, FastTrack for Azure
Otros colaboradores:
- Aimee Littleton | Administrador de programas 2, Azure NAT Gateway
- Arsen Vladimirskiy | Principal Customer Engineer, FastTrack for Azure
- Kevin Ashley | Ingeniero de clientes sénior, FastTrack for Azure
Para ver los perfiles no públicos de LinkedIn, inicie sesión en LinkedIn.