Descripción general del reenvío de protocolos

El reenvío de protocolos usa una regla de reenvío regional para entregar paquetes de un protocolo específico a una sola instancia de máquina virtual (VM). La regla de reenvío puede tener una dirección IP interna o externa. El reenvío de protocolos entrega paquetes, a la vez que conserva la dirección IP de destino de la regla de reenvío. La regla de reenvío hace referencia a un objeto llamado instancia de destino que, a su vez, hace referencia a una sola instancia de VM.

Puedes usar el reenvío de protocolos para hacer lo siguiente:

  • Proporciona una dirección IP que se pueda mover de una instancia a otra. Para ello, cambia la VM a la que hace referencia el objeto de la instancia de destino o la instancia de destino a la que hace referencia la regla de reenvío.
  • Reenvía paquetes a diferentes VMs según el protocolo y el puerto. Dos reglas de reenvío pueden compartir la misma dirección IP, siempre que su información de puerto y protocolo sea única.
  • (Solo reenvío de protocolo externo) Define direcciones IP externas adicionales para una interfaz de red determinada. A diferencia de una interfaz de red con una configuración de NAT 1:1 para su dirección IPv4 externa, el reenvío de protocolos conserva la dirección IP de destino de la regla de reenvío.
  • Envía paquetes cuyas direcciones IP de origen coincidan con la dirección IP de la regla de reenvío.

El reenvío de protocolos se diferencia de un balanceador de cargas de paso de las siguientes maneras:

  • Sin balanceo de cargas: Una instancia de destino solo distribuye paquetes a una sola VM.
  • Sin verificación de estado: A diferencia de un servicio de backend, una instancia de destino no admite una verificación de estado. Debes usar otros medios para asegurarte de que el software necesario esté en ejecución y en funcionamiento en la VM a la que hace referencia la instancia de destino.

Arquitectura

El reenvío de protocolos usa reglas de reenvío regionales externas o internas regionales y un objeto de instancia de destino zonal. La instancia de destino y la VM a la que hace referencia deben estar ubicadas en una zona de la región de la regla de reenvío.

  • Reenvío de protocolo externo: Puedes configurar varias reglas de reenvío para que apunten a una sola instancia de destino, lo que te permite usar varias direcciones IP externas con una instancia de VM. Puedes hacer esto en situaciones en las que desees entregar datos de una sola instancia de VM, pero a través de diferentes direcciones IP externas o diferentes protocolos y puertos. Esta opción resulta muy útil para configurar hosting virtual SSL. El reenvío de protocolos externos puede manejar conexiones de clientes IPv6.

    El reenvío de protocolos externos es compatible con los siguientes protocolos: AH, ESP, GRE, ICMP, ICMPv6, SCTP, TCP y UDP

    En el siguiente diagrama, se muestra un ejemplo de la arquitectura de reenvío de protocolos externos. Para obtener información sobre cómo realizar la configuración, consulta Configura el reenvío de protocolos externos.

    Arquitectura de reenvío de protocolos externos.
    Arquitectura de reenvío de protocolo externo
  • Reenvío de protocolo interno: El reenvío de protocolos internos usa una dirección IPv4 interna regional (del rango de direcciones IPv4 principal de una subred) o una dirección IPv6 interna regional (del rango de direcciones IPv6 principal de una subred).

    El reenvío de protocolos internos admite los protocolos TCP y UDP.

    En el siguiente diagrama, se muestra un ejemplo de la arquitectura de reenvío de protocolo interno. Para obtener información sobre cómo realizar esta configuración, consulta Configura el reenvío de protocolos internos.

    Arquitectura de reenvío de protocolos internos
    Arquitectura de reenvío de protocolos internos

    Con el reenvío de protocolos interno, puedes cambiar el destino de una regla de reenvío para cambiar entre una instancia de destino y un servicio de backend de un balanceador de cargas de paso. Para obtener más detalles, consulta Cambia entre una instancia de destino y un servicio de backend.

Reglas de reenvío

