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.
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.
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 conipv6-access-type
configurado comoINTERNAL
. 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) yUDP
.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 conipv6-access-type
configurado comoEXTERNAL
. 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
yL3_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 enL3_DEFAULT
.
- La configuración del protocolo de la regla de reenvío
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
oSCTP
.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.
- Usa una sola regla de reenvío
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 interfaznic0
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.
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:
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
. UsaTCP
oUDP
. - No se admiten varias NIC.
- No se admite el protocolo
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.