שיפור חוויית המשתמש ב-VPN

בדף הזה מפורטות הנחיות למפעילי רשתות, שמטרתן להבטיח שאפליקציות VPN (רשת וירטואלית פרטית) לצרכנים ולעסקים יספקו חוויית משתמש טובה ברשתות שלהם. ‫Android מספקת את המחלקה VpnManager למפתחים כדי ליצור פתרונות VPN, שמשמשים צרכנים ועסקים להצפנת התקשורת שלהם או לניתוב שלה לרשתות שונות.

אנחנו ממליצים למפעילי רשת לפעול לפי ההנחיות הבאות:

  • תמיכה בפרוטוקול IPv6 Encapsulating Security Payload‏ (ESP) (הכותרת הבאה 50) בחבילות ברשת, כדי לוודא שלתעבורה הזו יש ביצועים דומים לאלה של פרוטוקול User Datagram‏ (UDP) או פרוטוקול Transmission Control‏ (TCP) בחיבורים. צריך לאפשר הפעלה של סשנים של ESP במכשירים, או להגדיר פסק זמן ארוך מאוד, ולהעביר אותם בקצב קו.
  • הגדרת תרגום כתובות רשת (NAT) וזמני קצוב (timeout) של חומת אש עם שמירת מצב במשך 600 שניות לפחות לחיבורי UDP ביציאה 4500, כדי להבטיח שפתרונות VPN יוכלו לשמור על קישוריות מהימנה בלי לגרום לעלויות מוגזמות של צריכת חשמל.

תמיכה במנות של פרוטוקול ESP‏ (Next Header 50) של IPv6

‫Encapsulating Security Payload‏ (ESP) הוא פורמט החבילות שמוגדר כחלק מהפרוטוקולים של Internet Protocol Security‏ (IPSec) להצפנה ולאימות של חבילות בפתרון VPN. מערכת ההפעלה Android מטמיעה את פרוטוקול האבטחה הזה בפתרון ה-VPN המובנה שלה.

ברשתות עם תמיכה ב-IPv6, מנות ESP מועברות ישירות במנות IPv6 עם שדה Next Header של 50. אם רשת לא תומכת כראוי בסוגי המנות האלה, היא עלולה לגרום לחוסר קישוריות לפתרונות VPN שמטרתם להשתמש בפרוטוקול הזה בלי לבצע עוד אנקפסולציה של המנות. יכול להיות שהרשת תבטל את המנות האלה בגלל הגדרת חומת האש. לחלופין, מנות ESP עשויות להגיע לנתיבים איטיים ברשת, עם ביצועים נמוכים מאוד של קצב העברת הנתונים בהשוואה לחיבורי TCP או UDP.

ארגון תקינה בנושאי האינטרנט (IETF) ממליץ לאפשר IPsec דרך חומות אש שמשמשות שירותי גישה לאינטרנט לצרכנים. לדוגמה, ראו RFC 6092 סעיף 3.2.4. אפשר לאשר מעבר של חבילות ESP דרך חומות אש בשני הכיוונים, כי אם מכשיר מקבל חבילת ESP שלא שייכת לשיוך אבטחה קיים, המכשיר משליך את החבילה. כתוצאה מכך, המכשיר לא צריך לשלוח חבילות keepalive כדי לשמור על קישוריות ה-VPN, וכך נחסכת צריכת הסוללה. אנחנו ממליצים שהרשתות יאפשרו חבילות ESP למכשירים בכל זמן, או יפסיקו את הפעילות של סשנים של ESP רק אחרי תקופות ארוכות של חוסר פעילות (לדוגמה, 30 דקות).

מומלץ שמפעילי רשת יתמכו במנות פרוטוקול ESP (מנות IPv6 עם Next Header של 50) ברשתות שלהם, ויעבירו את המנות האלה בחומרה במהירות קו. כך אפשר לוודא שלא יהיו בעיות בקישוריות של פתרונות VPN, ושהביצועים יהיו דומים לביצועים של חיבורי UDP או TCP.

הגדרת פסק זמן מספיק ל-NAT ולחומת אש עם שמירת מצב

כדי לשמור על אמינות החיבור, פתרון VPN צריך לשמור על חיבור לשרת ה-VPN לטווח ארוך, כדי לספק קישוריות יוצאת ונכנסת (לדוגמה, כדי לקבל התראות פוש נכנסות, הודעות צ'אט ושיחות אודיו או וידאו). רוב אפליקציות ה-VPN של IPsec משתמשות ב-ESP שעבר אנקפסולציה בחבילות UDP של IPv4 עם יציאת יעד 4500, כפי שמתואר ב-RFC 3948.

כדי לשמור על החיבור הזה, המכשיר צריך לשלוח מנות לשרת באופן תקופתי. החבילות האלה צריכות להישלח בתדירות גבוהה יותר מזו של פסק הזמן של ה-NAT וחומת האש שהוגדר על ידי ספק הרשת. שליחת אותות חיים בתדירות גבוהה דורשת הרבה חשמל בצד הלקוח, ויש לה השפעה משמעותית על חיי הסוללה. הם גם יוצרים תנועת אותות משמעותית ברשת, גם אם המכשיר לא פעיל.

מומלץ למפעילים להגדיל את ערכי הזמן הקצוב לתפוגה של NAT וחומת אש עם שמירת מצב, כדי למנוע פגיעה בסוללה. הזמן הקצוב לתפוגה המומלץ לאנקפסולציית UDP של IPsec (יציאה 4500) הוא 600 שניות או יותר.

ברשתות ניידות, ערכי הזמן הקצוב לתפוגה של UDP NAT הם בדרך כלל נמוכים, כי המחסור בכתובות IPv4 מחייב גורמי שימוש חוזר גבוהים ביציאות. עם זאת, כשנוצר חיבור VPN, הרשת של המכשיר לא צריכה לתמוך בחיבורי TCP לטווח ארוך, כמו אלה שמשמשים להעברת התראות נכנסות. לכן, מספר החיבורים לטווח ארוך שהרשת צריכה לתמוך בהם זהה או נמוך יותר כשה-VPN פועל בהשוואה למצב שבו ה-VPN לא פועל.