למה רק לקוח VPN אחד מתחבר מאחורי אותו נתב
המחשב הנייד השני מסתיים בזמן קצוב בזמן שהראשון עובד. השוו את יומן השרת, את התנהגות המעבר של הנתב ואם שני המכשירים חולקים זהות אחת.
שני מחשבים ניידים נמצאים באותה רשת ביתית, וה-VPN של המשרד מקבל בדיוק אחד מהם. השני או מסתיים בזמן קצוב או ממתין עד שהראשון יתנתק, ואיש לא נגע בהגדרת לקוח בין שני הניסיונות. פרטי הכניסה הם אותם אלה שעבדו לפני דקה, וזה הרמז לכך שהאימות אינו התקלה. שלושה מנגנונים יוצרים את התבנית הזאת, והיומן של השרת עצמו אומר מול איזה מהם אתם עומדים.
קראו את יומן השער לפני שאתם נוגעים בלקוח
הרשומה של השרת על שני הניסיונות עונה על השאלה הראשונה, והיא עונה באחת משלוש דרכים. אם הניסיון השני לא מופיע ביומן הזה כלל, החבילה לא הגיעה למאזין מעולם, והבעיה שייכת לנתב הביתי או למסלול של הספק. אם היומן רושם ניסיון ודוחה אותו, המנהרה הגיעה, ולכן מדובר בזהות, ברישיון או בתקרת הפעלות ולא במשהו על החוט. אם היומן רושם הפעלה מוצלחת בזמן שהלקוח עדיין מדווח על כשל, בדקו את מסלול החזרה או את האפשרות ששני לקוחות מקבלים את אותה כתובת מנהרה.
נקודת גישה מהטלפון מפרידה בין המשפחות האלה בזול: הריצו את הלקוח השני דרך נתונים סלולריים בזמן שהראשון נשאר מחובר. הצלחה שם מצביעה על הרשת הביתית, ואותו כשל שם מצביע על השער, מה שמשאיר את הנתב נקי. אף אחת מהתוצאות אינה מכרעת לבדה, אבל כל אחת מהן מסלקת חצי ממרחב החיפוש בניסיון אחד.
רשמו את התוצאה לפני שתשנו משהו, כי שלוש התוצאות של היומן מובילות לשלושה תיקונים לא קשורים. הערה שמציינת איזו משלוש ראיתם שווה יותר מצילום מסך של שגיאת לקוח.
מה הנתב עושה עם GRE ו-NAT-T
PPTP הוא העבריין הקלאסי: ערוץ הבקרה הוא TCP 1723 ואילו מסלול הנתונים הוא GRE, פרוטוקול IP 47. נתבים ביתיים רבים מגיעים עם עוזר PPTP שעוקב אחר חיבור בקרה אחד, כך שלקוח שני מאחורי אותו NAT פותח את ערוץ הבקרה שלו ואז אינו מקבל מסלול נתונים כלל. העברת פורט TCP שמספרו 47 אינה עושה דבר ל-GRE, כי GRE הוא מספר פרוטוקול ולא פורט.
L2TP מעל IPsec מתנהג אחרת מלכתחילה: IKE משתמש ב-UDP 500, מעבר NAT מעביר את המטען המוגן ל-UDP 4500, והעיטוף קיים בדיוק כדי שכמה לקוחות מאחורי כתובת אחת יגיעו לאותו שער. התכנון הזה אינו מונע משער או מקופסה מתווכת להטיל תקרת הפעלות לכל כתובת, ומהספה שני הכשלים נראים זהים. לפרוטוקול המקורי של SoftEther יש אותה מחלקה של בעיה: נתב בלי מעבר עובד מכניס את הלקוח הראשון מהרשת המקומית וזורק את השני. בדקו את מתג ה-ALG או המעבר של הנתב בשני המצבים, כי עוזר שנכתב ללקוח ישן עלול להשחית מנות שלקוח עכשווי שולח.
nc -vz 203.0.113.5 1723
sudo tcpdump -ni any proto gre
תקרות זהות שנראות כמו תקרות תעבורה
הנתב אינו החשוד היחיד, והיומן מבדיל בינו לבין החלופה. כששרת OpenVPN מצמיד שם משותף לכתובת מנהרה אחת, שני המכשירים מקבלים את הכתובת הזאת, ובלי duplicate-cn ההפעלה החדשה דוחפת החוצה את הישנה. הפעלת האפשרות הזאת מחזיקה את שניהם מחוברים אבל משאירה אותם עם זהות אחת, תעודה אחת והחלטת ביטול אחת, וזה גרוע מכפי שזה נראה. אז לא ניתן לבטל את המכשיר השני לבדו לעולם, כך שמתג נוחות מסיר בשקט שליטה שאולי תזדקקו לה בהמשך.
קראו את היומן של השרת ואת קובץ המצב יחד, כי האחד מראה את החלטת האימות והאחר מראה מי מחובר כעת. שתי רשומות שחולקות שם משותף וכתובת וירטואלית אחת מאשרות התנגשות זהות ולא תקרה של הנתב. שערים מסחריים מוסיפים תקרות משלהם, כמו תוכנית שמתירה הפעלה מקבילה אחת, מספר רישיונות או כלל שמתיר הפעלה אחת לכל כתובת ציבורית, וכל הגדרה בנתב אינה משנה דבר מזה.
sudo journalctl -u openvpn-server@server -n 60 --no-pager
cat /run/openvpn/server.status
התאימו את התיקון לרשומה ביומן
דחייה ביומן מחייבת פרטי כניסה נפרדים לכל מכשיר, תקרה גבוהה יותר ממי שמפעיל את השירות, או נקודת קצה שנייה של שער למכונה אחת. אם שום ניסיון שני אינו מגיע לשרת, התיקון המתמשך הוא נתב שמעביר את הפרוטוקול ומחזיק יותר מהפעלה אחת, או תעבורה שהנתב מטפל בה היטב, כמו זרם TCP או UDP יחיד. הבחירה בין אלה היא החלטה על חיי החומרה, לא על הגדרות הלקוח.
אל תעתיקו פרופיל של מכשיר עובד למכונה השנייה ותכריזו שהעבודה נגמרה. זה הופך בעיית חיבור לבעיית בקרת גישה, כי מחשב נייד שאבד אינו ניתן עוד להבחנה מהעותק שעדיין בשימוש. זה גם מסתיר את התקלה המקורית, שחוזרת ברגע שמופיע מכשיר שלישי.
אימות שתי הפעלות חיות
חברו את שני המכשירים בו-זמנית, הריצו בכל אחד את היישום המיועד, ואז חברו מחדש אחד מהם וחזרו על כך. סמל שני שמופיע לרגע אינו מוכיח דבר על תעבורה, והפעלה שנופלת אחרי עשר דקות היא תקלה אחרת עם אחראי אחר. השוו את מה שהשרת מדווח בסוף למה שהמשתמשים ראו, כי שני התיאורים האלה לעתים קרובות חלוקים.
אם שתי ההפעלות שורדות ומעבירות תעבורה, התיקון מחזיק וההערה שכתבתם בהתחלה הופכת לתיעוד של מה שהיה שבור. אם רק אחת שורדת, חזרו לשלב הראשון ובדקו איזו משלוש התוצאות של היומן יש לכם עכשיו, כי התשובה עשויה להשתנות. עוזרים של הנתב יכולים להסתיר בעיה שמופיעה שוב ברשת אחרת, ואילו תקרה לכל כתובת עוקבת אחרי המשתמש ולא אחרי המכשיר. בדיקה מרשת שנייה היא הדרך הזולה ביותר לגלות איזה מהם באמת תיקנתם.