למה מסלול מקומי מנצח את נתיב ברירת המחדל של ה-VPN
רשת משנה מחוברת ונתיב ברירת מחדל רחב דרך המנהרה הם שני סוגי מסלול שונים. קראו את בחירת הגרעין, ואז תקנו חפיפה בלי לערם נתיבי מארח.
המדפסת על השולחן ממשיכה לעבוד אחרי שהמנהרה עולה, בעוד שרת במשרד השני נפתר בשקט למשהו מקומי. שתי ההתנהגויות באות מאותו כלל: המסלול הספציפי ביותר מנצח, וקידומת שמחוברת ישירות היא ספציפית ככל האפשר. בדרך כלל זה העיצוב שאתם רוצים, וכך גם טווח פרטי כפול גונב כתובת מרוחקת. קריאה של בחירת הגרעין תחילה הופכת כשל מסתורי להשוואת קידומות.
קידומת מחוברת ספציפית יותר מנתיב ברירת מחדל
מנהרה מתקינה בדרך כלל נתיב ברירת מחדל או קבוצת קידומות, בעוד שממשק מקומי נושא קידומת מחוברת ועוד מסלול לכל ה-LAN. ביניהם מכריע התאמת הקידומת הארוכה ביותר, כך שיעד בתוך קידומת ה-LAN לא מגיע למנהרה לעולם. לכן מדפסת, עמוד הניהול של נתב ו-NAS מקומי נשארים נגישים כשהמנוי פעיל. לכן גם משאב מרוחק בתוך טווח חופף הולך למכונה הלא נכונה.
מרחב כתובות פרטי אינו ייחודי, ושתי אתרים שבוחרים אותה קידומת נפוצים מספיק כדי לתכנן לקראת זה. כשהטווחים חופפים, התשובה המקומית מגיעה מהר ונראית סמכותית, ולכן קל לקרוא את הכשל בטעות כבעיית התחברות. היעד כן ענה, רק לא זה שהתכוונתם אליו.
קראו את הבחירה שהגרעין היה עושה
שאלו את הגרעין איזה מסלול ישתמש עבור היעד המדויק במקום לקרוא את הטבלה מלמעלה. אחר כך חפשו כללי מדיניות שיכולים לבחור טבלה אחרת. שתי פקודות עונות על שתי השאלות בשניות.
ip route get 10.20.30.41
ip route show table all | grep -E '10\.|default'
ip rule show
הפלט הראשון מציין את הממשק, את הקפיצה הבאה ואת כתובת המקור שהגרעין ישתמש בהן, וזו התשובה שחשובה. ערך dev שמצביע על הגשר המקומי אומר שהחבילה לא נכנסת למנהרה לעולם, ומה שלא תטען לוחית המצב של לקוח ה-VPN. רשימת הטבלאות המסוננת מראה אם טבלה אחרת מחזיקה באותה קידומת, ורשימת הכללים מראה את הסדר שבו מתייעצים עם הטבלאות האלה. כלל מדיניות יכול לשלוח קידומת דרך טבלה מסוימת גם כשהטבלה הראשית לא מסכימה, ולכן הסדר הזה הוא חלק מהתשובה.
גישה מקומית היא הרשאה נפרדת
שיהיה מסלול אינו אותו דבר כמו הרשאה להשתמש בו. רוב הלקוחות יכולים לחסום תקשורת רשת מקומית כשהמנהרה עולה, והגדרה זו היא החלטת מדיניות ולא תוצר של ניתוב. כשירות קרוב ומהימן שייך לעיצוב, הפעילו את אפשרות הגישה המקומית הנתמכת במקום להמציא מסלולים. כשהמכשיר ברשת Wi-Fi ציבורית, השאירו אותה כבויה.
שתי השכבות נכשלות אחרת. נתיב מקומי חסום מייצר פסק זמן למרות שהמסלול קיים, בעוד מסלול חופף מייצר תשובה מהמארח הלא נכון. ההבחנה ביניהם עולה שאילתה אחת וחוסכת אחר צהריים של שינויי חומת אש, וסידור ההעברה מתואר בתוך הערות ההעברה של strongSwan.
תקנו חפיפה בלי ערימות של נתיבי מארח
נתיב מארח לכתובת אחת נראה כמו תיקון של חפיפה ונכשל ברגע שנדרשת כתובת שנייה באותו טווח. עשרים כאלה אחר כך, איש אינו יכול לומר איזו קידומת סמכותית. הפתרונות העמידים הם שינוי מיעון, טופולוגיה מתועדת שנמנעת מהטווח הכפול, או תרגום בקצה אחד. כל אחד מהם עולה זמן תכנון פעם אחת במקום תחזוקה לנצח.
אם באמת נדרש נתיב מארח זמני, רשמו לצידו את הסיבה, הבעלים והתאריך כדי שאפשר יהיה להסיר אותו מאוחר יותר. ואז בדקו את הכתובת והשירות המדויקים ועוד יעד ציבורי, כי שינוי בגישה מקומית שמחריג בשקט יישומים לא קשורים מהמנהרה גרוע מהתקלה המקורית. שמרו את הקידומת המקומית ואת הקידומת המרוחקת כתובות בנפרד; ההרגל הזה מונע מפינג מקומי עובד לעבור הלאה כהוכחה שהמשרד המרוחק נגיש.