Reglas de reenvío de balanceadores de carga de red de paso a través internos que usan una dirección IP común

Los balanceadores de carga de red con paso a través internos son balanceadores de carga regionales que te permiten ejecutar y escalar tus servicios mediante una dirección IP interna a la que solo pueden acceder tus instancias de máquina virtual (VM) internas.

En esta página se explica cómo usar varias reglas de reenvío con la misma dirección IP. Para obtener información general sobre los balanceadores de carga de red de paso a través internos, consulta la descripción general de los balanceadores de carga de red de paso a través internos.

Con las reglas de reenvío internas, puedes usar una dirección IP interna compartida en hasta diez reglas de reenvío. Para compartir una dirección IP, debes definir el propósito de la dirección IP como SHARED_LOADBALANCER_VIP. Puedes usar TCP o UDP para el protocolo de la regla de reenvío y asignar hasta cinco puertos a la regla de reenvío, o especificar --ports=ALL para usar todos los puertos. Si quiere usar el protocolo L3_DEFAULT, debe usar todos los puertos con la opción --ports=ALL.

Con combinaciones únicas de protocolos y puertos, puedes hacer lo siguiente:

  • Crea 50 puertos TCP únicos con cada regla de reenvío mediante el protocolo TCP.

    Si una regla de reenvío se configura para usar el protocolo TCP y todos los puertos, ninguna otra regla de reenvío que use el protocolo TCP podrá usar la misma dirección IP compartida.

  • Crea 50 puertos UDP únicos con cada regla de reenvío mediante el protocolo UDP.

    Si una regla de reenvío se configura para usar el protocolo UDP y todos los puertos, ninguna otra regla de reenvío que use el protocolo UDP podrá usar la misma dirección IP compartida.

  • Crea 50 combinaciones únicas de puertos TCP y UDP, y haz que cada regla de reenvío use el protocolo TCP o UDP.

  • Hacer referencia a un servicio de backend común (un solo balanceador de carga) o a varios servicios de backend (varios balanceadores de carga que comparten la misma dirección IP).

  • Usa todos los puertos al configurar una regla de reenvío con el protocolo L3_DEFAULT. Solo puede haber una regla de reenvío L3_DEFAULT para una dirección IP, que se puede compartir con otras reglas de reenvío TCP y UDP, si es necesario.

Si tus reglas de reenvío tienen protocolos diferentes, también debes tener dos servicios de backend distintos. Un único balanceador de carga de red interno de tipo pasarela funciona con tráfico TCP o UDP, pero no con ambos, porque tiene un único servicio de backend que usa solo uno de estos protocolos.

Matrices de decisión de reglas de reenvío

Usa las siguientes tablas para diseñar tu implementación.

Un solo balanceador de carga de red de paso a través interno

Un servicio de backend solo admite TCP o UDP, pero no ambos.

Si necesitas varias reglas de desvío, calcula el número de reglas que necesitas con la fórmula ⌈total number of ports / 5⌉, donde ⌈⌉ es la función de techo (el entero más pequeño) y significa redondear hacia arriba al número entero más próximo.

Por ejemplo, supongamos que necesitas 26 puertos TCP en una dirección IP de tu balanceador de carga. Si no quieres crear una sola regla de reenvío con --ports=ALL, debes crear seis reglas de reenvío porque 26 / 5 = 5 with a remainder of 1.

Configuración de frontend prevista Número de reglas de reenvío necesarias Marca --purpose=SHARED_LOADBALANCER_VIP obligatoria para la dirección IP Especificación de puerto de la regla de reenvío
Una dirección IP y tráfico en todos los puertos Una regla de reenvío No --ports=ALL
Una dirección IP y tráfico en puertos específicos

Para cinco puertos o menos:
una regla de reenvío

Para seis o más puertos:
varias reglas de reenvío

Si hay cinco puertos o menos, no.

Para seis o más puertos: sí

--ports debe tener como valores un conjunto de hasta cinco números de puerto contiguos o no contiguos.
Varias direcciones IP, tráfico en todos los puertos Una regla de reenvío por dirección IP No --ports=ALL
Varias direcciones IP y tráfico en puertos específicos Al menos una regla de reenvío por dirección IP

Si se usan cinco o menos puertos por dirección IP: no

Si se usan seis o más puertos por dirección IP: sí

--ports debe tener como valores un conjunto de hasta cinco números de puerto contiguos o no contiguos.

Dos balanceadores de carga de red de paso a través internos

Si tienes dos balanceadores de carga de red de tipo pasarela internos, puedes tener dos servicios de backend, uno para el tráfico TCP y otro para el tráfico UDP.

Si necesitas varias reglas de desvío, calcula el número de reglas que necesitas con la siguiente fórmula, donde ⌈⌉ es la función de techo (el entero más pequeño) y significa redondear hacia arriba al número entero más próximo:

 ⌈total number of TCP ports / 5⌉

 ⌈total number of UDP ports / 5⌉

