Migliora l'esperienza utente VPN

Questa pagina fornisce linee guida agli operatori di rete per garantire che le app di rete privata virtuale (VPN) consumer e aziendali forniscano una buona esperienza all'utente finale nelle loro reti. Android fornisce la classe VpnManager agli sviluppatori per creare soluzioni VPN, che vengono utilizzate da consumatori e aziende per crittografare le proprie comunicazioni o instradarle su reti diverse.

Raccomandiamo agli operatori di rete di seguire queste linee guida:

  • Supporta i pacchetti del protocollo ESP (Encapsulating Security Payload) IPv6 (Next Header 50) sulla rete , garantendo che questo traffico abbia prestazioni paragonabili alle connessioni UDP (User Datagram Protocol) o TCP (Transmission Control Protocol). Le sessioni ESP dovrebbero essere consentite in ingresso ai dispositivi o impostate su timeout molto elevati e inoltrate alla velocità di linea.
  • Imposta timeout NAT (Network Address Translation) e firewall con stato di almeno 600 secondi per le connessioni UDP sulla porta 4500 per garantire che le soluzioni VPN possano mantenere una connettività affidabile senza incorrere in costi energetici eccessivi.

Supporta i pacchetti del protocollo ESP IPv6 (Next Header 50).

Encapsulating Security Payload (ESP) è il formato di pacchetto definito come parte del set di protocolli Internet Protocol Security (IPSec) per crittografare e autenticare i pacchetti in una soluzione VPN. Il sistema operativo Android implementa questo protocollo di sicurezza standard nella sua soluzione VPN integrata.

Sulle reti compatibili con IPv6, i pacchetti ESP vengono trasportati direttamente in pacchetti IPv6 con un campo Next Header pari a 50. Se una rete non supporta adeguatamente questi tipi di pacchetti, può causare una mancanza di connettività per le soluzioni VPN che mirano a utilizzare questo protocollo senza ulteriore incapsulamento dei pacchetti. La rete potrebbe ignorare questi pacchetti a causa della configurazione del firewall. Oppure i pacchetti ESP potrebbero raggiungere percorsi lenti sulla rete, con prestazioni di throughput gravemente ridotte rispetto alle connessioni TCP o UDP.

L'Internet Engineering Task Force (IETF) consiglia di consentire IPsec attraverso i firewall utilizzati dai servizi di accesso a Internet consumer. Ad esempio, vedere RFC 6092 sezione 3.2.4 . I pacchetti ESP possono essere consentiti in sicurezza attraverso i firewall in entrambe le direzioni perché se un dispositivo riceve un pacchetto ESP che non fa parte di un'associazione di sicurezza esistente, il dispositivo scarta il pacchetto. Di conseguenza, il dispositivo non ha bisogno di inviare pacchetti keepalive per mantenere la connettività VPN, risparmiando così la durata della batteria. È consigliabile che le reti consentano sempre i pacchetti ESP ai dispositivi oppure interrompano le sessioni ESP solo dopo lunghi periodi di inattività (ad esempio 30 minuti).

Consigliamo agli operatori di rete di supportare i pacchetti del protocollo ESP (pacchetti IPv6 con Next Header pari a 50) sulle loro reti e di inoltrare tali pacchetti nell'hardware alla velocità di linea. Ciò garantisce che le soluzioni VPN non incontrino problemi di connettività e forniscano prestazioni paragonabili alle connessioni UDP o TCP.

Impostare sufficienti timeout NAT e firewall con stato

Per mantenere l'affidabilità della connessione, una soluzione VPN deve mantenere una connessione di lunga durata al server VPN che fornisca connettività in uscita e in entrata (ad esempio, per ricevere notifiche push in arrivo, messaggi di chat e chiamate audio/video). La maggior parte delle app VPN IPsec utilizzano ESP incapsulato in pacchetti UDP IPv4 con porta di destinazione 4500, come descritto in RFC 3948 .

Per mantenere questa connessione, il dispositivo deve inviare periodicamente pacchetti al server. Questi pacchetti devono essere inviati con una frequenza superiore rispetto ai timeout NAT e firewall imposti dall'operatore di rete. I frequenti keepalive consumano molta energia sul lato client e hanno un impatto notevole sulla durata della batteria. Inoltre generano un notevole traffico di segnalazione sulla rete, anche se il dispositivo è altrimenti inattivo.

Consigliamo agli operatori di aumentare i timeout del NAT e del firewall con stato a un livello sufficientemente alto da evitare l'impatto sulla batteria. Il timeout consigliato per l'incapsulamento UDP IPsec (porta 4500) è pari o superiore a 600 secondi.

Nelle reti mobili, i timeout NAT UDP sono spesso mantenuti bassi poiché la scarsità di indirizzi IPv4 impone elevati fattori di riutilizzo delle porte. Tuttavia, quando viene stabilita una VPN, non è necessario che la rete del dispositivo supporti connessioni TCP di lunga durata, come quelle utilizzate per inviare notifiche in entrata. Pertanto, il numero di connessioni di lunga durata che la rete deve supportare è uguale o inferiore quando una VPN è in esecuzione rispetto a quando una VPN non è in esecuzione.