Configura un balanceador de cargas de red del proxy interno regional con conectividad híbrida

El balanceador de cargas de red del proxy interno regional es un balanceador de cargas regional de capa 4 basado en proxy que te permite ejecutar y escalar el tráfico de servicio TCP detrás de una dirección IP interna a la que solo pueden acceder los clientes de la misma red de nube privada virtual (VPC) o los clientes conectados a tu red de VPC. Si deseas que el servicio esté disponible para los clientes en otras redes de VPC, puedes usar Private Service Connect para publicar el servicio.

En esta página, se describe cómo configurar un balanceador de cargas de red del proxy interno regional para balancear las cargas del tráfico a los backends locales o en otros entornos de nube conectados mediante la conectividad híbrida. La configuración de la conectividad híbrida para conectar tus redes a Google Cloud no está dentro del alcance de esta página.

Descripción general

En este ejemplo, usaremos el balanceador de cargas para distribuir el tráfico de TCP en las VMs de backend ubicadas en instalaciones locales o en otros entornos de nube.

En este ejemplo, debes configurar la siguiente implementación:

Configuración de ejemplo del balanceador de cargas de red del proxy interno regional con backends de NEG híbridos.
Configuración de ejemplo del balanceador de cargas de red de proxy interno regional con backends de NEG híbridos (haz clic para ampliar).

El balanceador de cargas de red interno del proxy regional es un balanceador de cargas regional. Todos los componentes del balanceador de cargas (grupos de instancias de backend, servicio de backend, proxy de destino y regla de reenvío) deben estar en la misma región.

Permisos

Para configurar el balanceo de cargas híbrido, debes tener los siguientes permisos:

  • En Google Cloud

  • En tu entorno local o en otro entorno de nube que no sea de Google Cloud

    • Permisos para configurar los extremos de red que permiten que se pueda acceder a los servicios en tu entorno local o en otros entornos de nube desde Google Cloud a través de una combinación IP:Port. Para obtener más información, comunícate con el administrador de red de tu entorno.
    • Permisos para crear reglas de firewall en tu entorno local o en otros entornos de nube a fin de permitir que los sondeos de verificación de estado de Google lleguen a los extremos.

Además, a fin de completar las instrucciones de esta página, debes crear un NEG de conectividad híbrida, un balanceador de cargas y NEG zonales (y sus extremos) que funcionen como backends basados en Google Cloud para el balanceador de cargas.

Debes ser Propietario o Editor de un proyecto o tener los siguientes roles de IAM de Compute Engine.

Tarea Función requerida
Crear redes, subredes y componentes del balanceador de cargas Administrador de red de Compute (roles/compute.networkAdmin)
Agrega y quita reglas de firewall Administrador de seguridad de Compute (roles/compute.securityAdmin)
Crea instancias Administrador de instancias de Compute (roles/compute.instanceAdmin)

Establece una conectividad híbrida

Tu Google Cloud y otros entornos de nube deben estar conectados a través de la conectividad híbrida, mediante adjuntos de VLAN de Cloud Interconnect o túneles de Cloud VPN con Cloud Router. Te recomendamos usar una conexión de alta disponibilidad.

Un Cloud Router habilitado con enrutamiento dinámico global aprende sobre el extremo específico a través del protocolo de puerta de enlace fronteriza (BGP) y lo programa en tu red de VPC de Google Cloud. No se admite el enrutamiento dinámico regional. Tampoco se admiten las rutas estáticas.

La red de VPC que usas para configurar Cloud Interconnect o Cloud VPN es la misma red que usas a fin de configurar la implementación del balanceo de cargas híbrido. Asegúrate de que los rangos de CIDR de la subred de la red de VPC no entren en conflicto con los rangos de CIDR remotos. Cuando las direcciones IP se superponen, las rutas de subred se priorizan por sobre la conectividad remota.

Para obtener instrucciones, consulta la siguiente documentación:

Configura tu entorno fuera de Google Cloud

Realiza los pasos siguientes a fin de configurar tu entorno local o algún otro entorno de nube para el balanceo de cargas híbrido:

  • Configura los extremos de red para exponer los servicios locales a Google Cloud (IP:Port).
  • Configura reglas de firewall en tu entorno local o en otro entorno de nube.
  • Configura Cloud Router para anunciar ciertas rutas obligatorias a tu entorno privado.

Configura extremos de red