Cada regla de reenvío coincide con una dirección IP, un protocolo y, opcionalmente, la información del puerto (si se especifica y si el protocolo admite puertos). Cuando una regla de reenvío hace referencia a una instancia de destino, Google Cloud enruta los paquetes que coinciden con la dirección, el protocolo y la especificación de puertos de la regla de reenvío a la VM a la que hace referencia la instancia de destino.

  • Reenvío de protocolo interno

    • Compatibilidad con direcciones IPv4: Una dirección IPv4 interna regional (reservada estática o efímera) del rango IPv4 principal de una subred

    • Compatibilidad con direcciones IPv6: La regla de reenvío hace referencia a un rango /96 de direcciones IP del rango de direcciones IPv6 interno /64 de la subred. La subred debe ser de pila doble con ipv6-access-type configurado como INTERNAL. Las direcciones IPv6 internas solo están disponibles en el nivel Premium. La reserva de una dirección IPv6 externa regional solo es compatible con las instancias, por lo que debes usar una dirección IPv6 efímera para la regla de reenvío.

    • Opciones de protocolo:, TCP (configuración predeterminada) y UDP.

    • Opciones de especificación de puertos: Una lista de hasta cinco puertos contiguos o no contiguos, o todos los puertos.

  • Reenvío de protocolo externo:

    • Compatibilidad con direcciones IPv4: La regla de reenvío hace referencia a una sola dirección IPv4 externa regional. Las direcciones IPv4 externas regionales provienen de un grupo único para cada región de Google Cloud. La dirección IP puede ser una dirección estática reservada o una dirección efímera.

    • Compatibilidad con direcciones IPv6: La regla de reenvío hace referencia a un rango /96 de direcciones IP del rango de direcciones IPv6 externo /64 de la subred. La subred debe ser de pila doble con ipv6-access-type configurado como EXTERNAL. Las direcciones IPv6 externas solo están disponibles en el nivel Premium. La dirección IPv6 puede ser una dirección estática reservada o una dirección efímera.

    • Opciones de protocolo: AH, ESP, ICMP, SCTP, TCP (configuración predeterminada), UDP y L3_DEFAULT:

      • La configuración del protocolo de la regla de reenvío L3_DEFAULT se puede usar para entregar todo el tráfico de protocolo IP.
      • Las reglas de reenvío de IPv6 no son compatibles con la configuración del protocolo ICMP porque el protocolo ICMP solo admite direcciones IPv4. Para entregar tráfico ICMPv6 y GRE, configura el protocolo de reglas de reenvío en L3_DEFAULT.
    • Opciones de especificación de puertos: un rango contiguo de puertos o todos los puertos

Ten en cuenta lo siguiente cuando trabajes con reglas de reenvío:

  • Para el reenvío de protocolos, una regla de reenvío solo puede hacer referencia a una sola instancia de destino.

  • Para los balanceadores de cargas de red de transferencia internos y los balanceadores de cargas de red de transferencia externos basados en servicios de backend, una regla de reenvío solo puede hacer referencia a un solo servicio de backend.

  • Puedes cambiar entre el reenvío de protocolos internos y el balanceador de cargas de red de transferencia interno sin borrar ni volver a crear la regla de reenvío. Para cambiar entre el reenvío de protocolos externos y el balanceador de cargas de red de transferencia externo basado en servicios de backend, debes borrar y volver a crear la regla de reenvío. Para obtener más detalles, consulta Cambia entre una instancia de destino y un servicio de backend.

  • La información del puerto solo se puede especificar para los protocolos que tienen un concepto de puerto: TCP, UDP o SCTP.

  • La opción del protocolo L3_DEFAULT reenvía todos los protocolos AH, ESP, GRE, ICMP, ICMPv6, SCTP, TCP y UDP. Para los protocolos TCP, UDP y SCTP, L3_DEFAULT reenvía todos los puertos.

  • Si esperas paquetes UDP fragmentados, realiza una de las siguientes acciones para asegurarte de que todos los fragmentos (incluidos aquellos sin información de puerto) se entreguen a la instancia:

    • Usa una sola regla de reenvío L3_DEFAULT.
    • Usa una sola regla de reenvío UDP configurada para reenviar todos los puertos.

