Esta página oferece diretrizes para operadoras de rede para garantir que os apps de rede privada virtual (VPN) para consumidores e empresas ofereçam uma boa experiência do usuário final nas redes. O Android oferece a
VpnManager
classe para que os desenvolvedores criem soluções de VPN, que são usadas por consumidores e
empresas para criptografar ou encaminhar as comunicações para diferentes redes.
Recomendamos que as operadoras de rede sigam estas diretrizes:
- Ofereça suporte a pacotes do protocolo Encapsulating Security Payload (ESP) IPv6 (próximo cabeçalho 50) na rede, garantindo que esse tráfego tenha desempenho comparável a conexões do protocolo de datagrama do usuário (UDP) ou do protocolo de controle de transmissão (TCP). As sessões ESP precisam ser permitidas para dispositivos ou definidas como tempos limite muito altos e encaminhadas na taxa de linha.
- Defina tempos limite de conversão de endereços de rede (NAT) e firewall com estado de no mínimo 600 segundos para conexões UDP na porta 4500 para garantir que as soluções de VPN possam manter a conectividade confiável sem gerar custos excessivos de energia.
Oferecer 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 do protocolo de Internet (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 de próximo cabeçalho de 50. Se uma rede não oferecer suporte adequado a esses tipos de pacotes, isso poderá 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 processamento muito degradado em comparação com conexões TCP ou UDP.
A Internet Engineering Task Force (IETF) recomenda permitir o IPsec por firewalls usados por serviços de acesso à Internet do consumidor. Por exemplo, consulte a seção 3.2.4 da RFC 6092. Os pacotes ESP podem ser permitidos com segurança por firewalls nas duas direções, porque, se um dispositivo receber um pacote ESP que não faça 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 da VPN, o que economiza a duração da 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 as operadoras 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 encontrem problemas de conectividade e ofereçam desempenho comparável a conexões UDP ou TCP.
Definir tempos limite de NAT e firewall com estado suficientes
Para manter a confiabilidade da conexão, uma solução de VPN precisa manter uma conexão de longa duração com o servidor de VPN que oferece 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 em RFC 3948.
Para manter essa conexão, o dispositivo precisa enviar pacotes ao servidor periodicamente. 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. Eles também geram um tráfego de sinalização substancial na rede, mesmo que o dispositivo esteja inativo.
Recomendamos que as operadoras aumentem os tempos limite de NAT e firewall com estado o suficiente para evitar o impacto na bateria. O tempo limite recomendado para encapsulamento UDP IPsec (porta 4500) é de 600 segundos ou mais.
Em redes móveis, os tempos limite de NAT UDP geralmente são mantidos baixos porque a escassez de endereços IPv4 impõe fatores de reutilização de porta altos. No entanto, quando uma VPN é estabelecida, a rede de dispositivos não precisa oferecer suporte a conexões TCP de longa duração, como as usadas para entregar notificações de entrada. Portanto, 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 uma VPN não está em execução.