本頁面提供網路運營商的指南,確保消費者和企業虛擬私人網路 (VPN) 應用程式可在其網路中提供良好的使用者體驗。Android 提供 VpnManager
類別,供開發人員建立 VPN 解決方案,供消費者和企業用於加密通訊內容或將通訊轉送至其他網路。
我們建議聯播網營運商遵循下列規範:
- 在網路上支援 IPv6 封裝安全酬載 (ESP) 通訊協定 (下一個標頭 50) 封包,確保這類流量的效能與使用者資料包通訊協定 (UDP) 或傳輸控制通訊協定 (TCP) 連線相當。ESP 工作階段應允許傳入裝置,或設為超長逾時時間,並以線路速率轉送。
- 設定網路位址轉譯 (NAT) 和有狀態防火牆逾時值,讓通訊埠 4500 上的 UDP 連線至少有 600 秒的逾時值,確保 VPN 解決方案可維持可靠的連線,且不會產生過高的電力成本。
支援 IPv6 ESP 通訊協定 (下一個標頭 50) 封包
封裝安全酬載 (ESP) 是封包格式,定義為網際網路通訊協定安全性 (IPSec) 通訊協定組合的一部分,用於在 VPN 解決方案中加密及驗證封包。Android 作業系統會在內建 VPN 解決方案中實作這個標準安全性通訊協定。
在支援 IPv6 的網路中,ESP 封包會直接傳送至 IPv6 封包,且下一個標頭欄位為 50。如果網路無法正確支援這類封包,可能會導致 VPN 解決方案無法連線,因為這些解決方案旨在使用此通訊協定,而不會進一步封裝封包。網路可能會因防火牆設定而捨棄這些封包。或者,ESP 封包可能會遇到網路上的低速路徑,導致傳輸量效能嚴重降低,相較於 TCP 或 UDP 連線更為嚴重。
網際網路工程任務組 (IETF) 建議允許消費者網際網路存取服務使用的防火牆允許 IPsec。例如,請參閱 RFC 6092 的 3.2.4 節。由於裝置會捨棄非現有安全關聯的 ESP 封包,因此可以安全地允許 ESP 封包雙向通過防火牆。因此,裝置不需要傳送保活封包來維持 VPN 連線,進而延長電池續航力。建議網路應隨時允許 ESP 封包傳送至裝置,或是在 ESP 工作階段長時間閒置 (例如 30 分鐘) 後才逾時。
我們建議網路業者在網路上支援 ESP 通訊協定封包 (下一個標頭為 50 的 IPv6 封包),並以線路速率在硬體中轉送這些封包。這可確保 VPN 解決方案不會發生連線問題,並提供與 UDP 或 TCP 連線相近的效能。
設定足夠的 NAT 和 stateful 防火牆逾時時間
為維持連線可靠性,VPN 解決方案必須與提供傳出和傳入連線的 VPN 伺服器維持長時間連線 (例如接收推播通知、即時通訊訊息和音訊或視訊通話)。如 RFC 3948 所述,大多數 IPsec VPN 應用程式都會使用封裝在 IPv4 UDP 封包中的 ESP,其目的地通訊埠為 4500。
為了維持這項連線,裝置需要定期傳送封包至伺服器。這些封包的傳送頻率必須高於網路作業員設定的 NAT 和防火牆逾時時間。頻繁的保留機制會耗費大量用戶端端的電力,並對電池續航力造成重大影響。即使裝置處於閒置狀態,也會在網路上產生大量信號流量。
我們建議作業系統提高 NAT 和有狀態防火牆的逾時時間,以免影響電池續航力。IPsec UDP 封裝 (連接埠 4500) 的建議逾時時間為 600 秒以上。
在行動網路中,由於 IPv4 位址短缺,導致通訊埠重複使用因素偏高,因此 UDP NAT 逾時時間通常會保持在低水準。不過,建立 VPN 後,裝置網路不需要支援長時間 TCP 連線,例如用於傳送傳入通知的連線。因此,在 VPN 執行時,網路需要支援的長效連線數量與未執行 VPN 時相同或更少。