Reglas de salida en Azure Load Balancer

Las reglas de salida permiten definir de forma explícita SNAT (traducción de direcciones de red de origen) para un equilibrador de carga público estándar. Esta configuración permite usar las direcciones IP públicas del equilibrador de carga para proporcionar conectividad de Internet de salida a las instancias de back-end.

Esta configuración habilita:

  • El enmascaramiento de IP
  • Simplificar las listas de permitidos.
  • La reducción del número de recursos de IP pública para la implementación

Con las reglas de salida, tiene un control declarativo completo sobre la conectividad saliente de Internet. Las reglas de salida le permiten escalar y ajustar esta capacidad a sus necesidades específicas.

Solo se seguirán las reglas de salida si la VM de back-end no tiene una dirección IP pública de nivel de instancia (ILPIP).

Este diagrama muestra la configuración de los puertos SNAT en máquinas virtuales con reglas del equilibrador de carga saliente.

Con las reglas de salida, puede definir explícitamente un comportamiento SNAT.

Las reglas de salida permiten controlar:

  • Qué máquinas virtuales se deben traducir a qué direcciones IP públicas.
    • Dos reglas en las que el pool de backend 1 utiliza las dos direcciones IP azules, y el pool de backend 2 utiliza el prefijo IP amarillo.
  • Cómo se asignan los puertos de SNAT de salida.
    • Si el grupo de back-end 2 es el único grupo que realiza conexiones salientes, concede todos los puertos SNAT al grupo de back-end 2 y ninguno al grupo de back-end 1.
  • A qué protocolos se proporciona traducción de salida.
    • Si el grupo de back-end 2 necesita puertos UDP para salida, y el grupo de back-end 1 necesita TCP, asigne puertos TCP a 1 y puertos UDP a 2.
  • Qué duración se debe usar para el tiempo de espera de inactividad de conexión (de 4 a 120 minutos).
    • Si hay conexiones de larga ejecución con Keepalives, reserve puertos inactivos para las conexiones de larga ejecución durante un máximo de 120 minutos. Suponga que las conexiones obsoletas se han abandonado y libere los puertos en 4 minutos para las conexiones nuevas.
  • Si quiere enviar un restablecimiento de TCP en caso de tiempo de espera de inactividad.
    • Al agotarse el tiempo de espera de las conexiones inactivas, ¿se envía un RST de TCP al cliente y al servidor para que sepan que se ha abandonado el flujo?

Importante

Cuando un grupo de back-end se configure mediante una dirección IP, se comportará como un equilibrador de carga básico con la salida predeterminada habilitada. Para proteger de forma predeterminada la configuración y las aplicaciones con necesidades de salida exigentes, configure el grupo de back-end mediante NIC.

Definición de la regla de salida

Las reglas de salida siguen la misma sintaxis conocida que las reglas de NAT de entrada y de equilibrio de carga: front-end + parámetros + grupo de back-end.

Una regla de salida configura una NAT de salida para todas las máquinas virtuales identificadas por el grupo de back-end que se deben traducir para el front-end.

parameters permite un control más preciso frente al algoritmo de NAT de salida.

NAT de salida de escala con varias direcciones IP

Cada dirección IP adicional facilitada por un front-end ofrece 64 000 puertos efímeros adicionales para que el equilibrador de carga lo use como puertos SNAT.

Use varias direcciones IP para planear escenarios a gran escala. Use reglas de salida para mitigar el agotamiento de SNAT.

También puede usar un prefijo de IP pública directamente con una regla de salida.

Un prefijo de dirección IP pública aumenta el escalado de la implementación. El prefijo se puede agregar a la lista de permitidos de flujos procedentes de los recursos de Azure. Puede definir una configuración de IP de front-end en el equilibrador de carga para hacer referencia a un prefijo de dirección IP pública.

El equilibrador de carga tiene control sobre el prefijo de IP pública. La regla de salida usará automáticamente todas las direcciones IP públicas que contiene el prefijo de IP pública para las conexiones de salida.

Cada una de las direcciones IP del prefijo de IP pública proporciona 64 000 puertos efímeros adicionales por cada dirección IP para que el equilibrador de carga los use como puertos SNAT.

Tiempo de espera de inactividad de flujo de salida y restablecimiento de TCP

Las reglas de salida proporcionan un parámetro de configuración para controlar el tiempo de espera de inactividad del flujo de salida y que se corresponda con las necesidades de su aplicación. El tiempo de espera de inactividad de salida predeterminado es de 4 minutos. Para obtener más información, consulte la configuración de tiempos de espera de inactividad.

El comportamiento predeterminado del equilibrador de carga es anular el flujo en silencio cuando se alcanza el tiempo de espera de inactividad de salida. El parámetro enableTCPReset habilita un control y comportamiento predecibles de la aplicación. El parámetro indica si se debe enviar el restablecimiento de TCP (TCP RST) bidireccional en el tiempo de espera del tiempo de espera de inactividad de salida.

