OpenVPN remote-random: סדר מעורבב, מנהרה אחת
remote-random מערבב את סדר ה-remotes המוגדרים בזמן החיבור. הוא לא מחליף את היציאה שלך בכל בקשה, לא מאזן חבילות ולא משנה מנהרה פעילה.
ההנחה היא שהוספת remote-random הופכת פרופיל לבריכה מסתובבת, כך שכל חיבור יוצא מכתובת אחרת. מה שההוראה עושה בפועל הוא לערבב את רשימת ה-remotes פעם אחת, כשהלקוח מתחיל להתחבר, ואז לנסות אותם בסדר החדש הזה. המנהרה שלבסוף עולה עדיין מסתיימת בנקודת קצה אחת ונשארת שם לכל אורך חיי ההפעלה.
ההבדל הזה חשוב גם לבדיקות וגם לטענות פרטיות.
מה האפשרות משנה בזמן החיבור
פרופיל לקוח יכול לשאת כמה שורות remote, כל אחת עם שם המארח והפורט שלה. בלי ההוראה מנסים אותן לפי סדר הקובץ; איתה, הרשימה מתחלפת פעם אחת בתחילת ההפעלה והכתובת הראשונה שעונה היא המנצחת. השאר נשארות חלופות לניסיון הזה, לא נתיבים מקבילים. פרופיל עם remote אחד נותן להוראה שום דבר לערבב, וזו הדרך המהירה ביותר לראות אם יש לזה משמעות.
המדריך של OpenVPN מתעד את האפשרות ככזו שמשפיעה על סדר ניסיונות החיבור, וזה בדיוק ההיקף שצריך לצפות לו בהתנהגות.
חיבור מחדש מתחיל מחזור בחירה חדש, כך שהפעלה מאוחרת יותר יכולה לנחות במקום אחר. המנהרה הפעילה לא זזה כל עוד היא עולה.
מיתוס: כל בקשה מקבלת שרת חדש
לאחר ההקמה, המנהרה נושאת את כל התעבורה של אותה הפעלה אל העמית הנבחר. אין בחירה מחדש לכל בקשה, וההוראה אינה מאזן עומסים לחיבורים בודדים: היא מערבבת מועמדים, היא לא מפזרת חבילות. כל יישום שחולק את המנהרה הזו חולק את אותו עמית. כל מה שדפדפן מדווח על היציאה שלו שייך להפעלה, לא לבקשה בודדת.
אם בדיקה מראה שתי יציאות שונות, חפש שתי הפעלות נפרדות ולא אפשרות חכמה אחת. ההבחנה הזו גם מסבירה למה בדיקת דפדפן ובדיקת הורדה יכולות לחלוק כאשר התרחש חיבור מחדש ביניהן.
למה משמשת remote-random-hostname
הוראה שנייה עם שם דומה משנה את שם המארח שמשמש לפתרון, לא את סדר רשימת ה-remotes. היא קיימת לפריסות שבהן שם נפתר לכמה כתובות דרך DNS מסתובב, ויש להשתמש בה רק כשהשירות בנוי לכך. רק שלב הפתרון משתנה; סדר רשימת המועמדים לא.
הפעלתה מפני שהשמות נראים קשורים היא טעות נפוצה. תעודת wildcard או פריסת DNS שלא מצפה לשם המשתנה פשוט לא תפתור או לא תאמת.
קרא את נקודת הקצה שנבחרה מהלוג
תעד באיזה עמית הפעלה השתמשה בפועל לפני הסקת מסקנות. פלט מפורט מציין את הכתובת שמנסים, והפרופיל עצמו מראה כמה מועמדים קיימים. השווה את המספר הזה לכתובת שבלוג לפני שאתה מאשים את הערבוב.
grep -c '^remote ' client.ovpn openvpn --config client.ovpn --verb 4 2>&1 | grep -i -E 'attempting|peer connection' openvpn --help | grep -A2 remote-random head -20 client.ovpn
להשוואת ביצועים, הצמד את נקודת הקצה על ידי הפיכת ה-remotes האחרים להערה, כך שהמשתנה הנבדק יהיה הפרוטוקול או הלקוח ולא הנתיב. לשאלת פרטיות, הערך את זהות השירות ואת התיעוד שלו כשלם; בחירה ראשונה מעורבבת לא מוחקת קובצי cookie, לא מסירה התחברות לחשבון ולא הופכת שני מפעילים לשווים.
שמור יחד את חומר האמון המסופק ואת קבוצת נקודות הקצה הנתמכת. ערבוב מחדש משנה רק את הסדר שבו מנסים את הקבוצה הזו.