Luego de configurar la conectividad híbrida, configura uno o más extremos de red en tus entornos de nube locales o en otros a los que se pueda acceder mediante Cloud Interconnect o Cloud VPN mediante una combinación IP:port. Esta combinación IP:port se configura como uno o más extremos para el NEG de conectividad híbrida que se crea más adelante en Google Cloud en este proceso.

Si hay varias rutas de acceso al extremo de IP, el enrutamiento seguirá el comportamiento descrito en la descripción general de Cloud Router.

Configura reglas de firewall

Las siguientes reglas de firewall se deben crear en tu entorno local o en otro entorno de nube:

  • Crea una regla de firewall de permiso de entrada en entornos locales o en otros entornos de nube para permitir que el tráfico de la subred de solo proxy de la región llegue a los extremos.
  • No se requiere incluir en la lista de entidades permitidas los rangos de sondeo de verificación de estado de Google para los NEG híbridos. Sin embargo, si usas una combinación de NEG híbridos y zonales en un solo servicio de backend, debes incluir en la lista de anunciantes permitidos los rangos de sondeo de verificación de estado de Google para los NEG zonales.

Configura Cloud Router para Anunciar los siguientes rangos de IP personalizados a tu entorno local o a otro entorno de nube:

  • El rango de la subred solo de proxy de la región.

Configura tu entorno de Google Cloud

Para los siguientes pasos, asegúrate de usar la misma red de VPC (llamada NETWORK en este procedimiento) que se usó a fin de configurar la conectividad híbrida entre los entornos. Puedes seleccionar cualquier subred de esta red para reservar la dirección IP del balanceador de cargas y crear el balanceador de cargas. En este procedimiento, se hace referencia a esta subred como LB_SUBNET.

Además, asegúrate de que la región que se usa (llamada REGION en este procedimiento) sea la misma que se usó para crear el túnel VPN de Cloud o el adjunto de VLAN de Cloud Interconnect.

Configura la subred de solo proxy

La subred de solo proxy proporciona un conjunto de direcciones IP que Google usa para ejecutar proxies de Envoy en tu nombre. Los proxies finalizan las conexiones del cliente y crean conexiones nuevas a los backends.

Todos los balanceadores de cargas regionales basados en Envoy usan la subred de solo proxy en la región REGION de la red de VPC NETWORK.

Solo puede haber una subred de solo proxy activa por región y por red de VPC. Puedes omitir este paso si ya existe una subred de solo proxy en esta región.

Console

Si usas la consola de Google Cloud, puedes esperar y crear la subred de solo proxy más adelante en la página Balanceo de cargas.

Si quieres crear la subred de solo proxy ahora, sigue estos pasos:

  1. En la consola de Google Cloud, ve a la página Redes de VPC.

    Ir a las redes de VPC

  2. Ve a la red que se usó para configurar la conectividad híbrida entre los entornos.

  3. Haz clic en Agregar subred.

  4. Ingresa un Nombre: PROXY_ONLY_SUBNET_NAME

  5. Selecciona una región: REGION

  6. Configura Propósito como Proxy administrado regional.

  7. Ingresa un Rango de direcciones IP: PROXY_ONLY_SUBNET_RANGE.

  8. Haga clic en Agregar.

gcloud

Crea la subred de solo proxy con el comando gcloud compute networks subnets create.

gcloud compute networks subnets create PROXY_ONLY_SUBNET_NAME \
    --purpose=REGIONAL_MANAGED_PROXY \
    --role=ACTIVE \
    --region=REGION \
    --network=NETWORK \
    --range=PROXY_ONLY_SUBNET_RANGE

Reserva la dirección IP del balanceador de cargas

De forma predeterminada, se usa una dirección IP para cada regla de reenvío. Puedes reservar una dirección IPv4 compartida, que te permite usar la misma dirección IPv4 con varias reglas de reenvío. Sin embargo, si deseas usar Private Service Connect para publicar el balanceador de cargas, no uses una dirección IPv4 compartida para la regla de reenvío.

Si deseas reservar una dirección IPv4 interna estática para tu balanceador de cargas, consulta Reserva una dirección IPv4 o IPv6 interna estática nueva.

Configura el NEG de conectividad híbrida

Cuando crees el NEG, usa un ZONE que minimice la distancia geográfica entre Google Cloud y tu entorno local o de otra nube. Por ejemplo, si alojas un servicio en un entorno local en Fráncfort, Alemania, puedes especificar la zona europe-west3-a de Google Cloud cuando crees el NEG.

