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

עקבו אחרי מחשב נייד אחד בחזרה אל הרשת

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

שום דבר ברצף הזה אינו תקלה. נתיב הקליטה עושה את מה שהוגדר לעשות.

ספרו עבודה חצי-פתוחה כמשאב בפני עצמו

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

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

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

swanctl --stats
swanctl --list-sas | grep -c ESTABLISHED

קראו את הגדרות הקליטה לפני שתשנו אותן

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

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

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

grep -rn -E 'block_threshold|cookie_threshold' /etc/strongswan.conf /etc/strongswan.d/
swanctl --stats | grep -i half

תכננו את החזרה, לא רק את המצב היציב

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

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

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

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