

Diego Gómez
Consultor IT
3 min de lectura
15 de abril de 2026
GKE, VPNs y el caso de los paquetes perdidos: una guía de enmascaramiento de IP
Cuando una VPN funciona pero el tráfico no llega, el problema no siempre está en la red. En GKE, puede estar en cómo se construye la IP de origen de cada paquete.
En entornos empresariales es habitual que aplicaciones desplegadas en Kubernetes necesiten conectarse con sistemas internos del cliente. En este caso, el reto consistía en conectar un cluster de Google Kubernetes Engine (GKE) con servicios alojados en la red on-premise mediante una VPN.
Aunque la conectividad parecía correctamente configurada, las peticiones nunca llegaban al destino. Este artículo explica el problema real, por qué ocurre en GKE y cómo resolverlo.
Preparación del entorno
El punto de partida era una arquitectura híbrida donde un cluster de GKE debía consumir servicios internos del cliente, la conexión se establecía mediante VPN y era necesario validar rutas y conectividad entre proyectos en Google Cloud.
Para ello se configuró:
- Una VPN entre Google Cloud y la red del cliente
- Enrutamiento interno entre proyectos
- Resolución DNS cruzada
Escenario de red (la arquitectura)
La arquitectura seguía un modelo estándar en Google Cloud:
Conectividad híbrida
Una VPN (Meraki) establece el túnel entre Google Cloud y el entorno on-premise.
Topología hub-and-spoke
- Proyecto Shared (Hub): centraliza la VPN y el enrutamiento
- Proyecto TST (Spoke): contiene el cluster de GKE y Cloud SQL
- Conexión entre ambos mediante Shared VPC o VPC Peering
Resolución DNS
Uso de Cloud DNS Peering Zones para que el cluster en TST pueda resolver servicios que viven en el lado del cliente a través del túnel en Shared.
El misterio: paquetes que no llegan
Una vez validado:
- El túnel VPN estaba activo
- Las rutas eran correctas
- La resolución DNS funcionaba
Las peticiones seguían fallando.
El síntoma clave: el tráfico nunca alcanzaba la red del cliente.
La trampa: identidad de los paquetes en GKE
La trampa estaba en la identidad del paquete: el tráfico se originaba con la IP del rango secundario del Pod, la cual no estaba autorizada en la infraestructura del cliente (solo lo estaba el rango principal del nodo).
Descubrimos que GKE, por defecto, no aplica enmascaramiento (masquerade) a los rangos internos RFC 1918, provocando que el tráfico saliera con una IP 'desconocida' para la VPN.
- Si el destino es una IP interna -> GKE NO enmascara la ip del pod.
- Si el destino es una IP externa -> GKE SÍ enmascara la ip con la del nodo.
Resultado: La VPN estaba en un rango que GKE consideraba "interno", pero el cliente solo conocía la IP del Nodo.
La solución: controlar el enmascaramiento de IP
Para solucionarlo, descartamos ampliar rangos en el cliente por ser una solución poco limpia.
En su lugar, implementamos el ip-masq-agent como un DaemonSet. Este agente nos permitió definir, mediante un ConfigMap, qué rangos específicos no deben enmascararse, forzando que el resto del tráfico use la IP del nodo (rango principal).
Así, las llamadas a los servicios externos fueron finalmente aceptadas por la VPN.
Implementación del ip-masq-agent
Se desplegó como DaemonSet en el cluster, junto con un ConfigMap personalizado:
kind: ConfigMap
metadata:
name: ip-masq-agent
namespace: kube-system
data:
config: |
nonMasqueradeCIDRs:
- 10.x.x.x/y
- 100.x.x.x/y
- 170.x.x.x/y
resyncInterval: 60s
Cuándo aplicar esta solución
Este enfoque es especialmente relevante cuando:
- Se trabaja con GKE en modo VPC-native
- Existen rangos secundarios para pods
- La red on-premise tiene restricciones estrictas de IP
- Se utiliza conectividad híbrida (VPN o Interconnect)
Conclusión
En entornos híbridos, no basta con que la red funcione. Es necesario entender cómo se comporta el tráfico dentro del cluster.
El enmascaramiento de IP en GKE puede parecer un detalle menor, pero puede bloquear completamente la comunicación con sistemas externos si no se gestiona correctamente.
Controlarlo de forma explícita permite alinear la infraestructura cloud con las políticas del cliente, evitar errores difíciles de diagnosticar y escalar la arquitectura sin dependencias frágiles.

¿Necesitas asesoramiento personalizado?
Miguel
Director de Tecnología Cloud
3 min de lectura
¿Docker lento en Windows?: Multiplica el rendimiento usando WSL 2

13 min de lectura
RPA con UiPath: Del Backoffice de TI a la Automatización Empresarial

2 min de lectura
Infraestructura más segura y escalable con Cloud Run

4 min de lectura
Automatización Agentica para resolver disputas de facturas
