נפילות VPN לסירוגין: מה לתעד בכל פעם
נפילה לסירוגין היא בעיית נתונים לפני שהיא בעיית תצורה. תעדו חמישה שדות בכל אירוע, ואז השוו שלבים לפני שתשנו הגדרות.
נפילות לסירוגין הן בעיית איסוף נתונים לפני שהן בעיית תצורה. תעדו את אותם שדות בכל הופעה, אחרת אי אפשר להשוות בין האירועים. שינוי שלוש הגדרות אחרי כל אירוע משמיד את הראיה היחידה שהייתה לכם.
הנוהל שלהלן אורך כשתי דקות לאירוע ומפיק שורה אחת לכל אירוע. הוא מניח גישה לקריאה בלבד במכשיר שאתם מנהלים.
קבעו את השדות לפני התקלה הראשונה
הכינו את רשימת השדות לפני שמשהו נשבר, כי תבנית שממציאים באמצע אירוע תמיד מפספסת עמודה. חמישה שדות מספיקים להתחלה: השעה המקומית עם ההיסט שלה, הטריגר, השלב שנשבר, טקסט השגיאה המדויק והאם ניסיון חדש הצליח.
הטריגר ראוי לאוצר מילים משלו: חוסר פעילות, חזרה משינה, מעבר בין רשתות, קפיצת עומס, חידוש פרטי הזדהות או לא ידוע. השאירו לא ידוע מסומן כלא ידוע במקום למלא אותו מאוחר יותר מהזיכרון. שדה השלב נושא את הערך הרב ביותר, כי הוא מתעד היכן השרשרת נעצרה ולא מה המשתמש הרגיש. יש להעתיק את טקסט השגיאה מילה במילה, כי ניסוח מחדש מאבד את ההבחנה בין שני קודים דומים.
השאירו חורים כחורים. תבנית שמכריחה תשובה מזמינה המצאות, והקשר מומצא גרוע ממקום ריק.
| Field | Example | Why it earns its place |
|---|---|---|
| Time with offset | 2026-11-03T09:14+08:00 | Orders events across sources in different zones |
| Trigger | resume from sleep | Separates a cause from a coincidence |
| Stage | handshake ok, no route | Names the boundary that failed |
תעדו את אותן חמש עובדות בזמן התקלה
הריצו את אותן פקודות באותו סדר בכל פעם. שתי דקות של פלט עדיפות על תמונה של הסמל במגש, והסדר חשוב כשחותמות הזמן לא תואמות מאוחר יותר.
date -Is journalctl -u wg-quick@wg0 --since "-2 min" --no-pager wg show wg0 latest-handshakes transfer ip route get 203.0.113.10 ping -c 3 -W 2 192.0.2.1
השורה הראשונה חותמת את התצפית בהיסט, וזו הדרך היחידה ליישב שלושה מקורות שנרשמו באזורים שונים. קטע היומן מכסה את מחזור החיים של השירות, ושורת לחיצת היד אומרת אם העמית השיב בכלל. חיפוש המסלול נוקב בשם הממשק שאליו הייתה משתמשת יעד מסוים, וזה אינו אותה עובדה כמו קיומו של הממשק. פינג לכתובת המנהרה מראה אם משהו חוצה את הקישור, לא אם הצד השני נגיש.
רשמו שורה אחת לכל אירוע ביומן מתמשך, עם השדות האלה ותו לא. אחרי חמישה או שישה רשומות, מיינו לפי טריגר ואחר כך לפי שלב. דפוסים מופיעים כזוגות חוזרים, וזוג שלעולם לא חוזר הוא כנראה צירוף מקרים.
אתרו את השלב שנשבר
קישוריות מקומית, מצב העמית, מסלולים ופתרון שמות נכשלים במקומות שונים, וכל אחד משאיר את העקבה שלו. אם הממשק קיים אבל אין מסלול שמצביע עליו, התקלה היא מדיניות מקומית. אם חותמת הזמן של לחיצת היד מפסיקה להתקדם בעוד הממשק נשאר למעלה, התקלה נמצאת במעלה הזרם.
פתרון שמות שייך לאותו תיעוד. פותר שהלך אחרי המנהרה ביום שני ואחרי הרשת המקומית ביום שלישי מייצר תקלות שנראות אקראיות בשכבת היישום.
לגישה מורשית לשרת, תאם את אותו ניסיון ולא חיבור מחדש סמוך. שמרו את חותמות הזמן המקוריות ורשמו כל היסט בנפרד, כי המרתן במקום מוחקת את הראיה להמרה. ניסיון אחד, סט חותמות זמן אחד, מסקנה אחת.
השוו תנאי אחד בכל פעם
השוואה מבוקרת משנה תנאי משמעותי אחד ומשאירה את הריצה שנכשלה לצד זו שהצליחה. העבירו את המכשיר לרשת אחרת, או בטלו חריג אחד, ואל תשנו שום דבר אחר באותו שלב.
שמרו את הריצה שנכשלה בתיעוד. מחיקתה לטובת זו שעובדת משליכה את הראיה היחידה לגבול שאתם מנסים לאתר.
שתפו קטע, לא את הפרופיל
לפני שליחת משהו, הסירו סיסמאות, אסימונים, מפתחות פרטיים, זהויות לא קשורות ומטענים. פרופיל מלא הוא סוד תצורה ולא סיכום חיבור, ואין לו מקום בכרטיס.
שלחו את הקטע עם חמשת השדות ואמרו איזה שלב לדעתכם נכשל. כך מנהל יכול לבחון את הגבול שציינתם במקום לגלול בצילומי מסך של סמל מנותק. אם הגבול עדיין לא ברור, הצעד הבא הוא תיעוד מבוקר נוסף, לא שינוי הגדרות נוסף.