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

שתי שאלות, לא תווית אחת

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

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

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

מה Network Extension מספק

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

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

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

מה System Extensions משנה

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

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

systemextensionsctl list
scutil --nc list

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

מה לבדוק עבור תסמין נתון

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

SymptomFirst place to look
No VPN entry at allConfiguration profile or scutil list
Client installed, nothing happensExtension activation state
Tunnel up, private host unreachableTunnel provider routes and policy
One app blocked, others fineFilter or app proxy provider

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

log show --last 10m --predicate 'process == "nesessionmanager"'

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

אישור, MDM והמיתוס של הרחבת הליבה

ב-Mac מנוהלים שלב האישור שייך לפרופיל MDM, ומשתמש שלוחץ Allow בהגדרות System Settings עשוי עדיין להיחסם על ידי מדיניות שלא עודכנה. שאלו את צוות שולחן העבודה איזה מנגנון מאשר את ההרחבה עבור אותה קבוצה לפני שתבקשו מהמשתמש ללחוץ על משהו.

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

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

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