Cải thiện trải nghiệm người dùng VPN

Trang này cung cấp nguyên tắc cho các nhà khai thác mạng để đảm bảo rằng ứng dụng mạng riêng ảo (VPN) dành cho người tiêu dùng và doanh nghiệp mang lại trải nghiệm tốt cho người dùng cuối trong mạng của họ. Android cung cấp lớp VpnManager để nhà phát triển tạo các giải pháp VPN. Giải pháp này được người tiêu dùng và doanh nghiệp sử dụng để mã hoá thông tin liên lạc hoặc định tuyến thông tin liên lạc đến các mạng khác nhau.

Các nhà mạng nên làm theo các nguyên tắc sau:

  • Hỗ trợ các gói giao thức Tải trọng bảo mật đóng gói (ESP) IPv6 (Tiêu đề tiếp theo 50) trên mạng của bạn, đảm bảo lưu lượng truy cập này có hiệu suất tương đương với các kết nối giao thức dữ liệu người dùng (UDP) hoặc giao thức kiểm soát truyền tải (TCP). Các phiên ESP phải được cho phép gửi đến thiết bị hoặc đặt thành thời gian chờ rất cao và được chuyển tiếp ở tốc độ dòng.
  • Đặt thời gian chờ dịch địa chỉ mạng (NAT) và tường lửa trạng thái tối thiểu là 600 giây cho các kết nối UDP trên cổng 4500 để đảm bảo các giải pháp VPN có thể duy trì kết nối đáng tin cậy mà không phải chịu chi phí điện năng quá mức.

Hỗ trợ các gói giao thức ESP IPv6 (Tiêu đề tiếp theo 50)

Gói bảo mật đóng gói (ESP) là định dạng gói được xác định là một phần của nhóm giao thức Bảo mật giao thức Internet (IPSec) để mã hoá và xác thực các gói trong giải pháp VPN. Hệ điều hành Android triển khai giao thức bảo mật tiêu chuẩn này trong giải pháp VPN tích hợp.

Trên các mạng có hỗ trợ IPv6, các gói ESP được truyền trực tiếp trong các gói IPv6 có trường Tiêu đề tiếp theo là 50. Nếu mạng không hỗ trợ đúng cách các loại gói này, thì điều này có thể khiến các giải pháp VPN nhằm sử dụng giao thức này không có kết nối mà không cần đóng gói thêm các gói. Mạng có thể bỏ qua các gói này do cấu hình tường lửa. Hoặc các gói ESP có thể gặp phải các đường dẫn chậm trên mạng, với hiệu suất thông lượng bị giảm nghiêm trọng so với các kết nối TCP hoặc UDP.

Nhóm công tác kỹ thuật Internet (IETF) đề xuất cho phép IPsec thông qua các tường lửa mà các dịch vụ truy cập Internet của người tiêu dùng sử dụng. Ví dụ: hãy xem phần 3.2.4 của RFC 6092. Bạn có thể cho phép các gói ESP đi qua tường lửa một cách an toàn theo cả hai hướng vì nếu một thiết bị nhận được gói ESP không thuộc một liên kết bảo mật hiện có, thì thiết bị đó sẽ loại bỏ gói đó. Do đó, thiết bị không cần gửi gói duy trì kết nối để duy trì kết nối VPN, giúp tiết kiệm thời lượng pin. Bạn nên cho phép mạng gửi gói ESP đến thiết bị mọi lúc hoặc chỉ hết thời gian chờ các phiên ESP sau thời gian dài không hoạt động (ví dụ: 30 phút).

Các nhà khai thác mạng nên hỗ trợ các gói giao thức ESP (gói IPv6 có tiêu đề tiếp theo là 50) trên mạng của họ và chuyển tiếp các gói đó trong phần cứng ở tốc độ đường truyền. Điều này đảm bảo các giải pháp VPN không gặp vấn đề về kết nối và cung cấp hiệu suất tương đương với các kết nối UDP hoặc TCP.

Đặt thời gian chờ NAT và tường lửa trạng thái đủ

Để duy trì độ tin cậy của kết nối, giải pháp VPN cần duy trì kết nối lâu dài với máy chủ VPN cung cấp khả năng kết nối đến và đi (ví dụ: để nhận thông báo đẩy, tin nhắn trò chuyện và cuộc gọi âm thanh hoặc video đến). Hầu hết ứng dụng VPN IP (mạng riêng ảo) đều sử dụng ESP được đóng gói trong các gói UDP IPv4 với cổng đích 4500, như mô tả trong RFC 3948.

Để duy trì kết nối này, thiết bị cần định kỳ gửi các gói đến máy chủ. Các gói này phải được gửi với tần suất cao hơn thời gian chờ NAT và tường lửa do nhà mạng áp đặt. Các lệnh giữ trạng thái thường xuyên tiêu tốn nhiều năng lượng ở phía máy khách và ảnh hưởng lớn đến thời lượng pin. Chúng cũng tạo ra lưu lượng tín hiệu đáng kể trên mạng, ngay cả khi thiết bị ở trạng thái rảnh.

Các toán tử nên tăng thời gian chờ NAT và tường lửa có trạng thái đủ cao để tránh ảnh hưởng đến pin. Thời gian chờ đề xuất cho tính năng đóng gói UDP IPsec (cổng 4500) là 600 giây trở lên.

Trong mạng di động, thời gian chờ NAT UDP thường được giữ ở mức thấp vì tình trạng khan hiếm địa chỉ IPv4 gây ra các yếu tố sử dụng lại cổng cao. Tuy nhiên, khi thiết lập VPN, mạng thiết bị không cần hỗ trợ các kết nối TCP tồn tại lâu dài, chẳng hạn như các kết nối dùng để phân phối thông báo đến. Do đó, số lượng kết nối lâu dài mà mạng cần hỗ trợ sẽ bằng hoặc thấp hơn khi VPN đang chạy so với khi VPN không chạy.