Popraw wrażenia użytkownika VPN

Na tej stronie znajdują się wytyczne dla operatorów sieci, dzięki którym aplikacje wirtualnej sieci prywatnej (VPN) dla klientów indywidualnych i przedsiębiorstw zapewniają użytkownikom końcowym dobre doświadczenia w ich sieciach. Android udostępnia programistom klasę VpnManager do tworzenia rozwiązań VPN, których używają konsumenci i przedsiębiorstwa do szyfrowania komunikacji lub kierowania jej do różnych sieci.

Zalecamy operatorom sieci przestrzeganie następujących wytycznych:

  • Obsługuj pakiety protokołu IPv6 Encapsulated Security Payload (ESP) (Next Header 50) w swojej sieci , zapewniając, że ten ruch ma porównywalną wydajność z połączeniami protokołu datagramów użytkownika (UDP) lub protokołu kontroli transmisji (TCP). Sesje ESP powinny mieć możliwość przychodzącego do urządzeń lub mieć ustawione bardzo wysokie limity czasu i przekazywane z szybkością łącza.
  • Ustaw translację adresów sieciowych (NAT) i stanowe limity czasu zapory ogniowej na co najmniej 600 sekund dla połączeń UDP na porcie 4500, aby zapewnić, że rozwiązania VPN będą mogły utrzymać niezawodną łączność bez ponoszenia nadmiernych kosztów energii.

Obsługa pakietów protokołu IPv6 ESP (Next Header 50).

Encapsulated Security Payload (ESP) to format pakietu zdefiniowany jako część zestawu protokołów Internet Protocol Security (IPSec) służących do szyfrowania i uwierzytelniania pakietów w rozwiązaniu VPN. System operacyjny Android implementuje ten standardowy protokół bezpieczeństwa w swoim wbudowanym rozwiązaniu VPN.

W sieciach obsługujących protokół IPv6 pakiety ESP są przenoszone bezpośrednio w pakietach IPv6 z polem następnego nagłówka wynoszącym 50. Jeśli sieć nie obsługuje prawidłowo tego typu pakietów, może to spowodować brak łączności dla rozwiązań VPN, które mają z tego korzystać protokołu bez dalszej enkapsulacji pakietów. Sieć może odrzucać te pakiety z powodu konfiguracji zapory. Lub pakiety ESP mogą trafiać na wolne ścieżki w sieci, co powoduje znacznie obniżoną przepustowość w porównaniu z połączeniami TCP lub UDP.

Grupa zadaniowa ds. inżynierii Internetu (IETF) zaleca zezwalanie na protokół IPsec przez zapory sieciowe używane przez usługi dostępu do Internetu dla konsumentów. Na przykład zobacz RFC 6092, sekcja 3.2.4 . Pakiety ESP mogą być bezpiecznie przepuszczane przez zapory ogniowe w obu kierunkach, ponieważ jeśli urządzenie odbierze pakiet ESP, który nie jest częścią istniejącego powiązania zabezpieczeń, urządzenie odrzuca pakiet. W rezultacie urządzenie nie musi wysyłać pakietów podtrzymujących, aby utrzymać łączność VPN, co oszczędza baterię. Zalecamy, aby sieci albo przez cały czas zezwalały na przesyłanie pakietów ESP do urządzeń, albo przekraczały limit czasu sesji ESP dopiero po długich okresach bezczynności (na przykład 30 minut).

Zalecamy, aby operatorzy sieci obsługiwali pakiety protokołu ESP (pakiety IPv6 z nagłówkiem Next 50) w swoich sieciach i przesyłali te pakiety sprzętowo z szybkością łącza. Dzięki temu rozwiązania VPN nie napotykają problemów z łącznością i zapewniają wydajność porównywalną z połączeniami UDP lub TCP.

Ustaw wystarczające limity czasu NAT i stanowej zapory ogniowej

Aby zachować niezawodność połączenia, rozwiązanie VPN musi utrzymywać długotrwałe połączenie z serwerem VPN, który zapewnia łączność wychodzącą i przychodzącą (na przykład w celu odbierania przychodzących powiadomień push, wiadomości czatu i połączeń audio/wideo). Większość aplikacji VPN IPsec korzysta z protokołu ESP zamkniętego w pakietach IPv4 UDP z portem docelowym 4500, zgodnie z opisem w dokumencie RFC 3948 .

Aby utrzymać to połączenie, urządzenie musi okresowo wysyłać pakiety do serwera. Pakiety te muszą być wysyłane z wyższą częstotliwością niż limity czasu NAT i zapory sieciowej narzucone przez operatora sieci. Częste utrzymywanie aktywności zużywają dużo energii po stronie klienta i mają duży wpływ na żywotność baterii. Generują również znaczny ruch sygnalizacyjny w sieci, nawet jeśli urządzenie jest bezczynne.

Zalecamy, aby operatorzy zwiększyli limity czasu NAT i stanowej zapory ogniowej na tyle, aby uniknąć wpływu na baterię. Zalecany limit czasu dla enkapsulacji IPsec UDP (port 4500) wynosi 600 sekund lub więcej.

W sieciach komórkowych limity czasu UDP NAT są często utrzymywane na niskim poziomie, ponieważ niedobór adresów IPv4 narzuca wysokie współczynniki ponownego wykorzystania portów. Jednak po ustanowieniu sieci VPN sieć urządzeń nie musi obsługiwać długotrwałych połączeń TCP, takich jak te używane do dostarczania powiadomień przychodzących. Zatem liczba długotrwałych połączeń, które sieć musi obsłużyć, jest taka sama lub mniejsza, gdy sieć VPN jest uruchomiona, w porównaniu z sytuacją, gdy sieć VPN nie jest uruchomiona.