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

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

เราขอแนะนำให้ผู้ให้บริการเครือข่ายปฏิบัติตามแนวทางเหล่านี้:

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

รองรับแพ็กเก็ตโปรโตคอล IPv6 ESP (Next Header 50)

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

บนเครือข่ายที่รองรับ IPv6 นั้น แพ็กเก็ต ESP จะถูกส่งโดยตรงในแพ็กเก็ต IPv6 โดยมีฟิลด์ Next Header เป็น 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 ที่มี Next Header เป็น 50) บนเครือข่ายและส่งต่อแพ็กเก็ตเหล่านั้นในฮาร์ดแวร์ตามอัตราสาย สิ่งนี้ทำให้มั่นใจได้ว่าโซลูชัน VPN จะไม่พบปัญหาการเชื่อมต่อและให้ประสิทธิภาพที่เทียบเท่ากับการเชื่อมต่อ UDP หรือ TCP

ตั้งค่าการหมดเวลา NAT และไฟร์วอลล์ stateful ให้เพียงพอ

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

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

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

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