Melhore a experiência do usuário VPN

Esta página fornece diretrizes para operadoras de rede para garantir que os aplicativos de rede privada virtual (VPN) para consumidores e empresas forneçam uma boa experiência de usuário final em suas redes. O Android fornece a classe VpnManager para desenvolvedores criarem soluções VPN, que são usadas por consumidores e empresas para criptografar suas comunicações ou encaminhá-las para diferentes redes.

Recomendamos que as operadoras de rede sigam estas diretrizes:

  • Suporte a pacotes do protocolo IPv6 Encapsulated Security Payload (ESP) (Next Header 50) em sua rede , garantindo que esse tráfego tenha desempenho comparável ao protocolo de datagrama de usuário (UDP) ou conexões de protocolo de controle de transmissão (TCP). As sessões do ESP devem ter permissão para entrar nos dispositivos ou definir tempos limite muito altos e encaminhar na taxa de linha.
  • Defina a tradução de endereço de rede (NAT) e tempos limite de firewall com estado mínimo de 600 segundos para conexões UDP na porta 4500 para garantir que as soluções VPN possam manter uma conectividade confiável sem incorrer em custos excessivos de energia.

Suporte a pacotes do protocolo IPv6 ESP (Next Header 50)

A carga útil de segurança de encapsulamento (ESP) é o formato de pacote definido como parte do conjunto de protocolos IPSec (Internet Protocol Security) para criptografar e autenticar pacotes em uma solução VPN. O sistema operacional Android implementa esse protocolo de segurança padrão em sua solução VPN integrada.

Em redes compatíveis com IPv6, os pacotes ESP são transportados diretamente em pacotes IPv6 com um campo Next Header de 50. Se uma rede não suportar adequadamente esses tipos de pacotes, pode causar falta de conectividade para soluções VPN que visam usar isso protocolo sem encapsulamento adicional dos pacotes. A rede pode descartar esses pacotes devido à configuração do firewall. Ou os pacotes ESP podem atingir caminhos lentos na rede, com desempenho de taxa de transferência severamente degradado em comparação com conexões TCP ou UDP.

A Força-Tarefa de Engenharia da Internet (IETF) recomenda permitir o IPsec por meio de firewalls usados ​​pelos serviços de acesso à Internet do consumidor. Por exemplo, consulte RFC 6092 seção 3.2.4 . Os pacotes ESP podem ser permitidos com segurança por meio de firewalls em ambas as direções porque, se um dispositivo receber um pacote ESP que não faça parte de uma associação de segurança existente, o dispositivo descartará o pacote. Como resultado, o dispositivo não precisa enviar pacotes keepalive para manter a conectividade VPN, o que economiza bateria. Recomendamos que as redes permitam pacotes ESP para dispositivos em todos os momentos ou limitem as sessões ESP somente após longos períodos de inatividade (por exemplo, 30 minutos).

Recomendamos que as operadoras de rede ofereçam suporte a pacotes de protocolo ESP (pacotes IPv6 com um próximo cabeçalho de 50) em suas redes e encaminhem esses pacotes em hardware na taxa de linha. Isso garante que as soluções VPN não encontrem problemas de conectividade e forneçam desempenho comparável a conexões UDP ou TCP.

Defina NAT suficiente e tempos limites de firewall com estado

Para manter a confiabilidade da conexão, uma solução VPN precisa manter uma conexão de longa duração com o servidor VPN que forneça conectividade de entrada e saída (por exemplo, para receber notificações por push, mensagens de bate-papo e chamadas de áudio/vídeo). A maioria dos aplicativos VPN IPsec usa ESP encapsulado em pacotes UDP IPv4 com porta de destino 4500, conforme descrito em RFC 3948 .

Para manter essa conexão, o dispositivo precisa enviar pacotes periodicamente para o servidor. Esses pacotes devem ser enviados em uma frequência maior do que os tempos limite de NAT e firewall impostos pela operadora de rede. Keepalives frequentes consomem muita energia do lado do cliente e têm um grande impacto na duração da bateria. Eles também geram tráfego de sinalização substancial na rede, mesmo se o dispositivo estiver ocioso.

Recomendamos que os operadores aumentem os tempos limite de NAT e firewall com monitoramento de estado o suficiente para evitar impacto na bateria. O tempo limite recomendado para o encapsulamento IPsec UDP (porta 4500) é de 600 segundos ou mais.

Em redes móveis, os tempos limite de UDP NAT geralmente são mantidos baixos porque a escassez de endereços IPv4 impõe altos fatores de reutilização de porta. No entanto, quando uma VPN é estabelecida, a rede do dispositivo não precisa oferecer suporte a conexões TCP de longa duração, como as usadas para enviar notificações de entrada. Portanto, o número de conexões de longa duração que a rede precisa suportar é o mesmo ou menor quando uma VPN está em execução em comparação com quando uma VPN não está em execução.