Descripción general del reenvío de protocolos

La redirección de protocolos usa una regla de reenvío regional para enviar 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 envía paquetes y, al mismo tiempo, conserva la dirección IP de destino de la regla de reenvío. La regla de reenvío hace referencia a un objeto denominado instancia de destino, que, a su vez, hace referencia a una única instancia de VM.

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

  • Proporciona una dirección IP que se puede mover de una instancia a otra. Para ello, puedes cambiar la máquina virtual a la que hace referencia el objeto de instancia de destino o cambiar la instancia de destino a la que hace referencia la regla de reenvío.
  • Reenvía paquetes a diferentes máquinas virtuales en función del 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 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 cuya dirección IP de origen coincida con la dirección IP de la regla de reenvío.

El reenvío de protocolos se diferencia de un balanceador de carga de transferencia directa en los siguientes aspectos:

  • Sin balanceo de carga. Una instancia de destino solo distribuye paquetes a una única máquina virtual.
  • Ninguna comprobación del estado. A diferencia de un servicio backend, una instancia de destino no admite comprobaciones de estado. Debes usar otros medios para asegurarte de que el software necesario se ejecuta y funciona en la VM a la que hace referencia la instancia de destino.

Arquitectura

El reenvío de protocolos usa reglas de reenvío externas regionales 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 protocolos externos. 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 usarlo en situaciones en las que quieras servir datos desde una sola instancia de VM, pero a través de diferentes direcciones IP externas o diferentes protocolos y puertos. Esto resulta especialmente útil para configurar el alojamiento virtual SSL. El reenvío de protocolos externos puede gestionar conexiones de clientes IPv6.

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

    En el siguiente diagrama se muestra un ejemplo de arquitectura de reenvío de protocolo externo. Para saber cómo configurarlo, consulta Configurar la redirección de protocolos externos.

    Arquitectura de reenvío de protocolos externos.
    Arquitectura de reenvío de protocolos externos (haz clic para ampliar).
  • Reenvío de protocolos internos. El reenvío de protocolos interno usa una dirección IPv4 interna regional (del intervalo de direcciones IPv4 principal de una subred) o un intervalo de direcciones IPv6 internas regionales (del intervalo de direcciones IPv6 de una subred).

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

    En el siguiente diagrama se muestra un ejemplo de arquitectura de reenvío de protocolos interno. Para saber cómo configurarlo, consulta Configurar la redirección de protocolos internos.

    Arquitectura de reenvío de protocolos interno.
    Arquitectura de reenvío de protocolos interno (haz clic para ampliar).

    Con el reenvío de protocolo interno, puede cambiar el destino de una regla de reenvío para alternar entre una instancia de destino y un servicio de backend de un balanceador de carga de transferencia. Para obtener más información, consulta Cambiar 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, información sobre el 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 ruta los paquetes que coinciden con la especificación de dirección, protocolo y puerto de la regla de reenvío a la VM a la que hace referencia la instancia de destino.

  • Reenvío de protocolos interno:

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

    • Compatibilidad con direcciones IPv6. La regla de reenvío hace referencia a un intervalo /96 de direcciones IP del intervalo de direcciones IPv6 internas /64 de la subred. La subred debe ser una de las siguientes:

      • Una subred de doble pila (IPv4 e IPv6)
      • Una subred de pila única (solo IPv6)

    El ajuste ipv6-access-type de la subred debe ser INTERNAL.

    Las direcciones IPv6 internas solo están disponibles en el nivel Premium. El intervalo de direcciones IPv6 puede ser una dirección estática reservada o una dirección efímera.

    • Opciones de protocolo TCP(predeterminado) y UDP.

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

  • Reenvío de protocolos externos:

    • Compatibilidad con direcciones IPv4. La regla de reenvío hace referencia a una sola dirección IPv4 externa regional. Las direcciones IPv4 externas regionales proceden de un grupo único para cada Google Cloud región. 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 intervalo /96 de direcciones IP del intervalo de direcciones IPv6 externas de la subred /64. La subred debe ser una de las siguientes:

      • Una subred de doble pila (IPv4 e IPv6)
      • Una subred de pila única (solo IPv6)

    La subred ipv6-access-type debe ser EXTERNAL.

    Las direcciones IPv6 externas solo están disponibles en el nivel Premium. El intervalo de direcciones IPv6 puede ser una dirección estática reservada o una dirección efímera.

    • Opciones de protocolo AH, ESP, ICMP, SCTP, TCP (predeterminado), UDP y L3_DEFAULT :

      • La opción de protocolo de la regla de reenvío L3_DEFAULT reenvía todo el tráfico AH, ESP, GRE, ICMP, ICMPv6, SCTP, TCP y UDP. En el caso de los protocolos TCP, UDP y SCTP, L3_DEFAULT también reenvía todos los puertos.
      • Las reglas de reenvío de IPv6 no admiten la configuración del protocolo ICMP porque el protocolo ICMP solo admite direcciones IPv4. Para servir tráfico ICMPv6 y GRE, define el protocolo de la regla de reenvío como L3_DEFAULT.
    • Opciones de especificación de puerto Un intervalo de puertos contiguo o todos los puertos.