Revise Restablecimiento de TCP al agotarse el tiempo de espera de inactividad para obtener detalles como la disponibilidad por regiones.

Protección y control de la conectividad de salida de manera explícita

Las reglas de equilibrio de carga proporcionan programación automática de NAT de salida. Algunos escenarios requieren que deshabilite la programación automática de NAT de salida por parte de la regla de equilibrio de carga. Deshabilitar a través de la regla le permite controlar o perfeccionar el comportamiento.

Puede usar este parámetro de dos maneras:

  1. Prevención de la dirección IP de entrada para SNAT de salida. Deshabilite la SNAT de salida en la regla de equilibrio de carga.

  2. Ajuste los parámetros de SNAT de salida de una dirección IP que se usa para el tráfico de entrada y salida al mismo tiempo. La NAT de salida automática debe deshabilitarse para permitir que una regla de salida tome el control. Para cambiar la asignación de puertos SNAT de una dirección que también se usa para la entrada, el parámetro disableOutboundSnat se debe establecer en true.

Se producirá un error en la operación de configuración de una regla de salida si intenta redefinir una dirección IP que se usa para la entrada. Deshabilite primero la NAT de salida de la regla de equilibrio de carga.

Importante

La máquina virtual no tendrá conectividad de salida si este parámetro se establece en true y no tiene una regla de salida para definir la conectividad de salida. Algunas operaciones de la VM o la aplicación pueden depender de la conectividad de salida disponible. Asegúrese de comprender las dependencias del escenario y de haber considerado el impacto de hacer este cambio.

En ocasiones, no es aconsejable que una VM cree un flujo de salida. Puede que exista un requisito para administrar qué destinos reciben flujos de salida o qué destinos comienzan los flujos de entrada. Use los grupos de seguridad de red para administrar los destinos a los que se conecta la VM. Use los NSG para administrar qué destinos públicos inician los flujos de entrada.

Cuando aplique un grupo de seguridad de red a una máquina virtual de carga equilibrada, preste atención a las etiquetas de servicio y a las reglas de seguridad predeterminadas.

Asegúrese de que la VM pueda recibir solicitudes de sondeo de mantenimiento desde Azure Load Balancer.

Si un grupo de seguridad de red bloquea las solicitudes de sondeo de mantenimiento de la etiqueta predeterminada AZURE_LOADBALANCER, se producirá un error en el sondeo de mantenimiento de la máquina virtual y esta se marca como no disponible. El equilibrador de carga dejará de enviar nuevos flujos a esa VM.

Escenarios de reglas de salida

Escenario 1: Configuración de conexiones de salida en un conjunto específico de direcciones IP públicas o prefijos

Detalles

Use este escenario para adaptar las conexiones de salida de modo que se originen desde un conjunto de direcciones IP públicas. Agregue direcciones IP públicas o prefijos a una lista de permitidos o bloqueados en función del origen.

Este prefijo o esta dirección IP pública pueden ser los mismos que los usados por una regla de equilibrio de carga.

Para usar una dirección IP pública o un prefijo distintos a los usados por una regla de equilibrio de carga, siga estos pasos:

  1. Cree una dirección IP pública o un prefijo de dirección IP pública.
  2. Cree un equilibrador de carga público estándar.
  3. Cree un front-end que haga referencia al prefijo de IP pública o la dirección IP pública que quiera usar.
  4. Vuelva a usar un grupo de back-end o cree uno y coloque las VM en un grupo de back-end del equilibrador de carga público.
  5. Configure una regla de salida en el equilibrador de carga público para habilitar una NAT de salida para las VM que usan el front-end. No se recomienda usar una regla de equilibrio de carga con fines de salida. Deshabilite la opción SNAT de salida en la regla de equilibrio de carga.

Escenario 2: Modificación de la asignación de puertos de SNAT

Detalles

Puede utilizar reglas de salida para ajustar la asignación de puertos de SNAT automática basada en el tamaño del grupo de back-end.

Si experimenta agotamiento de SNAT, aumente el número de puertos de SNAT proporcionados a partir del valor predeterminado de 1024.

Cada dirección IP pública aporta hasta 64 000 puertos efímeros. El número de máquinas virtuales del grupo de back-end determina el número de puertos distribuidos a cada máquina virtual. Una máquina virtual del grupo de back-end tiene acceso al máximo de 64 000 puertos. Para dos VM, se puede proporcionar un máximo de 32 000 puertos de SNAT con una regla de salida (2 x 32 000 = 64 000).

Puede usar reglas de salida para ajustar los puertos de SNAT proporcionados de manera predeterminada. Proporcione más o menos que la asignación de puertos predeterminada de SNAT. Cada dirección IP pública de un front-end de una regla de salida aporta hasta 64 000 puertos efímeros para su uso como puertos de SNAT.