Instancias de destino

Una instancia de destino es un recurso zonal que hace referencia a una instancia de VM en la misma zona. La regla de reenvío que hace referencia a la instancia de destino debe estar en la región que contiene la zona de la instancia de destino. Debido a que una instancia de destino no tiene una política de Cloud NAT aplicada, se puede usar para el tráfico IPsec que no puede atravesar NAT.

Compatibilidad con múltiples NIC

Una instancia de destino admite la especificación de la interfaz de red (NIC) de la instancia de VM a la que hace referencia. Usa la marca --network para especificar el nombre de una red de VPC en la que la VM a la que se hace referencia tiene una NIC:

  • Si omites la marca --network, la instancia de destino entrega paquetes a la interfaz nic0 de la VM a la que hace referencia.
  • Si usas la marca --network, la VM a la que hace referencia la instancia de destino debe tener una NIC en esa red de VPC.
  • Para el reenvío de protocolos internos, la subred que usa la regla de reenvío debe estar ubicada en la red de VPC que usa la interfaz de red de la instancia de destino.

Compatibilidad con IPv6

Si deseas que la implementación del reenvío de protocolos externos admita el tráfico IPv6, la instancia de la VM se debe configurar en una subred de pila doble que se encuentre en la misma región de la regla de reenvío de IPv6. Puedes usar una subred con ipv6-access-type configurada como EXTERNAL o INTERNAL para la instancia de la VM. Para usar una subred con ipv6-access-type configurado como INTERNAL, debes usar una subred de pila doble independiente con ipv6-access-type configurado como EXTERNAL para la regla de reenvío externa. Para obtener instrucciones, consulta Agrega una subred de pila doble.

Además, la instancia de VM debe ser una instancia de pila doble. Establece stack-type de la VM en IPv4_IPv6. La VM hereda la configuración ipv6-access-type (ya sea EXTERNAL o INTERNAL) de la subred. Para obtener instrucciones, consulta Crea una VM y habilita IPv6. Si quieres usar una VM existente, actualízala para que sea de pila doble mediante el comando gcloud compute instances network-interfaces update.

Direcciones IP para paquetes de solicitud y devolución

Cuando una instancia de destino recibe un paquete de un cliente, las direcciones IP de origen y destino del paquete de solicitud se muestran en esta tabla.

Tabla 1. Direcciones IP de origen y destino para los paquetes de solicitud
Tipo de reenvío de protocolos Dirección IP de origen Dirección IP de destino
Reenvío de protocolo externo Es la dirección IP externa asociada a una VM de Google Cloud o una dirección IP externa de un cliente en Internet. La dirección IP de la regla de reenvío.
Reenvío de protocolo interno La dirección IP interna de un cliente. Para los clientes de Google Cloud, la dirección IPv4 o IPv6 interna principal, o una dirección IPv4 de un rango de IP de alias de la interfaz de red de una VM. Es la dirección IP de la regla de reenvío.

El software que se ejecuta en las VMs de la instancia de destino debe configurarse para hacer lo siguiente:

  • Escuchar (vincular a) a la dirección IP de la regla de reenvío o a cualquier dirección IP (0.0.0.0 o ::)
  • Si el protocolo de la regla de reenvío admite puertos, escuchar en un puerto que esté incluido en la regla de reenvío (vinculación)

Los paquetes de retorno se envían directamente desde la instancia de destino al cliente. Las direcciones IP de origen y destino del paquete de respuesta dependen del protocolo:

  • El TCP está orientado a la conexión. Las instancias de destino deben responder con paquetes que tengan direcciones IP de origen que coincidan con la dirección IP de la regla de reenvío. Esto garantiza que el cliente pueda asociar los paquetes de respuesta con la conexión TCP adecuada.
  • AH, ESP, GRE, ICMP, ICMPv6 y UDP no tienen conexión. Las instancias de destino pueden enviar paquetes de respuesta que tengan direcciones IP de origen que coincidan con la dirección IP de la regla de reenvío o con cualquier dirección IP asignada a la NIC de la VM en la misma red de VPC que la regla de reenvío. En términos prácticos, la mayoría de los clientes esperan que la respuesta provenga de la misma dirección IP a la que enviaron paquetes.

