ปรับปรุงประสบการณ์ของผู้ใช้ VPN

หน้านี้มีหลักเกณฑ์สำหรับผู้ให้บริการเครือข่ายเพื่อให้มั่นใจว่าแอปเครือข่ายส่วนตัวเสมือน (VPN) สำหรับผู้บริโภคและองค์กรจะมอบประสบการณ์การใช้งานที่ดีให้แก่ผู้ใช้ปลายทางในเครือข่าย Android มีคลาส VpnManager ไว้ให้นักพัฒนาแอปสร้างโซลูชัน VPN ซึ่งผู้บริโภคและองค์กรต่างๆ นำไปใช้เข้ารหัสการสื่อสารหรือกำหนดเส้นทางไปยังเครือข่ายต่างๆ

เราขอแนะนำให้ผู้ให้บริการเครือข่ายปฏิบัติตามหลักเกณฑ์ต่อไปนี้

  • รองรับแพ็กเก็ตโปรโตคอล Encapsulating Security Payload (ESP) ของ IPv6 (ส่วนหัวถัดไป 50) ในเครือข่าย เพื่อให้การรับส่งข้อมูลนี้มีประสิทธิภาพเทียบเท่ากับการเชื่อมต่อโปรโตคอล User Datagram Protocol (UDP) หรือ Transmission Control Protocol (TCP) ควรอนุญาตให้เซสชัน ESP ขาเข้าไปยังอุปกรณ์ หรือตั้งค่าการหมดเวลาให้สูงมาก และส่งต่อที่อัตราบรรทัด
  • ตั้งค่าการหมดเวลาของการเปลี่ยนที่อยู่เครือข่าย (NAT) และไฟร์วอลล์ที่มีสถานะเป็นอย่างน้อย 600 วินาทีสำหรับการเชื่อมต่อ UDP ในพอร์ต 4500 เพื่อให้มั่นใจว่าโซลูชัน VPN จะรักษาการเชื่อมต่อที่เชื่อถือได้โดยไม่สิ้นเปลืองพลังงาน

รองรับแพ็กเก็ตโปรโตคอล ESP ของ IPv6 (ส่วนหัวถัดไป 50)

Encapsulating Security Payload (ESP) คือรูปแบบแพ็กเก็ตที่กําหนดเป็นส่วนหนึ่งของชุดโปรโตคอล Internet Protocol Security (IPSec) เพื่อเข้ารหัสและตรวจสอบสิทธิ์แพ็กเก็ตในโซลูชัน VPN ระบบปฏิบัติการ Android ใช้โปรโตคอลการรักษาความปลอดภัยมาตรฐานนี้ในโซลูชัน VPN ในตัว

ในเครือข่ายที่รองรับ IPv6 ระบบจะส่งแพ็กเก็ต ESP ในแพ็กเก็ต IPv6 โดยตรงโดยมีช่องส่วนหัวถัดไปเป็น 50 หากเครือข่ายไม่รองรับแพ็กเก็ตประเภทเหล่านี้อย่างถูกต้อง อาจทำให้โซลูชัน VPN ที่มุ่งใช้โปรโตคอลนี้โดยไม่มีการบรรจุแพ็กเก็ตเพิ่มเติมไม่สามารถเชื่อมต่อได้ เครือข่ายอาจทิ้งแพ็กเก็ตเหล่านี้เนื่องจากการกําหนดค่าไฟร์วอลล์ หรือแพ็กเก็ต ESP อาจใช้เส้นทางที่ช้าในเครือข่าย ซึ่งทำให้ประสิทธิภาพการรับส่งข้อมูลลดลงอย่างมากเมื่อเทียบกับการเชื่อมต่อ TCP หรือ UDP