Por ejemplo, supongamos que necesitas 26 puertos TCP y 12 puertos UDP. Debe crear nueve reglas de reenvío:

  • 26 / 5 = 5 with a remainder of 1, por lo que necesitas seis reglas de reenvío para tus puertos TCP.
  • 12 / 5 = 2 with a remainder of 2, por lo que necesitas tres reglas de reenvío para tus puertos UDP.
Configuración de frontend prevista Número de reglas de reenvío necesarias Marca --purpose=SHARED_LOADBALANCER_VIP obligatoria para la dirección IP Especificación de puerto de la regla de reenvío
Una dirección IP y tráfico en todos los puertos Dos reglas de reenvío: una para TCP y otra para UDP Porque la regla de reenvío TCP y la regla de reenvío UDP deben compartir una única dirección IP: sí --ports=ALL
Una dirección IP y tráfico en puertos específicos

Si hay cinco puertos TCP o menos y cinco puertos UDP o menos: dos reglas de reenvío: una para TCP y otra para UDP

Para seis o más puertos TCP o UDP: varias reglas de reenvío, donde cada regla de reenvío admite un protocolo y cinco o menos puertos

--ports debe tener como valores un conjunto de hasta cinco números de puerto contiguos o no contiguos.
Varias direcciones IP, tráfico en todos los puertos, ya sea TCP o UDP

Al menos dos reglas de reenvío: una para TCP con una dirección IP y otra para UDP con una dirección IP diferente

Tres o más reglas de reenvío si necesitas tres o más direcciones IP

No --ports=ALL
Varias direcciones IP, tráfico en puertos específicos (TCP o UDP)

Al menos dos reglas de reenvío: una para TCP con una dirección IP y otra para UDP con una dirección IP diferente

Más de dos reglas de reenvío si necesitas una de las siguientes opciones:

  • Más de dos direcciones IP
  • Más de cinco puertos para el tráfico TCP en una dirección IP o más de cinco puertos para el tráfico UDP en una dirección IP

Para una dirección IP con cinco puertos TCP o menos y una dirección IP con cinco puertos UDP o menos: no

Seis o más puertos TCP o UDP: sí

--ports debe tener como valores un conjunto de hasta cinco números de puerto contiguos o no contiguos.

Limitaciones

  • Dos o más reglas de reenvío con la misma dirección IP y el mismo protocolo no pueden tener puertos superpuestos. Por ejemplo:
    • Si configuras la regla de reenvío con el protocolo TCP y el puerto 80, no podrás configurar otra regla de reenvío para ese protocolo y puerto. Por ejemplo, no puedes crear otra regla de reenvío para servir los puertos TCP 80, 81 y 90.
    • Cuando configuras la regla de reenvío para TCP y los puertos 80, 8080 y 90, no puedes configurar otra regla de reenvío para TCP que use todos los puertos.
  • Cuando dos o más reglas de reenvío comparten la misma dirección IP mediante la marca --purpose=SHARED_LOADBALANCER_VIP, como máximo solo una de ellas puede tener el protocolo definido como L3_DEFAULT.

Casos prácticos

Se pueden realizar muchos tipos de implementaciones. En los ejemplos siguientes se usa una dirección IP que acepta tráfico en puertos específicos para dos balanceadores de carga.

Ejemplo 1

En este ejemplo se usan diferentes reglas de reenvío con los siguientes parámetros:

  • La misma dirección IP (10.1.1.1)
  • Protocolos diferentes
  • Servicios de backend independientes a los que apunta cada regla de reenvío
  • Protocolos coincidentes: el protocolo de cada servicio de backend coincide con el protocolo de la regla de reenvío correspondiente.
Reglas de reenvío diferentes, misma dirección IP, protocolos y puertos diferentes.
Reglas de reenvío diferentes, misma dirección IP, protocolos y puertos diferentes (haz clic para ampliar).

Ejemplo 2

En este ejemplo se usan diferentes reglas de reenvío con los siguientes parámetros:

  • La misma dirección IPv4 (10.1.1.1)
  • El mismo protocolo
  • Un conjunto diferente de puertos numerados en cada regla de reenvío
Reglas de reenvío diferentes, misma dirección IP, mismo protocolo y más de cinco puertos numerados.
Reglas de reenvío diferentes, misma dirección IP, mismo protocolo y más de cinco puertos numerados (haz clic para ampliar).

Pasos de la configuración

Puede crear varias reglas de reenvío internas que tengan la misma dirección IP si hace lo siguiente:

  1. Crea una dirección IP interna estática (reservada) para que la usen las reglas de reenvío.
  2. Asigna el valor SHARED_LOADBALANCER_VIP a la marca --purpose de la dirección IP interna compartida.

Para ver un ejemplo de configuración, consulta Aceptar tráfico en varios puertos con dos reglas de reenvío.