El equilibrador de carga proporciona puertos de SNAT en múltiplos de 8. Si proporciona un valor que no se puede dividir por 8, se rechaza la operación de configuración. Cada regla de equilibrio de carga y regla NAT de entrada utilizará un rango de 8 puertos. Si una regla de equilibrio de carga o una regla NAT de entrada comparten el mismo rango de 8 puertos que otra, no se utilizarán puertos adicionales.

Si intenta asignar más puertos de SNAT de los que están disponibles en función del número de direcciones IP públicas, se rechazará la operación de configuración. Por ejemplo, si proporciona 10 000 puertos por máquina virtual y siete máquinas virtuales de un grupo de back-end comparten una única dirección IP pública, se rechaza la configuración. Siete multiplicado por 10 000 supera el límite de puertos de 64 000. Agregue más direcciones IP públicas al front-end de la regla de salida para habilitar el escenario.

Vuelva a la asignación de puertos predeterminada mediante la especificación de 0 en el número de puertos. Para obtener más información sobre la asignación de puertos de SNAT predeterminada, vea la tabla de asignación de puertos de SNAT.

Escenario 3: Habilitación de solo la salida

Detalles

Use un equilibrador de carga público estándar para proporcionar NAT de salida para un grupo de VM. En este escenario, use únicamente una regla de salida, sin reglas adicionales configuradas.

Nota:

Azure NAT Gateway puede proporcionar conectividad de salida para máquinas virtuales sin necesidad de un equilibrador de carga. Consulte ¿Qué es Azure NAT Gateway? para más información.

Escenario 4: NAT de salida solo para VM (no de entrada)

Nota:

Azure NAT Gateway puede proporcionar conectividad de salida para máquinas virtuales sin necesidad de un equilibrador de carga. Consulte ¿Qué es Azure NAT Gateway? para más información.

Detalles

En este escenario: Las reglas de salida de Azure Load Balancer y Virtual Network NAT son dos opciones disponibles para la salida desde una red virtual.

  1. Cree un prefijo o una dirección IP pública.
  2. Cree un equilibrador de carga público estándar.
  3. Cree un front-end asociado a la dirección IP pública o el prefijo dedicado para la salida.
  4. Cree un grupo de back-end para las máquinas virtuales.
  5. Coloque las máquinas virtuales en el grupo de back-end.
  6. Configure una regla de salida para habilitar NAT de salida.

Use un prefijo o una dirección IP pública para escalar puertos de SNAT. Agregue el origen de conexiones de salida a una lista de permitidos o bloqueados.

Escenario 5: NAT de salida para equilibrador de carga interno estándar

Nota:

Azure NAT Gateway puede proporcionar conectividad de salida para máquinas virtuales que usen un equilibrador de carga interno estándar. Consulte ¿Qué es Azure NAT Gateway? para más información.

Detalles

La conectividad de salida no está disponible para un equilibrador de carga interno estándar hasta que se ha declarado explícitamente por medio de direcciones IP públicas de nivel de instancia o Virtual Network NAT, o mediante la asociación de los miembros del grupo de back-end a una configuración de equilibrador de carga solo de salida.

Para obtener más información, vea Configuración del equilibrador de carga solo de salida.

Escenario 6: Habilitación de los protocolos TCP y UDP para NAT de salida con un equilibrador de carga público estándar

Detalles

Cuando se usa un equilibrador de carga público estándar, la regla NAT de salida automática facilitada coincide con el protocolo de transporte de la regla de equilibrio de carga.

  1. Deshabilite SNAT de salida en la regla de equilibrio de carga.
  2. Configure una regla de salida en el mismo equilibrador de carga.
  3. Vuelva a usar el grupo de back-end que usó para sus VM.
  4. Especifique "protocol": "All" como parte de la regla de salida.

Si solo se usan reglas de NAT entrantes, no se proporciona ninguna NAT de salida.

  1. Coloque las VM en un grupo de back-end.
  2. Defina una o varias configuraciones de IP de front-end con direcciones IP públicas o prefijos de IP pública.
  3. Configure una regla de salida en el mismo equilibrador de carga.
  4. Especifique "protocol": "All" como parte de la regla de salida.

Limitaciones

  • El número máximo de puertos efímeros posibles por dirección IP de front-end es 64 000.
  • El intervalo de tiempo de espera de inactividad de salida que puede configurar oscila entre 4 y 120 minutos (de 240 a 7200 segundos).
  • El equilibrador de carga no admite ICMP para NAT de salida, los únicos protocolos admitidos son TCP y UDP.
  • Las reglas de salida solo se pueden aplicar a la configuración de IPv4 principal de una NIC. No se puede crear una regla de salida para las configuraciones IPv4 secundarias de una máquina virtual o NVA . Se admiten varias NIC.
  • Las reglas de salida para la configuración de IP secundaria solo se admiten para IPv6.
  • Todas las máquinas virtuales de un conjunto de disponibilidad se deben agregar al grupo de back-end para la conectividad de salida.
  • Todas las máquinas virtuales de un conjunto de escalado de máquinas virtuales se deben agregar al grupo de back-end para la conectividad de salida.

Pasos siguientes