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

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

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

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

תנאי ראשון: איזו קידומת מנצחת

נתיב אל 10.8.0.0/24 גובר על נתיב ברירת מחדל עבור כתובת שבתוכו, בלי קשר למדדים ובלי קשר לסדר המתאמים. לכן לקוח VPN שמתקין נתיב ספציפי ממשיך לעבוד גם כשמופיע מתאם שני עם מדד נמוך יותר: הספציפיות מנצחת לפני שהעלות נשקלת. בדקו עם ip route show את הטבלה שלדעתכם נמצאת בשימוש, ועם ip route get 203.0.113.9 את התשובה שהליבה באמת תיתן ליעד מסוים.

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

תנאי שני: מה המדד עושה ומה הוא לא עושה

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

באורח, ip route show מדפיס את המדד לצד כל נתיב, ו-Get-NetRoute בווינדוס מדפיס InterfaceMetric בתוספת מדד נתיב. קראו את שניהם, כי ההעדפה האפקטיבית יכולה להיות סכום ולא שדה אחד. אם קיימים שני נתיבי ברירת מחדל, זהו הממצא: לאורח יש שתי דרכים החוצה, ומי מנצח הוא פונקציה של מספרים ששינוי חומרה יכול לשנות.

תנאי שלישי: מה האורח באמת החל

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

בדקו את המצב המוחל ולא את המצב המתוכנן. ip -br link מציג את הממשקים שקיימים כעת, ובמארח עם NetworkManager nmcli connection show מציג איזו פרופיל קשור לאיזה התקן. פרופיל שלא הצליח להיקשר משאיר את הממשק למעלה בלי כתובות, מה שנראה כמו בעיית ניתוב והוא בעיית שמות. תמונות מצב משוחזרות מחמירות זאת, כי המצב השמור של האורח עשוי להתייחס לזהויות מתאם שהחומרה החדשה כבר לא מספקת.

שמרו על טופולוגיית המעבדה ניתנת לשחזור

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

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

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

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

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