IKE אומר שהמנהרה פעילה, ש-SA הבן חסר, ושתי האמירות יכולות להיות נכונות בעת ובעונה אחת. יחס בקרה מבוסס אינו שיוך נתונים, ולשני האובייקטים יש תוחלות חיים, משא ומתן ומצבי כשל נפרדים. לדווח על הראשון כקישוריות זה האופן שבו קריאה נגמרת בטענה שהמנהרה פעילה בזמן ששום דבר לא עובד. קראו את רשימת השיוכים ולא את תווית הסיכום של החיבור, כי הרשימה הזו היא המקום היחיד שבו האובייקט החסר נראה. להלן הסדר שבו הרשימה מקבלת משמעות.

שני שיוכים, שתי מטלות

SA של IKE נושא את ערוץ הבקרה: זהויות, מפתחות וההצעות לחילופי הבקרה עצמם. SA בן נושא את הגנת ESP, עם האלגוריתמים שלו והסלקטורים שלו לתעבורה. אימות ויצירת SA בן הולכים בדרך כלל יחד, כי ה-SA הבן הראשון מנוהל בתוך IKE_AUTH, ודווקא האריזה הזו מפתיעה אנשים בכל הנוגע להפרדה.

זה גם מסביר את שתי צורות הכשל שתפגשו. SA בן שנדחה במהלך החליפין הראשוני מוריד בדרך כלל איתו גם את SA של IKE, כך שאינכם רואים כלל ערוץ בקרה מבוסס. SA של IKE שעומד לבדו אומר לעתים קרובות יותר שה-SA הבן הראשון הצליח ושניסיון מאוחר יותר ליצור SA בן נכשל, למשל במהלך חידוש מפתחות. חתימות זמן מפרידות בין המקרים האלה מהר יותר מכל סקירת תצורה.

איזו שכבה סירבה

כאשר SA בן נדחה, ההודעה נוקבת בשכבה. דחיית הצעה פירושה שהצדדים לא הצליחו להסכים על אלגוריתמים, לעתים קרובות מפני שאחד דורש קבוצת סודיות מושלמת קדימה אחרת או צופן שהשני לא יקבל. דחיית סלקטור פירושה שקבוצת התעבורה נדחתה על הסף, וזו טענת כיסוי ולא טענה קריפטוגרפית.

לפעמים היעדר SA בן הוא התכנון. SA של IKE ללא SA בן הוא הרחבה מוגדרת שמשמשת כאשר שיוך הנתונים אמור להיווצר לפי דרישה, ולכן ההיעדר נכון וה-SA הבן מופיע כשמגיעה תעבורה מתאימה. ההערות של strongSwan על IKEv2 מכסים גם את סגנון לפי דרישה וגם את הגדרות ההצעה שקובעות את המקרה הראשון.

בדקו אם קיימת תצורה לפי דרישה או תצורת מלכודת לפני אבחון תקלה. אם SAים בני נוצרים בעצלות, היעדר SA בן במנוחה הוא המצב הצפוי, והמבחן האמיתי הוא אם תעבורה מעלה אחד. המבחן הזה גם מפריד בין תכנון עצל לכשל שקט, כי יצירה שנכשלה משאירה את ההדק ללא מענה ולא רק במנוחה.

ואז שאלו על נתיב הנתונים

ברגע שקיים SA בן, המונים עונים על השאלה הבאה. ip -s xfrm state מדווח על ספירות מנות ובתים לכל שיוך, ו-SA בן שאינו נושא דבר בזמן שאתם מייצרים תעבורה מצביע על התאמה או ניתוב ולא אל שיוך חסר. swanctl --list-sas מדפיס את הסלקטורים של SA הבן לצד המונים האלה, וזה מה שמאשר שהמנה נמצאת בתוך הקבוצה המתקבלת.

הפרידו בדוח בין האימות המוצלח לבין חילופי SA הבן שנכשלו. דוח שאומר שהאימות נכשל שולח את המהנדס הבא אל מאגר התעודות, והמשפט המדויק קצר הרבה יותר: SA של IKE עלה, וה-SA הבן לזרימה הזו מעולם לא התקבל.

קשרו בין שני הקצוות

בשרת שאתם מפעילים בעצמכם, קחו את יומני הלקוח והשער עבור אותו חליפין במקום להשוות שני ניסיונות התחברות מחדש בהפרש של שעה. ההודעות אמורות להתאים בשני הצדדים, ובמקום שבו הן לא מתאימות מצאתם את הצד שהוגדר באופן שגוי.

תקנו את המשא ומתן של SA הבן, ואז בדקו שוב עם תעבורה בתוך הסלקטור המיועד. זה המבחן היחיד שמוכיח שהאובייקט החסר נוכח כעת, כי רשימת שיוכים שמתרעננת במנוחה יכולה להיראות זהה לפני ואחרי התיקון.

מאמרים קשורים