En la siguiente tabla, se muestra un resumen de los orígenes y destinos de los paquetes de retorno:

Tabla 2. Direcciones IP de origen y destino para paquetes de retorno
Tipo de tráfico Dirección IP de origen Dirección IP de destino
TCP Es la dirección IP de la regla de reenvío. Es la dirección IP de origen del paquete de solicitud.
AH, ESP, GRE, ICMP, ICMPv6 y UDP* Para la mayoría de los casos de uso, la dirección IP de la regla de reenvío. Es la dirección IP de origen del paquete de solicitud.

* AH, ESP, GRE, ICMP y ICMPv6 solo son compatibles con el reenvío de protocolos externos.

Con el reenvío de protocolos internos, es posible configurar el origen del paquete de respuesta a la dirección IPv4 o IPv6 interna principal de la NIC de la VM o a un rango de direcciones IP de alias. Si la VM tiene habilitado el reenvío de IP, también se pueden usar fuentes de direcciones IP arbitrarias. No usar la dirección IP de la regla de reenvío como origen es una situación avanzada porque el cliente recibe un paquete de respuesta de una dirección IP interna que no coincide con la dirección IP a la que envió un paquete de solicitud.

Conectividad a Internet saliente desde instancias de destino

Las instancias de VM a las que hacen referencia las instancias de destino pueden iniciar conexiones a Internet mediante la dirección IP de la regla de reenvío asociada como la dirección IP de origen de la conexión saliente.

Por lo general, una instancia de VM siempre usa su propia dirección IP externa o Cloud NAT para iniciar conexiones. Usas la dirección IP de la regla de reenvío para iniciar conexiones desde instancias de destino solo en situaciones especiales, como cuando necesitas que las instancias de VM originen y reciban conexiones en la misma dirección IP externa.

Los paquetes salientes que se envían desde las VMs de la instancia de destino directamente a Internet no tienen restricciones en los protocolos y puertos de tráfico. Incluso si un paquete saliente usa la dirección IP de la regla de reenvío como origen, el protocolo y el puerto de origen del paquete no tienen que coincidir con la especificación del protocolo y el puerto de la regla de reenvío. Sin embargo, los paquetes de respuesta entrantes deben coincidir con la dirección IP, el protocolo y el puerto de destino de la regla de reenvío. Para obtener más información, consulta Rutas para balanceadores de cargas de red de transferencia externos y reenvío de protocolos externos.

Esta ruta de acceso a la conectividad a Internet desde una VM de instancia objetivo es el comportamiento previsto predeterminado según las reglas de firewall implícitas de Google Cloud. Sin embargo, si tienes preocupaciones de seguridad sobre dejar esta ruta abierta, puedes usar reglas de firewall de salida segmentadas para bloquear el tráfico saliente no solicitado a Internet.

Limitaciones

  • Una regla de reenvío no puede apuntar a más de una instancia de destino.
  • Las verificaciones de estado no son compatibles con las instancias de destino. Debes asegurarte de que el software necesario esté en ejecución y en funcionamiento en la VM a la que hace referencia la instancia de destino.
  • El reenvío de protocolos internos para el tráfico IPv6 tiene las siguientes limitaciones:
    • No se admite el protocolo L3_DEFAULT. Usa TCP o UDP.
    • No se admiten varias NIC.

Referencia de API y gcloud

Para las reglas de reenvío, consulta lo siguiente:

Para las instancias de destino, consulta lo siguiente:

Precios

El reenvío de protocolos se cobra con la misma tarifa que el balanceo de cargas. Se aplican cargos por la regla de reenvío y un cargo por los datos entrantes que procesa la instancia de destino.

Para obtener información sobre precios, consulta Precios.

Cuotas y límites

Para conocer las cuotas de las reglas de reenvío de protocolos, consulta Cuotas y límites: reglas de reenvío.

¿Qué sigue?