למה route-nopull לבד משאיר את שרת הקבצים בלתי נגיש
התעלמות מנתיבים שנדחפו היא חצי מנהר מפוצל. בחרו את בעל הנתיב, הוסיפו את קידומת המשרד ביד, ובדקו שלושה זרמים לפני שאתם קוראים לזה מתוקן.
שרת הקבצים נפתח כשורה, ושיחת הווידאו בחלון הסמוך מתחילה לגמגם. שום דבר לא איטי ואף MTU לא שגוי: הלקוח שלכם קיבל את רשימת הנתיבים שהשרת הגיש לו, ולכן כל מנה יוצאת כעת דרך חומת האש של המשרד. התיקון אינו עוד דגל כוונון אלא החלטה מי הבעלים של טבלת הנתיבים של הלקוח. ההחלטה הזו שייכת למקום אחד, ואופני הכשל שלמטה אומרים לכם איזה מקום בחרתם בפועל.
החליטו מי הבעלים של טבלת הנתיבים
שלושה בעלים אפשריים. השרת יכול לדחוף נתיבים ושער ברירת מחדל, ואז הלקוח מתקין כל מה שאומרים לו והופך למנהר מלא. פרופיל הלקוח יכול לקחת בעלות בכך שהוא משליך את הדחיפות ונושא את שורות הנתיב שלו. גם מנהל החיבורים של שולחן העבודה יכול להיות הבעלים של ההחלטה דרך מאפייני הנתיב ונתיב ברירת המחדל שלו.
כל בחירה נכשלת בדרך אחרת, ולכן שווה לקרוא את הטבלה לפני עריכת פרופיל. השורה שמתאימה לתסמין שלכם היא הבעלים שבאמת יש לכם.
| Owner | Where it lives | Result |
|---|---|---|
| Server | server config, redirect-gateway, pushed routes | client becomes a full tunnel |
| Profile | route-nopull and its own route lines | tunnel up, office prefix missing |
| Manager | never-default plus its own routes | desktop decides, profile ignored |
בחרו אחד וכתבו אותו. ערבוב של שניים משאיר מארח שנתיב ברירת המחדל שלו סותר את התיעוד שלו עצמו, והמהנדס הבא לא יכול לדעת איזו שכבה ניצחה. מחקו את המפסיד במפורש.
route-nopull מסנן דחיפות, הוא לא מוסיף נתיבים
route-nopull שייך לפרופיל הלקוח, וסדרו באותו קובץ אינו רלוונטי כי הוא רק משליך ערכים שמגיעים מהשרת. הוא משליך נתיבים שנדחפו, כולל נתיב ברירת מחדל שנדחף, בעוד המנהר עולה כרגיל.
התוצאה שאנשים מפספסים היא שאפשרויות DHCP שנדחפו הולכות איתן. גם הגדרות ה-DNS שהשרת שולח מושלכות, ולכן שמות פנימיים מפסיקים להיפתר למרות שהמנהר תקין והשרת נגיש לפי כתובת.
זה משאיר מנהר בלי נתיב לקידומת המשרד אלא אם תוסיפו אחד בעצמכם: route-nopull ואחריו route 10.30.0.0 255.255.0.0 באותו פרופיל. השורה הזו נושאת כתובת ומסכה; היא לא נוקבת בצעד הבא.
צורה חלופית מוסיפה אסימון שער, route 10.30.0.0 255.255.0.0 vpn_gateway, שמצביע על הרשומה אל המנהר לפי שם. מייבאים שונים בשאלה אם הם מתרגמים את הווריאנט הזה, לכן בדקו את החיבור השמור אם הרשומה חסרה בטבלת הליבה.
אמתו בבדיקות נתיב, לא בפינג
פינג אומר לכם שמשהו ענה. בדיקת נתיב אומרת לכם איזה ממשק הליבה הייתה בוחרת, וזו השאלה שבאמת שאלתם. ארבע פקודות קצרות מפרידות בין נתיב חסר לנתיב שמצביע על ההתקן הלא נכון.
קראו מה המנהר התקין עם ip route show dev tun0. אין פלט כלל פירושו אפס נתיבים, וזה אינו מנהר מפוצל שעובד, וזו התוצאה הרגילה של הוספת המסנן בלי השורה המפורשת.
לאחר מכן בדקו כתובת משרד אחת עם ip route get 10.30.5.7, וכתובת אינטרנט רגילה עם ip route get 1.1.1.1. השנייה אמורה לנקוב בממשק הפיזי; אם היא נוקבת במנהר, הדחיפה כלל לא סוננה.
לבסוף קראו את ip rule, כי כלל מדיניות שהושאר מניסיון קודם יכול לעקוף את הטבלה שזה עתה תיקנתם. פרופיל נכון עם כלל מיושן מעליו נראה בדיוק כמו פרופיל שבור. מחקו את הכלל שהוספתם בפעם הקודמת לפני שתוסיפו עוד אחד.
תת-רשתות חופפות נראות כמו מנהר שבור
שני טווחים פרטיים יכולים להיות זהים מנקודת המבט של הלקוח, ושם מאשימים מנהר מפוצל במשהו שהוא לא גרם לו. אם המשרד מחלק את אותה קידומת שהנתב הביתי שלכם משתמש בה, נתיב המנהר מכסה את הנתב ורשת הבית נראית כאילו נעלמה.
השוו את הכתובת בממשק שלכם לנתיב שהפרופיל מתקין, תוך שימוש ברשימת כתובות פשוטה לפני שתשנו משהו. החפיפה אמיתית, ואף אפשרות פרופיל לא פותרת אותה. מה שאתם יכולים לתקן הוא השמות, כדי שהאדם הבא יראה שני טווחים ולא אחד.
התיקונים הישרים הם למספר מחדש צד אחד או לתרגם כתובות במשרד. נעיצת נתיב מארח אחד בנתב עובדת עד שכתובת הנתב משתנה, ואז היא הופכת לתעלומה שנייה מעל הראשונה.
גרמו להחלטה לשרוד חיבור מחדש
רשומות שהוקלדו ביד לא שורדות חיבור מחדש, ומנהל חיבורים בונה מחדש את הטבלה בכל פעם שהפרופיל מתחיל. שימו את ההחלטה במקום שבו נוצר החיבור, בין אם זה הפרופיל ובין אם ההגדרות השמורות של המנהל. לאחר מכן הפעילו מחדש את החיבור פעם אחת בכוונה במקום לגלות את ההתנהגות במהלך שיחה. פרופיל שעובד רק עד החיבור מחדש הבא אינו גמור.
תרגלו שלושה נתיבים בבת אחת: מארח משרד לפי כתובת מילולית, אותו מארח לפי שם, ואתר ציבורי רגיל. האמצעי תלוי בשירות השמות שהגדרתם אחרי שהשלכתם את אפשרויות ה-DNS שנדחפו, והוא זה שנכשל בשקט.