คณะทำงานเฉพาะกิจด้านวิศวกรรมอินเทอร์เน็ต (IETF) ขอแนะนำให้อนุญาต IPsec ผ่านไฟร์วอลล์ที่บริการอินเทอร์เน็ตสำหรับผู้บริโภคใช้ ตัวอย่างเช่น ดูRFC 6092 ส่วนที่ 3.2.4 แพ็กเก็ต ESP สามารถอนุญาตผ่านไฟร์วอลล์ได้ทั้งสองทิศทางอย่างปลอดภัย เนื่องจากหากอุปกรณ์ได้รับแพ็กเก็ต ESP ที่ไม่ได้เป็นส่วนหนึ่งของการเชื่อมโยงการรักษาความปลอดภัยที่มีอยู่ อุปกรณ์จะทิ้งแพ็กเก็ตนั้น ด้วยเหตุนี้ อุปกรณ์จึงไม่จำเป็นต้องส่งแพ็กเก็ต Keepalive เพื่อรักษาการเชื่อมต่อ VPN ซึ่งจะช่วยประหยัดแบตเตอรี่ เราขอแนะนำให้เครือข่ายอนุญาตแพ็กเก็ต ESP ไปยังอุปกรณ์ตลอดเวลา หรือให้เซสชัน ESP หมดเวลาหลังจากไม่มีการใช้งานเป็นเวลานาน (เช่น 30 นาที) เท่านั้น

เราขอแนะนำให้ผู้ให้บริการเครือข่ายรองรับแพ็กเก็ตโปรโตคอล ESP (แพ็กเก็ต IPv6 ที่มีส่วนหัวถัดไป 50) ในเครือข่ายของตนและส่งต่อแพ็กเก็ตเหล่านั้นในฮาร์ดแวร์ด้วยอัตราบรรทัดข้อมูล วิธีนี้ช่วยให้โซลูชัน VPN ไม่พบปัญหาการเชื่อมต่อและมีประสิทธิภาพเทียบเท่ากับการเชื่อมต่อ UDP หรือ TCP

ตั้งค่าการหมดเวลาของ NAT และไฟร์วอลล์ที่มีสถานะเพียงพอ

โซลูชัน VPN ต้องรักษาการเชื่อมต่อกับเซิร์ฟเวอร์ VPN ไว้อย่างยาวนานเพื่อให้การเชื่อมต่อขาออกและขาเข้า (เช่น เพื่อรับข้อความ Push, ข้อความแชท และการโทรด้วยเสียงหรือวิดีโอ) ทำงานได้อย่างเสถียร แอป VPN ที่ใช้ IPsec ส่วนใหญ่ใช้ ESP ที่รวมอยู่ในแพ็กเก็ต UDP ของ IPv4 ที่มีพอร์ตปลายทาง 4500 ตามที่อธิบายไว้ใน RFC 3948

อุปกรณ์ต้องส่งแพ็กเก็ตไปยังเซิร์ฟเวอร์เป็นระยะๆ เพื่อรักษาการเชื่อมต่อนี้ไว้ โดยต้องส่งแพ็กเก็ตเหล่านี้ด้วยความถี่สูงกว่าการหมดเวลาของ NAT และไฟร์วอลล์ที่กำหนดโดยผู้ให้บริการเครือข่าย การรักษาการเชื่อมต่อไว้บ่อยๆ จะสิ้นเปลืองพลังงานฝั่งไคลเอ็นต์และส่งผลต่ออายุการใช้งานแบตเตอรี่อย่างมาก นอกจากนี้ ยังสร้างการเข้าชมสัญญาณจำนวนมากในเครือข่าย แม้ว่าอุปกรณ์จะไม่ได้ใช้งานก็ตาม

เราขอแนะนำให้ผู้ให้บริการเพิ่มการหมดเวลาของ NAT และไฟร์วอลล์แบบคงสถานะให้สูงพอเพื่อหลีกเลี่ยงผลกระทบต่อแบตเตอรี่ ระยะหมดเวลาที่แนะนำสำหรับการเข้ารหัส UDP ของ IPsec (พอร์ต 4500) คือ 600 วินาทีขึ้นไป

ในเครือข่ายมือถือ โดยทั่วไปการหมดเวลาของ NAT ของ UDP จะต่ำอยู่เสมอ เนื่องจากความขาดแคลนที่อยู่ IPv4 ทำให้ต้องนำพอร์ตมาใช้ซ้ำกันมาก อย่างไรก็ตาม เมื่อสร้าง VPN แล้ว เครือข่ายของอุปกรณ์ไม่จำเป็นต้องรองรับการเชื่อมต่อ TCP แบบคงที่ เช่น การเชื่อมต่อที่ใช้ส่งการแจ้งเตือนขาเข้า ดังนั้นจำนวนการเชื่อมต่อระยะยาวที่เครือข่ายต้องรองรับจึงเท่าเดิมหรือต่ำกว่าเมื่อ VPN ทำงานอยู่เมื่อเทียบกับเมื่อ VPN ไม่ทำงาน