En esta página, se proporcionan lineamientos para los operadores de redes, de modo que garanticen que las apps de red privada virtual (VPN) para consumidores y empresas brinden una buena experiencia del usuario final en sus redes. Android proporciona la clase VpnManager para que los desarrolladores creen soluciones de VPN, que los consumidores y las empresas usan para encriptar sus comunicaciones o enrutarlas a diferentes redes.
Recomendamos que los operadores de redes sigan estos lineamientos:
- Admite paquetes del protocolo de carga útil de seguridad encapsulada (ESP) de IPv6 (próximo encabezado 50) en tu red y asegúrate de que este tráfico tenga un rendimiento comparable al de las conexiones del protocolo de datagramas de usuario (UDP) o del protocolo de control de transmisión (TCP). Las sesiones de ESP deben permitir el tráfico entrante a los dispositivos o establecerse con tiempos de espera muy altos, y reenviarse a la velocidad de la línea.
- Establece tiempos de espera de traducción de direcciones de red (NAT) y de firewall con estado 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.
Admite paquetes del protocolo ESP de IPv6 (siguiente encabezado 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 Next Header de 50. Si una red no admite correctamente estos tipos de paquetes, puede causar una falta de conectividad para las soluciones de VPN que tienen como objetivo usar este protocolo sin una mayor encapsulación de los paquetes. Es posible que la red descarte estos paquetes debido a la configuración del firewall. O bien, los paquetes ESP podrían llegar a rutas lentas en la red, con un rendimiento de procesamiento significativamente degradado en comparación con las conexiones TCP o UDP.
El Grupo de Trabajo de Ingeniería de Internet (IETF) recomienda permitir IPsec a través de los firewalls que usan los servicios de acceso a Internet para el consumidor. Por ejemplo, consulta la sección 3.2.4 del RFC 6092. Los paquetes ESP se pueden permitir de forma segura a través de firewalls en ambas direcciones, ya que, si un dispositivo recibe un paquete 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 conexión para mantener la conectividad de la VPN, lo que ahorra batería. Recomendamos que las redes permitan los paquetes ESP a los dispositivos en todo momento o que las sesiones ESP solo se agoten 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 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.
Configura tiempos de espera suficientes para NAT y el firewall con estado
Para mantener la confiabilidad de la conexión, una solución de VPN debe mantener una conexión duradera con el servidor de VPN que proporciona 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 de IPsec usan ESP encapsulado en paquetes UDP de IPv4 con el puerto de destino 4500, como se describe en el RFC 3948.
Para mantener esta conexión, el dispositivo debe enviar paquetes al servidor de forma periódica. Estos paquetes deben enviarse con una frecuencia mayor que los tiempos de espera de NAT y firewall impuestos por el operador de red. Los keepalives frecuentes consumen mucha energía del lado del cliente y tienen un gran impacto en la duración de la batería. También generan una cantidad considerable de tráfico de señalización en la red, incluso si el dispositivo está inactivo.
Recomendamos que los operadores aumenten los tiempos de espera de NAT y del firewall con estado lo suficiente como para evitar el impacto en la batería. El tiempo de espera recomendado para la encapsulación 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 ser bajos porque la escasez de direcciones IPv4 impone factores de reutilización de puertos altos. 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.