Melhorar a experiência do usuário com a VPN

Nesta página, fornecemos diretrizes para operadores de rede garantirem que os apps de rede privada virtual (VPN) para consumidores e empresas ofereçam uma boa experiência do usuário final nas redes deles. O Android oferece a classe VpnManager para que os desenvolvedores criem soluções de VPN, usadas por consumidores e empresas para criptografar ou encaminhar as comunicações para redes diferentes.

Recomendamos que os operadores de rede sigam estas diretrizes:

  • Ofereça suporte ao protocolo IPv6 Encapsulating Security Payload (ESP) (pacotes do próximo cabeçalho 50) na sua rede, garantindo que esse tráfego tenha desempenho comparável às conexões do protocolo de datagramas do usuário (UDP) ou do protocolo de controle de transmissão (TCP). As sessões do ESP precisam ser permitidas para dispositivos ou definidas com tempos limite muito altos e encaminhadas na taxa de linha.
  • Defina a conversão de endereços de rede (NAT) e os tempos limite de firewall com estado de um mínimo de 600 segundos para conexões UDP na porta 4500 para garantir que as soluções de VPN possam manter uma conectividade confiável sem incorrer em custos excessivos de energia.

Suporte a pacotes do protocolo ESP IPv6 (próximo cabeçalho 50)

O Encapsulating Security Payload (ESP) é o formato de pacote definido como parte do conjunto de protocolos de segurança IP (IPSec) para criptografar e autenticar pacotes em uma solução de VPN. O SO Android implementa esse protocolo de segurança padrão na solução de VPN integrada.

Em redes compatíveis com IPv6, os pacotes ESP são transmitidos diretamente em pacotes IPv6 com um campo "Próximo cabeçalho" de 50. Se uma rede não oferecer suporte adequado a esses tipos de pacotes, isso pode causar falta de conectividade para soluções de VPN que visam usar esse protocolo sem mais encapsulamento 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 capacidade de transferência muito degradado em comparação com conexões TCP ou UDP.

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

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

Definir tempos limite suficientes de NAT e firewall com estado

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

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

Recomendamos que os operadores aumentem os tempos limite do NAT e do firewall com estado o suficiente para evitar o impacto na bateria. O tempo limite recomendado para encapsulamento UDP do IPsec (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 portas. 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 entregar notificações recebidas. Assim, o número de conexões de longa duração que a rede precisa oferecer suporte é o mesmo ou menor quando uma VPN está em execução em comparação com quando ela não está.