Además, el ZONE que se usa a fin de crear el NEG debe estar en la misma región en la que se configuraron el túnel de Cloud VPN o el adjunto de VLAN de Cloud Interconnect para la conectividad híbrida.

Para conocer las regiones y zonas disponibles, consulta la documentación de Compute Engine: regiones y zonas disponibles.

Consola

Sigue estos pasos para crear un NEG de conectividad híbrida:

  1. En la consola de Google Cloud, ve a la página Grupos de extremos de red.

    Ir a Grupos de extremos de red

  2. Haz clic en Crear un grupo de extremos de red.

  3. Ingresa un Nombre para el NEG híbrido. En este procedimiento, se lo llamará HYBRID_NEG_NAME.

  4. Selecciona el Tipo de grupo de extremos de red: Grupo de extremos de red de conectividad híbrida (zonal).

  5. Selecciona la Red: NETWORK

  6. Selecciona la Subred: LB_SUBNET

  7. Selecciona la Zona: HYBRID_NEG_ZONE

  8. Ingresa el Puerto predeterminado.

  9. Haga clic en Crear.

Agrega extremos al NEG de conectividad híbrida:

  1. En la consola de Google Cloud, ve a la página Grupos de extremos de red.

    Ir a Grupos de extremos de red

  2. Haz clic en el Nombre del grupo de extremos de red que se creó en el paso anterior (HYBRID_NEG_NAME). Verás la página Detalles del grupo de extremos de red.

  3. En la sección Extremos de red de este grupo, haz clic en Agregar extremo de red. Verás la página Agregar extremo de red.

  4. Ingresa la dirección IP del extremo de red nuevo.

  5. Selecciona el tipo de puerto.

    1. Si seleccionas Predeterminado, el extremo usará el puerto predeterminado para todos los extremos del grupo de extremos de red.
    2. Si seleccionas Personalizado, puedes ingresar un Número de puerto diferente para que lo use el extremo.
  6. Para agregar más extremos, haz clic en Agregar extremo de red y repite los pasos anteriores.

  7. Después de agregar todos los extremos que no son de Google Cloud, haz clic en Crear.

gcloud

  1. Crea un NEG de conectividad híbrida mediante el comando gcloud compute network-endpoint-groups create.

    gcloud compute network-endpoint-groups create HYBRID_NEG_NAME \
       --network-endpoint-type=NON_GCP_PRIVATE_IP_PORT \
       --zone=HYBRID_NEG_ZONE \
       --network=NETWORK
    
  2. Agrega el extremo de IP:Port local al NEG híbrido:

    gcloud compute network-endpoint-groups update HYBRID_NEG_NAME \
        --zone=HYBRID_NEG_ZONE \
        --add-endpoint="ip=ENDPOINT_IP_ADDRESS,port=ENDPOINT_PORT"
    

Puedes usar este comando para agregar los extremos de red que configuraste antes de forma local o en tu entorno de nube. Repite --add-endpoint tantas veces como sea necesario.

Puedes repetir estos pasos para crear varios NEG híbridos si es necesario.

Configura el balanceador de cargas

Console

Inicia la configuración

  1. En la consola de Google Cloud, ve a la página Balanceo de cargas.

    Ir a Balanceo de cargas

  2. Haz clic en Crear balanceador de cargas.
  3. En Tipo de balanceador de cargas, selecciona Balanceador de cargas de red (TCP/UDP/SSL) y haz clic en Siguiente.
  4. En Proxy o transferencia, selecciona Balanceador de cargas de proxy y haz clic en Siguiente.
  5. En Orientado al público o interno, selecciona Interno y haz clic en Siguiente.
  6. En Implementación entre regiones o de una sola región, selecciona Ideal para cargas de trabajo regionales y haz clic en Siguiente.
  7. Haz clic en Configurar.

Configuración básica

  1. Ingresa un Nombre para el balanceador de cargas.
  2. Selecciona la Región: REGION.
  3. Selecciona la Red: NETWORK.

Reserva una subred de solo proxy

Sigue estos pasos para reservar una subred de solo proxy:

  1. Haz clic en Reservar subred.
  2. Ingresa el Nombre: PROXY_ONLY_SUBNET_NAME.
  3. Ingresa un Rango de direcciones IP: PROXY_ONLY_SUBNET_RANGE.
  4. Haga clic en Agregar.

