אובדן Ping ב-VPN: קבצו בקשות Echo לפני האחוז
שישה בקשות ושלוש תשובות אינם מהווים טענת אובדן של 50 אחוז. קבצו את ההדים לפי מקור, מזהה ורצף לפני שתחלקו משהו.
קובץ לכידה מכיל שש בקשות Echo ושלוש תשובות, ומישהו כותב בכרטיס אובדן חבילות של 50 אחוז. המספר הזה עשוי להיות נכון לגבי הלכידה ושגוי לגבי המנהרה. ייתכן ששש הבקשות שייכות לשני שיחות שונים עם שני חוזי מסירה שונים. קבצו אותן לפני שתחלקו, והיחס מפסיק להיות החלק המעניין בדוח.
שלב 1: הפרידו את הזרמים לפי מקור ויעד
בקשת Echo נושאת מקור ויעד, ושני השדות האלה קובעים לאיזו שיחה היא שייכת. בדיקה ששער מייצר משתמשת בכתובת המנהרה של השער, ואילו בדיקה שמועברת בשם מארח LAN שומרת על כתובת אותו מארח. לצד הרחוק יכול להיות מסלול חזור לאחת ולא לאחרת, מה שגורם לשתי הקבוצות להתנהג אחרת מסיבות שאין להן שום קשר למנהרה.
פצלו את הלכידה לפי השדות האלה לפני שתספרו משהו, ושמרו את היעד כחלק מהמפתח. שני זרמים לעמיתים שונים אינם ניתנים להשוואה גם כשהם חולקים מקור.
רשמו את הקבוצות עם הספירות שלהן, כי השלב הבא קובע אילו תשובות שייכות לאיזו קבוצה. קבוצה עם שלוש בקשות ובלי תשובה מתאימה היא ממצא. קבוצה עם שלוש בקשות ושלוש תשובות היא קו בסיס.
שלב 2: התאימו לפי המזהה והרצף
תבנית Echo ב-RFC 792 נושאת מזהה ומספר רצף, והיא מתייחסת אליהם כשדות שמזווגים תשובה לבקשה שלה. שניהם נדרשים למשימה הזאת. מספר רצף לבדו אינו ייחודי, מכיוון ששולחים או תהליכים שונים יכולים לעשות שימוש חוזר באותו ערך בתוך חלון לכידה אחד. המזהה מצמצם את השולח והרצף מצמצם את המיקום, והזוג יחד הוא מה שהופך התאמה לבת-הגנה.
תשובה הופכת את כיוון הכתובות של בקשתה, כך שהתאמה היא זוג בקשה-תשובה ולא שתי טאפלות זהות. השוו את מקור הבקשה ליעד התשובה ואת יעד הבקשה למקור התשובה, ואז אשרו שהמזהה והרצף תואמים.
שמרו גם את חלון התצפית, כי לכידה ארוכה יכולה להכיל שימוש חוזר חוקי בשני השדות. קיצור החלון להתפרצות אחת מסיר את רוב העמימות הזאת. זה גם הופך את הספירות לניתנות לשחזור לכל מי שקורא את הכרטיס.
tshark -r capture.pcap -Y 'icmp.type == 8' -T fields -e frame.time -e ip.src -e ip.dst -e icmp.ident -e icmp.seq
tshark -r capture.pcap -Y 'icmp.type == 0' -T fields -e frame.time -e ip.src -e ip.dst -e icmp.ident -e icmp.seqשלב 3: השוו טאפלות באותה גבול
אם תרגום כתובות הרשת נמצא בין נקודת הלכידה לעמית, הכתובות בבקשה ובתשובה יהיו שונות מלכתחילה. השוו את הטאפלות בגבול אחד, או נשאו את המיפוי במפורש כדי שההבדל יילקח בחשבון. ערבוב בקשות מלפני התרגום עם תשובות אחרי התרגום ממציא אי-התאמות שלא היו מעולם על החוט.
החליטו על הגבול לפני שמתחילים לספור, וציינו אותו בדוח כדי שהאדם הבא יוכל לשחזר את הקיבוץ. לכידה אחת בצד הלקוח ואחרת בצד השרת הן שני גבולות שונים. כל אחת עונה על שאלה אחרת לגבי היכן התשובה נעלמה.
קבוצת בדיקות מתורגמות יורשת גם את המצב של מתקן התרגום עצמו, שיכול להיות הסיבה האמיתית לכך שתשובה לא מגיעה לעולם. בדקו את המצב הזה לפני שמאשימים את המסלול שמעבר לו.
tcpdump -ni any icmp and host 10.90.0.1 -c 20
tshark -r capture.pcap -Y 'icmp' -T fields -e ip.src -e ip.dst -e ip.ttl | head -20שלב 4: אמרו מה הלכידה יכולה להוכיח ומה לא
פער שנצפה אינו מוכיח שהמארח הרחוק שתק. נקודת הלכידה עשויה לראות כיוון אחד בלבד, מסנן עשוי להפיל את התשובה, או שהחוצץ גלש במהלך החלון. כל אחד מאלה מייצר את אותה היעדרות ומסקנה שונה.
רשמו את מקום הלכידה, את ביטוי המסנן ואת מוני ההפלה לצד הספירות, כי יחס בלעדיהם אינו ניתן לביקורת. שלוש השורות האלה הן מה שהופך את המספר לניתן להגנה בהמשך.
אחר כך הפרידו בין מה שהתצפית קובעת לבין מה שהיא מרמזת, בשני משפטים ולא באחד. המשפט הראשון מציין את הספירות ואת הגבול. השני מציין את ההשערה ומה יאשר אותה.
כשהשאלה היא אם מסלול מסוים מפיל חבילות, בדיקה מבוקרת עם כתובת מקור מפורשת היא ראיה חזקה יותר מספירה פסיבית של תעבורה מעורבת. שלחו אותה מאותה מכונה, באותו זמן, לאותו עמית. שנו משתנה אחד וההשוואה מחזיקה.
דווחו על הקבוצות ועל הגבול הבא
לדוח יש שלוש שורות: הגדרת הקבוצה, הספירות המותאמות בתוך כל קבוצה והגבול שבו נעשתה ההשוואה. אז הקורא יכול לראות שקבוצה אחת ענתה במלואה ואחרת לא, מה שמצביע על מסלול או הרשאה ולא על אובדן אקראי.
צרפו את קובץ הלכידה ואת ביטויי המסנן כדי שאפשר יהיה לשחזר את הקיבוץ. סיכום בלי הקובץ הוא טענה ולא תוצאה.
ping -c 5 -I 10.80.0.6 10.90.0.1
ping -c 5 -I 10.30.0.25 10.90.0.1
tshark -r capture.pcap -Y 'icmp.type == 8 || icmp.type == 0' -T fields -e ip.src -e ip.dst -e icmp.ident -e icmp.seq | sort | uniq -c | headכשקבוצה אחת מציגה חמש תשובות והאחרת אף לא אחת, הממצא הוא שלמקור אחד יש מסלול חזור עובד ולשני אין. זה כרטיס הרבה יותר טוב מאחוז מעורב, והוא מכוון את הבדיקה הבאה למסלול החזור במקום למופע VPN לא קשור.