לבדוק שמנהרה מפוצלת עובדת: תוצאת IP אחת אינה מבחן
רשמו אילו זרימות צריכות להשתמש במנהרה ואילו צריכות להישאר ישירות, ואז בדקו את שני הצדדים, את פיצול ה-DNS ואת מקרה הכשל.
דף דפדפן אחד שמציג כתובת IP כמעט אינו מוכיח דבר על מנהרה מפוצלת. הכתובת הנראית יכולה להיות הנכונה מהסיבה השגויה, וזרימה מוחרגת לעולם אינה נבדקת דרכו. רשמו את התוצאה הצפויה לפני הבדיקה: איזו אפליקציה או יעד צריכים להשתמש במנהרה, מה צריך להישאר ישיר, ומה צריך לעצור כשהמנהרה נכשלת. בלי התוכנית הזאת כל מספר סביר נראה כמו הצלחה.
המיתוס: חיפוש כתובת מוכיח כיסוי
בדיקת ה-IP עונה על שאלה אחת: מה העולם החיצון רואה מאפליקציה אחת ברגע אחד. היא אינה אומרת דבר על קידומת פנימית, פרופיל דפדפן שני או שם שאמור להיפתר באופן פרטי. היא גם אינה אומרת דבר על כשל, וזה החצי של תכנון מנהרה מפוצלת שנשבר בייצור.
דף כתובת גם אינו יכול להראות את המסלול, את הפותר או את מדיניות הכשל. התייחסו אליו כתצפית אחת, לא כפסק דין.
בדקו זרימה כלולה וזרימה מוחרגת
שלחו בקשה בלתי מזיקה מהאפליקציה שאמורה להיות כלולה, או אל הקידומת שאתם מצפים שתעבור במנהרה, ותעדו את המקור, היעד, משפחת הכתובות והנתיב שנצפה. עשו אותו דבר עבור זרימה שאמורה להישאר ישירה. הצד המוחרג הוא זה שאנשים מדלגים עליו, והוא הראיה היחידה לכך שהפיצול מכוון ולא מקרי. תהליך עזר יכול לשאת זהות מדיניות נפרדת, לכן בדקו בתהליך שמחזיק בסוקט.
flow: Firefox to intranet.example:443, IPv4, source 10.8.0.6, tunneled
flow: Firefox to 1.1.1.1, IPv4, source 192.0.2.20, direct
לכן בדיקה באפליקציה הלא נכונה יכולה להראות את ההיפך ממה שהתכנון מתכוון. רשמו את ארבעת השדות לשני הצדדים לפני הסקת מסקנה.
הוסיפו DNS ואת מקרה הכשל
שאלו את פותר המערכת ואת הפותר שהאפליקציה משתמשת בו, ואז השוו את התשובות לכתובת היציאה שהאתר מדווח עליה. שני השכבות יכולות לחלוק בכוונה, וחיפוש דפדפן אחד אינו בודק את מדיניות מערכת ההפעלה. מעטפת הופכת את ההשוואה לחזרתית: שברו את המנהרה בכוונה, ואז שלחו בקשה שהדפדפן לא שמר במטמון; דף שמגיע מהמטמון אינו אומר לכם דבר על הכיוון שאליו הלך המסלול החלופי. תעדו מה קרה בפועל ולא מה שהתכנון חזה.
curl -s https://ifconfig.me
nslookup intranet.example
מנהרה מפוצלת שנכשלת סגורה ומנהרה שנכשלת פתוחה נראות זהות עד ששוברים את המנהרה בכוונה. תעדו איזו התנהגות צפיתם, לא איזו ציפיתם.
חזרו על הבדיקה לאחר שינוי המצב
חזרו על אותן תצפיות לאחר התחברות מחדש, החלפת רשת ועדכון אפליקציה רלוונטי. החרגה שמורה יכולה להמשיך להצביע על נתיב או זהות אפליקציה שאינם קיימים עוד, והתכנון מפסיק בשקט להתאים לתיעוד שלו. שלושת האירועים האלה הם המקומות שבהם מנהרות מפוצלות נסחפות, וכל אחד מהם זול לבדיקה חוזרת. בדיקה שרצה רק פעם אחת בפריסה מתארת תצורה שאינה קיימת עוד.
אם תוצאה שונה, מצאו את בעל הכלל ואת שלב העיבוד לפני ששינוי כמה הגדרות בבת אחת. שינוי חמישה דברים ותצפית בתוצאה אחת אינו אבחון, אלא תצורה חדשה.
מה התוצאה צריכה לקבוע
קשרו את התצפיות למדיניות ולגרסת הלקוח שבהם באמת בדקתם. המטרה היא להראות שהפריסה הזאת תואמת את הכיסוי שהיא טוענת לו, ולא שכל אפליקציה עתידית תהיה פרטית. זו טענה צרה יותר, והיא זו שאתם באמת יכולים לתמוך בראיות. כתבו את הטענה, את הגרסה ואת תוצאות ארבעת השדות ברישום השינוי.
אז הסוקר הבא יכול לדעת אם התכנון השתנה או הבדיקה. מנהרה מפוצלת מאומתת כששני הצדדים, פיצול הפותר והתנהגות הכשל תואמים את מה שרשמתם בהתחלה. תוצאת IP אחת אינה מאמתת אף אחד מהם.