Configuración de backend

  1. Haga clic en Configuración de backend.
  2. En Tipo de backend, selecciona Grupo de extremos de red de conectividad híbrida (Zonal).
  3. En Protocol, selecciona TCP.
  4. En Backend nuevo, selecciona el NEG híbrido que se creó antes: HYBRID_NEG_NAME. O bien, puedes hacer clic en Crear un grupo de extremos de red para crear el NEG híbrido ahora. Para obtener orientación sobre cómo configurar el NEG, consulta Configura el NEG híbrido.
  5. Conserva los valores predeterminados restantes y haz clic en Listo.
  6. Configura la verificación de estado:
    1. En Verificación de estado, selecciona Crear una verificación de estado.
    2. Ingresa un Nombre para la verificación de estado.
    3. En Protocol, selecciona TCP.
    4. En Puerto, ingresa 80.
  7. Conserva los valores predeterminados restantes y haz clic en Guardar.
  8. En la consola de Google Cloud, verifica que haya una marca de verificación junto a Configuración de backend. De lo contrario, verifica que hayas completado todos los pasos.

Configuración de frontend

  1. Haga clic en Configuración de frontend.
  2. Ingresa un nombre para la regla de reenvío.
  3. En Subred, selecciona LB_SUBNET.
  4. En Dirección IP, selecciona LB_IP_ADDRESS.
  5. En Número de puerto, ingresa cualquier número de puerto del 1 al 65535. La regla de reenvío solo reenvía los paquetes con un puerto de destino coincidente.
  6. Habilita el Protocolo de proxy solo si funciona con el servicio que se ejecuta en tu extremo local o en otros extremos de la nube. Por ejemplo, el protocolo PROXY no funciona con el software del servidor HTTP de Apache. Para obtener más información, consulta Protocolo de proxy.
  7. Haz clic en Listo.
  8. En la consola de Google Cloud, verifica que haya una marca de verificación junto a Configuración de frontend. De lo contrario, verifica que hayas completado todos los pasos anteriores.

Revisa y finaliza

  1. Haz clic en Revisar y finalizar.
  2. Vuelve a verificar la configuración.
  3. Haga clic en Crear.

gcloud

  1. Crea una verificación de estado regional para los backends.

    gcloud compute health-checks create tcp TCP_HEALTH_CHECK_NAME \
        --region=REGION \
        --use-serving-port
    

    Los sondeos de verificación de estado para los backends de NEG híbridos se originan en los proxies de Envoy en la subred de solo proxy.

  2. Crea un servicio de backend.

    gcloud compute backend-services create BACKEND_SERVICE_NAME \
       --load-balancing-scheme=INTERNAL_MANAGED \
       --protocol=TCP \
       --region=REGION \
       --health-checks=TCP_HEALTH_CHECK_NAME \
       --health-checks-region=REGION
    
  3. Agrega el backend de NEG híbrido al servicio de backend.

    gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
       --network-endpoint-group=HYBRID_NEG_NAME \
       --network-endpoint-group-zone=HYBRID_NEG_ZONE \
       --region=REGION \
       --balancing-mode=CONNECTION \
       --max-connections=MAX_CONNECTIONS
    

    Para MAX_CONNECTIONS, ingresa la cantidad máxima de conexiones simultáneas que el backend debe manejar.

  4. Crea el proxy TCP de destino.

    gcloud compute target-tcp-proxies create TARGET_TCP_PROXY_NAME \
       --backend-service=BACKEND_SERVICE_NAME \
       --region=REGION
    
  5. Crea la regla de reenvío.

    Crea la regla de reenvío con el comando gcloud compute forwarding-rules create.

    Reemplaza FWD_RULE_PORT por un solo número de puerto, de 1 a 65535. La regla de reenvío solo reenvía los paquetes con un puerto de destino coincidente.

    gcloud compute forwarding-rules create FORWARDING_RULE \
       --load-balancing-scheme=INTERNAL_MANAGED \
       --network=NETWORK \
       --subnet=LB_SUBNET \
       --address=LB_IP_ADDRESS \
       --ports=FWD_RULE_PORT \
       --region=REGION \
       --target-tcp-proxy=TARGET_TCP_PROXY_NAME \
       --target-tcp-proxy-region=REGION
    

Prueba el balanceador de cargas

Para probar el balanceador de cargas, crea una VM de cliente en la misma región que el balanceador de cargas. Luego, envía tráfico del cliente al balanceador de cargas.

Crea una VM de cliente

