Reglas de salida en Azure Load Balancer

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

Esta configuración habilita:

  • Enmascaramiento de IP
  • Simplificación de las listas de autorización.
  • 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.

Las reglas de salida se aplican solo cuando la máquina virtual (VM) del backend no tiene una dirección IP pública a nivel de instancia.

Captura de pantalla de la configuración de puertos SNAT en máquinas virtuales con reglas de equilibrador de carga salientes.

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 Load Balancer 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. Load Balancer usa direcciones IP según sea necesario en función de los puertos disponibles. El equilibrador de carga usará la siguiente dirección IP una vez que las conexiones ya no se puedan realizar con la dirección IP actual en uso.

Use varias direcciones IP para planear escenarios a gran escala. Use reglas de salida para mitigar el agotamiento de SNAT, tal como se describe en Support y solución de problemas para Azure Load Balancer.

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 permisos de los flujos que se originan en tus 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 otras direcciones IP públicas contenidas en el prefijo de IP pública después de que no se puedan realizar más conexiones salientes con la dirección IP actual en uso desde el prefijo.

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 produce un error en la operación para configurar una regla de salida si intenta volver a definir 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 saliente si establece este parámetro en true y no tiene una regla de salida para definir la conectividad saliente. Algunas operaciones de la máquina virtual o la aplicación pueden depender de que haya conectividad saliente 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 máquina virtual puede recibir solicitudes de sondeo de estado de 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

Configurar las direcciones IP públicas utilizadas para las conexiones salientes

Este escenario se aplica a las máquinas virtuales backend en un Standard Load Balancer público. Úsalo para hacer que las conexiones salientes se originen desde un conjunto específico de direcciones IP públicas o un prefijo de IP pública. Luego puedes añadir esas direcciones o el prefijo a una lista de permisos o a una lista de bloqueos.

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 para salidas. Deshabilite SNAT de salida en la regla de equilibrio de carga.

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

Configurar puertos SNAT por instancia de backend

Este escenario se aplica a un equilibrador de carga estándar público con una regla de salida. Úsalo para ajustar la asignación automática de puertos SNAT en función del tamaño del grupo de backends, incluido aumentarla cuando experimentes agotamiento de SNAT.

Regla de asignación Behavior
Puertos disponibles para cada front-end Cada dirección IP pública aporta hasta 64 000 puertos efímeros.
Puertos disponibles por máquina virtual Divide el total de puertos disponibles entre las VMs del pool de backend. Por ejemplo, una VM puede recibir hasta 64.000 puertos desde una dirección IP frontal, mientras que dos VMs pueden recibir hasta 32.000 puertos cada una.
Incremento de asignación Especifica puertos en múltiplos de ocho. Azure rechaza valores que no son divisibles por ocho. Las reglas de balanceo de carga y las de NAT de entrada consumen cada una un rango de ocho puertos, pero las reglas que comparten el mismo rango no consumen puertos adicionales.
Validación de capacidad Los puertos asignados por VM multiplicados por el número de VMs no pueden superar los puertos disponibles de todas las direcciones IP frontend. Azure rechaza asignaciones que superen esta capacidad.
Restaurar la asignación automática Especifica 0 el número de puertos.

Por ejemplo, una asignación de 10.000 puertos por VM para siete VMs requiere 70.000 puertos. Una dirección IP frontend solo ofrece 64.000 puertos, por lo que Azure rechaza la configuración. Añadir otra dirección IP pública al frontend o reducir la asignación por VM.

Para más información, consulte la tabla de asignación de puertos SNAT.

Escenario 3: Habilitación de solo la salida

Proporcionar conectividad saliente sin reglas de entrada

Este escenario se aplica a un Standard Load Balancer público cuyas máquinas virtuales backend necesitan conectividad saliente sin reglas de balanceo de carga entrante. Configura la regla de salida por sí sola, sin configurar reglas adicionales.

Nota:

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

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

Nota:

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

Configurar la conectividad únicamente de salida para las máquinas virtuales de backend

Este escenario se aplica a las máquinas virtuales que necesitan salir de una red virtual sin conectividad entrante. Las reglas de salida de Azure Load Balancer y Azure NAT Gateway son las opciones disponibles.

  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 las conexiones salientes 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 saliente para las máquinas virtuales que usan un equilibrador de carga estándar interno. Consulte ¿Qué es Azure NAT Gateway? para obtener más información.

Proporcionar conectividad saliente para un balanceador de carga estándar interno

Este escenario se aplica a las máquinas virtuales backend que usan un balanceador de carga estándar interno. Estas máquinas virtuales no tienen conectividad saliente hasta que la proporcionas explícitamente a través de direcciones IP públicas a nivel de instancia, Azure NAT Gateway o una configuración de balanceador de carga público solo de salida que asocies con los miembros del pool de backend.

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

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

Habilitar TCP y UDP para NAT saliente

Este escenario se aplica a un Standard Load Balancer público. La NAT automática de salida usa el mismo protocolo de transporte que la regla de equilibrio de carga. Para proporcionar conectividad de salida tanto TCP como UDP, configura una regla de salida que utilice todos los protocolos.

  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. Definir una o varias configuraciones de IP de front-end con direcciones IP públicas o prefijo 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