מה עושה IncludeAllNetworks בפרופיל IKEv2 ב-Mac?
המפתח מגביל את התעבורה למנהרה עם חריגים בשמם. הוא אינו נתיב ברירת מחדל, הוא מתעלם מ-EnforceRoutes, והשער חייב להעביר את מה שהוא מתיר.
בפרופיל IKEv2 מקורי המפתח המעניין אינו תיבת סימון, אלא IncludeAllNetworks, ומה שהוא משנה הוא ההיקף של מה שהמערכת רשאית לשלוח מחוץ למנהרה. הגדירו אותו לערך 1 ו-macOS מתייחס למנהרה כאל הנתיב של כמעט כל תעבורת ה-IP, למעט קבוצה של חריגים שהיא מגדירה ושאותם אפשר להרחיב. מכיוון שהוא יושב במילון פרופיל ולא בתפריט, הוא גם אינו אומר את מה שרוב האנשים מניחים כשהם קוראים את הביטוי לשלוח את כל התעבורה.
מה המפתח משנה בתוך מחסנית הרשת
בלעדיו המנהרה מתנהגת כמו ממשק רשת שאליו מחוברים נתיבים. נתיב ברירת מחדל דרך אותו ממשק לוכד את רוב התעבורה, וכל נתיב ספציפי יותר בממשק אחר עדיין מנצח עבור הקידומת שלו. זהו ניתוב רגיל, ולכן מינהור מפוצל קורה כמעט במקרה.
כשהמפתח מופעל, ההיקף מפסיק להיות העדפת ניתוב והופך למדיניות בדבר איזו תעבורה רשאית לצאת דרך משהו אחר מלבד המנהרה. המערכת עדיין צריכה להגיע לרשת כדי לשמור על החיבור חי, ולכן המדיניות מגיעה עם חריגים במקום להעמיד פנים שהם אינם קיימים. הפעלתו לעולם אינה משאירה את המכונה בלי נתיב עובד כלשהו. מה שמקבלים הוא רשימת נתיבים קצרה מזו שהנחתם, והרשימה הזו מתועדת.
המסקנה המעשית היא שהוספת נתיב אינה מסבירה עוד את התוצאה. אם עדיין מגיעים ליעד ישירות, השאלה אינה איזה נתיב ניצח אלא אם חריג מכסה אותו.
החריגים הם חלק מההגדרה
אפל מתעדת כמה החרגות לצד המפתח הראשי, המכסות רשתות מקומיות, תעבורת Apple Push Notification, שירותים סלולריים ותקשורת מכשירים. לכל אחת תנאי פלטפורמה וגרסה משל עצמה, ולכן אותו פרופיל יכול להתנהג אחרת בין מהדורות macOS.
חלק מההחרגות האלה מהותיות. יש לאפשר את התעבורה הדרושה כדי להקים ולשמור על גישה לרשת, כולל טיפול בפורטל שבוי, אחרת המכונה עלולה להיגמר מחוברת לכלום ולא מסוגלת לתקן זאת.
ואז מגיעות הבחירות המכוונות. לאשר מדפסת ביתית אינו אותו החלט כמו לאשר קידומת של משאב עבודה, ושניהם שונים מהשארת APNs נגיש כדי שהתראות ימשיכו להגיע. רשמו אילו מהן הפעלתם, בתוך הפרופיל עצמו, במקום לגלות אותן מאוחר יותר מדוח תקלה.
למה זה לא אותו דבר כמו נתיב ברירת מחדל
נתיב ברירת מחדל הוא רשומה בטבלת הניתוב, וטבלאות ניתוב מפסידות. קידומת ספציפית יותר מנצחת אותו, חיבור המוגבל ליישום יכול לעקוף אותו, וממשק שני עם מדד טוב יותר יכול להשתלט בלי שאיש נוגע בתצורת ה-VPN.
ההנחיה של אפל בנושא ניתוב מבהירה את ההבחנה: ניתן לעקוף נתיבי ברירת מחדל רגילים בנתיבים ספציפיים יותר, ואילו הגדרת ההיקף הרחבה מגדירה איזו תעבורה המנהרה חייבת לשאת ומה נגרע ממנה. האחד הוא העדפה, האחר קרוב יותר לכלל.
ההבדל הזה משנה גם את אופן אבחון הדליפה. עם נתיב ברירת מחדל בודקים נתיבים ומדדים. עם מפתח ההיקף בודקים את מהדורת הפרופיל, את ההחרגות המותקנות ואת ההתנהגות הספציפית לגרסה, מפני שטבלת הניתוב היא תוצאה של החלטה שהתקבלה קודם.
EnforceRoutes הוא מתג אחר
EnforceRoutes נשמע כמו הגרסה המחמירה של אותו רעיון, ואנשים עורמים את השניים מתוך אמונה שיותר מפתחות פירושם יותר כיסוי. אפל מתעדת שהוא מתעלמים ממנו כאשר IncludeAllNetworks מופעל, ולכן המפתח השני לא קונה דבר בצירוף הזה.
התייחסו אליו כאל חלופה לתצורות שאינן משתמשות בהיקף הרחב, לא כאל חיזוק. אם אינכם יכולים להסביר מה כל מפתח עושה בפני עצמו, הוספת שניהם רק מקשה על סקירת הפרופיל.
על מה השער ובעל הפרופיל חייבים להסכים
הגדרת לקוח אינה יכולה לאלץ שרת להעביר תעבורה שלעולם לא הוגדר להעביר. השער צריך לקבל את החיבור, לחלק כתובות, לספק נתיב חזרה לקידומות שאליהן אתם מתכוונים להגיע, ולספק DNS בכל הסדר שבחרתם. אם הוא מנתב רק קידומת אחת, ההיקף הרחב של הלקוח מייצר תעבורה שמגיעה ומתה. בקשה אחת ליעד מחוץ לנתיבי השער מוכיחה זאת בתוך דקה.
מנהרה בבעלות יישום היא מקרה נפרד שוב. הספק חייב לממש או לחשוף את ההתנהגות הנתמכת; התקנת פרופיל IKEv2 מקורי שני אינה משנה מנהרה שיישום אחר כבר מנהל, ומפתח IKEv2 אינו הוראת OpenVPN שאיזה לקוח אחר יקרא.
לרשימת המפתחות הנוכחית ולתנאי הגרסאות, קראו את תיעוד המטען של IKEv2 של אפל ולא פרופיל שמישהו העתיק לפני שנים.
קבלו מהדורת פרופיל כמכלול
לפני שאתם משנים Mac המנוהל מרחוק, רשמו את גרסאות ה-macOS המיועדות, את יציאת האינטרנט המיועדת, את הקידומות הפרטיות שחייבות להישאר נגישות, ואת כל החרגה שאתם מפעילים. לאחר מכן שמרו נתיב התאוששות שאינו תלוי במנהרה שאתם עומדים לשנות.
בדקו בקשות ציבוריות חדשות, בקשות פרטיות, את שתי משפחות הכתובות ואת פתרון השמות, וכן בדקו את המהדורה המותקנת ולא את קובץ התכנון. אם משהו עדיין עובר ישירות, החליטו אם זהו חריג מתועד, הקשר חיבור אחר או שגיאת תצורה אמיתית, ושנו אחד מהשלושה במקום להרחיב מפתחות לא קשורים.