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

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

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

  • รองรับแพ็กเก็ตโปรโตคอล IPv6 Encapsulation Security Payload (ESP) (ส่วนหัว Next 50) ในเครือข่าย, ทำให้การรับส่งข้อมูลนี้มีประสิทธิภาพเทียบเท่ากับโปรโตคอล User Datagram (UDP) หรือการเชื่อมต่อโปรโตคอล (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

คณะทำงานเฉพาะกิจด้านวิศวกรรมอินเทอร์เน็ต (Internet Engineering Task Force หรือ 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 วินาทีขึ้นไป

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