En esta página, se proporcionan lineamientos para que los operadores de red garanticen que las apps de redes privadas virtuales (VPN) para consumidores y empresas proporcionen una buena experiencia del usuario final en sus redes. Android proporciona la clase VpnManager
para que los desarrolladores creen soluciones de VPN, que usan los consumidores y las empresas para encriptar sus comunicaciones o enrutarlas a diferentes redes.
Recomendamos que los operadores de red sigan estos lineamientos:
- Admite paquetes del protocolo de carga útil de seguridad encapsulada (ESP) de IPv6 (próximo encabezado 50) en tu red, lo que garantiza que este tráfico tenga un rendimiento comparable al de las conexiones del protocolo de datagramas de usuario (UDP) o el protocolo de control de transmisión (TCP). Las sesiones de ESP deben permitirse entrantes a los dispositivos o establecerse en tiempos de espera muy altos y reenviarse a la velocidad de línea.
- Establece tiempos de espera de traducción de direcciones de red (NAT) y firewall con estado que sean de un mínimo de 600 segundos para las conexiones UDP en el puerto 4500 para garantizar que las soluciones de VPN puedan mantener una conectividad confiable sin incurrir en costos de energía excesivos.
Compatibilidad con paquetes de protocolo ESP IPv6 (encabezado siguiente 50)
La carga útil de seguridad de encapsulación (ESP) es el formato de paquete definido como parte del conjunto de protocolos de seguridad del protocolo de Internet (IPsec) para encriptar y autenticar paquetes en una solución de VPN. El SO Android implementa este protocolo de seguridad estándar en su solución de VPN integrada.
En las redes compatibles con IPv6, los paquetes ESP se transportan directamente en paquetes IPv6 con un campo de encabezado de siguiente salto de 50. Si una red no admite correctamente estos tipos de paquetes, puede provocar una falta de conectividad para las soluciones de VPN que tienen como objetivo usar este protocolo sin encapsular más los paquetes. Es posible que la red descarte estos paquetes debido a la configuración del firewall. O bien los paquetes ESP pueden llegar a rutas lentas en la red, con un rendimiento de la capacidad de procesamiento muy degradado en comparación con las conexiones TCP o UDP.
El Internet Engineering Task Force (IETF) recomienda permitir IPsec a través de firewalls que usan los servicios de acceso a Internet del consumidor. Por ejemplo, consulta RFC 6092, sección 3.2.4. Los paquetes de ESP se pueden permitir de forma segura a través de firewalls en ambas direcciones porque, si un dispositivo recibe un paquete de ESP que no forma parte de una asociación de seguridad existente, lo descarta. Como resultado, el dispositivo no necesita enviar paquetes de mantenimiento de la conexión para mantener la conectividad de la VPN, lo que ahorra batería. Recomendamos que las redes permitan que los paquetes ESP lleguen a los dispositivos en todo momento o que se agote el tiempo de espera de las sesiones de ESP solo después de largos períodos de inactividad (por ejemplo, 30 minutos).
Recomendamos que los operadores de red admitan paquetes de protocolo ESP (paquetes IPv6 con un encabezado de siguiente de 50) en sus redes y reenvíen esos paquetes en hardware a la velocidad de línea. Esto garantiza que las soluciones de VPN no tengan problemas de conectividad y proporcionen un rendimiento comparable al de las conexiones UDP o TCP.
Establece suficientes tiempos de espera de NAT y firewall con estado
Para mantener la confiabilidad de la conexión, una solución de VPN debe mantener una conexión de larga duración con el servidor de VPN que proporcione conectividad entrante y saliente (por ejemplo, para recibir notificaciones push entrantes, mensajes de chat y llamadas de audio o video). La mayoría de las apps de VPN con IPsec utilizan el ESP encapsulado en paquetes UDP IPv4 con el puerto de destino 4500, como se describe en RFC 3948.
Para mantener esta conexión, el dispositivo debe enviar paquetes de forma periódica al servidor. Estos paquetes deben enviarse con una frecuencia mayor que los tiempos de espera de NAT y firewall que impone el operador de red. Los mensajes de mantenimiento de la conexión frecuentes consumen mucha energía del cliente y tienen un gran impacto en la duración de la batería. También generan un tráfico de señalización considerable en la red, incluso si el dispositivo está inactivo.
Recomendamos que los operadores aumenten los tiempos de espera de NAT y firewall con estado lo suficiente para evitar el impacto en la batería. El tiempo de espera recomendado para el encapsulamiento de UDP de IPsec (puerto 4500) es de 600 segundos o más.
En las redes móviles, los tiempos de espera de NAT de UDP suelen mantenerse bajos porque la escasez de direcciones IPv4 impone factores de reutilización de puertos. Sin embargo, cuando se establece una VPN, la red del dispositivo no necesita admitir conexiones TCP de larga duración, como las que se usan para entregar notificaciones entrantes. Por lo tanto, la cantidad de conexiones de larga duración que la red debe admitir es la misma o menor cuando se ejecuta una VPN en comparación con cuando no se ejecuta una VPN.