Crea una VM de cliente (client-vm) en la misma región que el balanceador de cargas.

Consola

  1. En la consola de Google Cloud, ve a la página Instancias de VM.

    Ir a Instancias de VM

  2. Haz clic en Crear instancia.

  3. Establece el Nombre como client-vm.

  4. Establece la Zona en CLIENT_VM_ZONE.

  5. Haz clic en Opciones avanzadas.

  6. Haz clic en Herramientas de redes y configura los siguientes campos:

    1. En Etiquetas de red, ingresa allow-ssh.
    2. En Interfaces de red, selecciona lo siguiente:
      • Red: NETWORK
      • Subred: LB_SUBNET
  7. Haz clic en Crear.

gcloud

La VM de cliente debe estar en la misma red de VPC y región que el balanceador de cargas. No es necesario que esté en la misma subred o zona. El cliente usa la misma subred que las VM de backend.

gcloud compute instances create client-vm \
    --zone=CLIENT_VM_ZONE \
    --image-family=debian-10 \
    --image-project=debian-cloud \
    --tags=allow-ssh \
    --subnet=LB_SUBNET

Permite el tráfico SSH a la VM de prueba

En este ejemplo, se crea la regla de firewall:

  • fw-allow-ssh: una regla de entrada que permita la conectividad SSH entrante en el puerto TCP 22 desde cualquier dirección. Puedes elegir un rango de IP de origen más restrictivo para esta regla; por ejemplo, puedes especificar los rangos de IP de los sistemas desde los que planeas iniciar sesiones SSH. En este ejemplo, se usa la etiqueta de destino allow-ssh para identificar la VM de cliente de prueba a la que se debe aplicar.

Consola

  1. En la consola de Google Cloud, ve a la página Políticas de firewall. Ir a Políticas de firewall
  2. Haz clic en Crear regla de firewall para crear la regla que permite conexiones SSH entrantes:
    1. Nombre: fw-allow-ssh
    2. Red: NETWORK
    3. Prioridad: 1000
    4. Dirección del tráfico: entrada
    5. Acción si hay coincidencia: permitir
    6. Objetivos: etiquetas de destino especificadas
    7. Etiquetas de destino: allow-ssh
    8. Filtro de fuente: Rangos de IPv4
    9. Rangos de IPv4 de origen: 0.0.0.0/0
    10. Protocolos y puertos: Elige Protocolos y puertos especificados y, luego, ingresa tcp:22.
    11. Haga clic en Crear.

gcloud

  1. Crea la regla de firewall fw-allow-ssh para permitir la conectividad SSH a las VM con la etiqueta de red allow-ssh.

    gcloud compute firewall-rules create fw-allow-ssh \
        --network=NETWORK \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-ssh \
        --rules=tcp:22
    

Envía tráfico al balanceador de cargas

Ahora que ya configuraste el balanceador de cargas, puedes probar el envío de tráfico a la dirección IP del balanceador de cargas.

  1. Conéctate mediante SSH a la instancia de cliente.

    gcloud compute ssh client-vm \
      --zone=CLIENT_VM_ZONE
    
  2. Verifica que el balanceador de cargas entregue los nombres de host del backend como se esperaba.

    1. Usa el comando compute addresses describe para ver la dirección IP del balanceador de cargas:

      gcloud compute addresses describe LB_IP_ADDRESS \
        --region=REGION
      

      Anota la dirección IP.

    2. Envía tráfico al balanceador de cargas en la dirección IP y el puerto especificados cuando crees la regla de reenvío del balanceador de cargas. Las pruebas para ver si los backends de NEG híbridos responden a las solicitudes dependen del servicio que se ejecuta en los extremos que no son de Google Cloud.

Opcional: Publica el servicio con Private Service Connect

Un balanceador de cargas de red del proxy interno regional con conectividad híbrida te permite hacer que un servicio alojado en entornos locales o en otros entornos de nube esté disponible para los clientes en tu red de VPC.

Si quieres que el servicio híbrido esté disponible en otras redes de VPC, puedes usar Private Service Connect para publicar el servicio. Si colocas un adjunto de servicio frente al balanceador de cargas de red del proxy interno regional, puedes permitir que los clientes de otras redes de VPC accedan a los servicios híbridos que se ejecutan en entornos locales o en otros entornos de nube.

Usa Private Service Connect para publicar un servicio híbrido.
Usa Private Service Connect para publicar un servicio híbrido (haz clic para agrandar).

¿Qué sigue?