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

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

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

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

nmcli -f connection.id,connection.uuid,ipv4.never-default,ipv4.routes,ipv4.dns connection show office-vpn

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

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

ip -4 rule show
ip -4 route show table all

שני יעדים, השוואה אחת

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

ip -4 route get 10.40.0.20
ip -4 route get 203.0.113.20

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

אל תדרשו משני הלקוחות להדפיס טקסט זהה. ב-OpenVPN ‏redirect-gateway def1 מבוטא בדרך כלל כשני מסלולי חצי-קידומת במקום מסלול ברירת מחדל אחד, ומנהל שמציג אותם אחרת אינו שגוי בשל כך. שפטו לפי הכיסוי, שזה מה שהחיפושים מראים, ולא לפי העיצוב.

היכן שני הלקוחות נבדלים באופן לגיטימי

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

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

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

שמרו על השוואה נקייה

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

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

מדריך הגדרות IPv4 של NetworkManager מגדיר במדויק את never-default ואת מאפייני המסלול השמורים, וכדאי לקרוא אותו לפני שמשנים ערך מנוהל. וזכרו את היקף ההשוואה הזו: היא מכסה IPv4 ואינה אומרת דבר על מדיניות IPv6 המקבילה, שיש לה ברירות מחדל משלה ודרך משלה להפתיע אתכם.

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