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

Trang này cung cấp các nguyên tắc cho nhà khai thác mạng để đảm bảo rằng các ứ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 ra các giải pháp VPN. Người tiêu dùng và doanh nghiệp sử dụng các giải pháp này để 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à khai thác mạng nên tuân thủ những nguyên tắc sau:

  • Hỗ trợ các gói giao thức Encapsulating Security Payload (ESP) (Tiêu đề tiếp theo 50) IPv6 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 điều khiển truyền tải (TCP). Các phiên ESP phải được phép truy cập vào các thiết bị hoặc được đặt thành thời gian chờ rất cao và được chuyển tiếp theo tốc độ đường truyền.
  • Đặt thời gian chờ của tường lửa có trạng thái và tính năng dịch địa chỉ mạng (NAT) 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 tốn quá nhiều điện năng.

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

Encapsulating Security Payload (ESP) là định dạng gói được xác định trong bộ giao thức Bảo mật giao thức Internet (IPSec) để mã hoá và xác thực các gói trong một 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 hỗ trợ IPv6, các gói ESP được truyền trực tiếp trong các gói IPv6 với trường Tiêu đề tiếp theo là 50. Nếu không hỗ trợ đúng cách các loại gói này, một mạng có thể gây ra tình trạng thiếu kết nối cho các giải pháp VPN nhằm mục đích sử dụng giao thức này mà không cần đóng gói thêm các gói. Mạng có thể loại bỏ 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 đường dẫn chậm trên mạng, với hiệu suất thông lượng giảm nghiêm trọng so với các kết nối TCP hoặc UDP.

Lực lượng đặc trách kỹ thuật Internet (IETF) khuyến nghị cho phép IPsec thông qua 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ụ: xem RFC 6092 phần 3.2.4. 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 mối 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 các gói duy trì hoạt động để duy trì kết nối VPN, giúp tiết kiệm pin. Các mạng nên cho phép các gói ESP đến thiết bị mọi lúc hoặc chỉ hết thời gian chờ của 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 (các 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 phải vấn đề về kết nối và mang lại hiệu suất tương đương với các kết nối UDP hoặc TCP.

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

Để duy trì độ tin cậy của kết nối, một 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 đi và đến (ví dụ: để nhận thông báo đẩy đến, tin nhắn trò chuyện và cuộc gọi âm thanh hoặc video). Hầu hết các ứng dụng VPN IPsec đều sử dụng ESP được đóng gói trong các gói UDP IPv4 với cổng đích là 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 so với thời gian chờ NAT và tường lửa do nhà khai thác mạng áp đặt. Việc duy trì kết nố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. Các dịch vụ này 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 nhà khai thác nên tăng thời gian chờ của NAT và tường lửa có trạng thái đủ cao để tránh ảnh hưởng đến pin. Thời gian chờ được đề xuất cho hoạt động đóng gói UDP IPsec (cổng 4500) là từ 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 thiếu địa chỉ IPv4 khiến các yếu tố sử dụng lại cổng ở mức cao. Tuy nhiên, khi VPN được thiết lập, mạng thiết bị không cần hỗ trợ các kết nối TCP duy trì lâu dài, chẳng hạn như những kết nối được dùng để gửi thông báo đến. Vì vậy, số lượng kết nối duy trì lâu dài mà mạng cần hỗ trợ là như nhau hoặc thấp hơn khi VPN đang chạy so với khi VPN không chạy.