本頁面提供網路運營商的指南,確保消費者和企業虛擬私人網路 (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,網路需要支援的長時間連線數量會相同或更少。