Cuando trabajes con reglas de reenvío, ten en cuenta lo siguiente:

  • En el reenvío de protocolos, una regla de reenvío solo puede hacer referencia a una única instancia de destino.

  • En el caso de los balanceadores de carga de red de paso a través internos y los balanceadores de carga de red de paso a través externos basados en servicios de backend, una regla de reenvío solo puede hacer referencia a un servicio de backend.

  • Puedes cambiar entre el reenvío de protocolos interno y un balanceador de carga de red de paso a través interno sin eliminar y volver a crear la regla de reenvío. Para cambiar entre el reenvío de protocolos externos y un balanceador de carga de red de paso a través externo basado en un servicio de backend, debes eliminar y volver a crear la regla de reenvío. Para obtener más información, consulta el artículo sobre cómo cambiar 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.

  • Si esperas recibir paquetes UDP fragmentados, haz una de las siguientes acciones para asegurarte de que todos los fragmentos (incluidos los que no tienen información de puerto) se envíen a la instancia:

    • Usar una sola regla de reenvío L3_DEFAULT o
    • 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 de 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. Como no se le ha aplicado ninguna política de Cloud NAT a la instancia de destino, se puede usar para el tráfico IPsec que no puede atravesar NAT.

Compatibilidad con varias NICs

La redirección de protocolos mediante instancias de destino admite instancias de máquina virtual con interfaces de red que no sean nic0 (vNICs o interfaces de red dinámicas) mediante la marca --network al crear la instancia de destino:

  • Si omite la marca --network al crear una instancia de destino,Google Cloud enviará paquetes a la interfaz nic0 de la VM a la que se haga referencia.
  • Si incluyes la marca --network al crear una instancia de destino,Google Cloud envía paquetes a la NIC de la VM a la que se hace referencia, que está en la red de VPC especificada por la marca --network. Por lo tanto, la VM a la que se hace referencia debe tener una NIC en la red VPC especificada por la marca --network.
  • El reenvío de protocolos internos y el reenvío de protocolos externos IPv6 tienen el siguiente requisito adicional porque sus reglas de reenvío usan subredes: al configurar una regla de reenvío para que haga referencia a una instancia de destino, la regla de reenvío debe usar una subred de la red de VPC de la instancia de destino. La regla de reenvío y la instancia de destino no pueden usar redes de VPC diferentes, aunque esas redes estén conectadas de alguna forma.

Compatibilidad con IPv6 para instancias de máquina virtual

Si quieres que la implementación de la redirección de protocolos admita el tráfico IPv6, la instancia de VM debe configurarse en una subred de doble pila o en una subred de pila única solo IPv6 que esté en la misma región que la regla de reenvío IPv6.

Ten en cuenta que, aunque se pueden crear instancias solo con IPv6 en subredes de doble pila y solo con IPv6, no se pueden crear máquinas virtuales de doble pila en subredes solo con IPv6.

La instancia de VM se puede crear en una subred con el valor ipv6-access-type definido como EXTERNAL o INTERNAL. La VM hereda el ajuste ipv6-access-type (EXTERNAL o INTERNAL) de la subred.

Para obtener instrucciones, consulta Crear una instancia que use direcciones IPv6. Si quieres usar una VM que ya tengas, puedes actualizarla para que sea de doble pila con el comando gcloud compute instances network-interfaces update. No se pueden actualizar las máquinas virtuales a IPv6 únicamente.

Direcciones IP de los paquetes de solicitud y de respuesta

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

Tabla 1. Direcciones IP de origen y destino de los paquetes de solicitud.
Tipo de reenvío de protocolos Dirección IP de origen Dirección IP de destino
Reenvío de protocolos externos La dirección IP externa asociada a una Google Cloud VM o a una dirección IP externa de un cliente en Internet. La dirección IP de la regla de reenvío.
Reenvío de protocolos interno Dirección IP interna de un cliente. En el caso de los Google Cloud clientes, es la dirección IPv4 o IPv6 interna principal, o bien una dirección IPv4 de un intervalo de IPs de alias de la interfaz de red de una máquina virtual. 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:

  • Escucha la dirección IP de la regla de reenvío o cualquier dirección IP (0.0.0.0 o ::).
  • Si el protocolo de la regla de reenvío admite puertos, escucha (enlace a) un puerto incluido en la regla de reenvío.

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

  • 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. De esta forma, el cliente puede 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 interfaz de red de la VM en la misma red de VPC que la regla de reenvío. En la práctica, la mayoría de los clientes esperan que la respuesta proceda de la misma dirección IP a la que enviaron los paquetes.

En la siguiente tabla se resumen las fuentes y los destinos de los paquetes de retorno:

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

1 AH, ESP, GRE, ICMP e ICMPv6 solo se admiten con el reenvío de protocolos externos.

2 Con el reenvío de protocolos interno, es posible definir el origen del paquete de respuesta como la dirección IPv4 o IPv6 interna principal de la NIC de la VM, o bien como un intervalo 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 un caso avanzado, ya que 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 las 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 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. La dirección IP de la regla de reenvío se usa para iniciar conexiones desde instancias de destino solo en casos especiales, como cuando necesitas que las instancias de VM inicien y reciban conexiones en la misma dirección IP externa.

Los paquetes salientes enviados desde las VMs de la instancia de destino directamente a Internet no tienen restricciones en los protocolos y puertos de tráfico. Aunque un paquete de salida use 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 el protocolo y la especificación de 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 de los balanceadores de carga de red de paso a través externos y reenvío de protocolos externos.

Esta ruta de conectividad a Internet desde una máquina virtual de instancia de destino es el comportamiento predeterminado previsto según las reglas de cortafuegos implícitas de Google Cloud. Sin embargo, si te preocupa la seguridad de dejar esta ruta abierta, puedes usar reglas de cortafuegos de salida específicas 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 comprobaciones del estado no se admiten con instancias de destino. Debes asegurarte de que el software necesario se esté ejecutando y funcione en la VM a la que hace referencia la instancia de destino.
  • El reenvío de protocolos interno para el tráfico IPv6 no admite el protocolo L3_DEFAULT. Usa TCP o UDP.

API y referencia de gcloud

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

En el caso de las instancias de destino, consulta lo siguiente:

Precios

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

Para obtener toda la información sobre los precios, consulta la página Precios.

Cuotas y límites

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

Siguientes pasos