VPN Pi עם כמה נתבים: שימו כל נתיב במכשיר שמחליט
נתב במורד הזרם מוסיף תת-רשת לקוחות שנייה, וכל אחד מארבעה מכשירים מחזיק החלטה אחת. הציבו את הנתיבים, בדקו את המקור, ואז בדקו מלקוח אמיתי.
הצבת קופסת Wi-Fi מאחורי ה-Pi הופכת החלטת ניתוב אחת לארבע, והתוכנית נשברת כשכל הארבע מתקבלות במכשיר אחד. השאלה הראשונה אינה איזה נתיב להוסיף. אלא אם הקופסה החדשה מגשרת או מנתבת, כי התשובה הזו קובעת כמה תת-רשתות קיימות ואילו מכשירים חייבים ללמוד עליהן. בחרו קודם את מודל החיבור; כל נתיב נובע ממנו.
גישור או ניתוב: הבחירה שקובעת את המספר
גשר שם את הלקוחות החדשים באותה תת-רשת שה-Pi כבר משרת. תת-רשת אחת, רשות DHCP אחת, ואין מסירה לניתוב. זה הסידור הפשוט יותר והנכון כשרשת לקוחות נפרדת מעולם לא הייתה דרישה. קישור מנותב הוא עיצוב אחר: הקופסה שומרת על תת-הרשת שלה, והקידומת הזו חייבת להינשא לכל מקום שהתעבורה הולכת.
שאר התוכנית שומר על הנתב במורד הזרם ומשמר את כתובות המקור של הלקוחות. היעד הוא רשת VPN פרטית אחת, לא יציאת אינטרנט מלאה. כתבו את המודל לפני הכתובות, כי הרשימה למטה היא רק דוגמה לחיבור מנותב.
client subnet 10.41.0.0/24
client gateway 10.41.0.1
router-to-Pi link 192.168.71.2
Pi on that link 192.168.71.1
private target 10.72.9.0/24
מי מחליט מה
| Decision owner | Entry that encodes the decision | Failure when the entry is missing |
|---|---|---|
| Pi VPN host | Return route for 10.41.0.0/24 via 192.168.71.2, and a tunnel route for 10.72.9.0/24 | Replies to downstream clients die at the Pi |
| Owner of the remote network | A path for 10.41.0.0/24 over the permitted tunnel | Replies stop at the first unaware hop |
| LAN router behind the Pi | Specific route for 10.72.9.0/24 via 192.168.71.1, or a suitable default | Clients never send private traffic to the Pi |
| Client machine | Default via 10.41.0.1, or a specific entry for 10.72.9.0/24 | The private network is unreachable from the client |
כל מכשיר מקבל החלטה אחת, ואף אחד לא יכול לקבל החלטה של אחר במקומו. ל-Pi דרושים שני רשומות, לא אחת, ונתיב החזרה הוא זה שאנשים שוכחים. תעבורה מועברת מגיעה נכון לרשת הפרטית ואז מתה בדרך חזרה, כי ל-Pi אין מושג איפה 10.41.0.0/24 חי. זה נראה כמו בעיית חומת אש ולמעשה זה נתיב חסר.
גם הצד המרוחק צריך נתיב משלו. אם השירות בקצה המרוחק לא יודע שאפשר להגיע ל-10.41.0.0/24 דרך המנהרה שלכם, התשובות נעצרות בקפיצה הראשונה שאין לה תשובה. הוסיפו את שני הכיוונים לפני קריאת מסנני מנות.
הקפיצות הבאות מגיעות מהחיבור
הקפיצה הבאה חייבת להיות כתובת ברשת שהמכשיר באמת יכול להגיע אליה. הכתובת הציבורית של עמית ה-VPN אינה הקפיצה הבאה עבור תת-רשת פרטית, ורשת השירות המרוחקת אינה קפיצה הבאה כלל. נתיב לשער שאינו נגיש נראה נכון ברשימה ומפיל כל מנה. בדקו שהשער עונה לפני שאתם מאשימים את היעד.
שמרו על עמית ה-VPN החיצוני של ה-Pi נגיש דרך נתיב שכבת הבסיס שלו עצמו. הרשומה הזו נפרדת מנתיבי המטען, וערבובן נותן מנהרה שאינה יכולה להשתקם לאחר שינוי נתיב.
תיעוד הנתיבים הסטטיים מבהיר את ההבחנה בין יעד לשער, אף שכל פלטפורמה נותנת שמות שונים לתפריטים שלה. קראו את התיעוד של המכשיר שלפניכם במקום להעתיק מסך של ספק אחר. הפקודות למטה מראות את צורת הרשומות ב-Linux.
# on the Pi
ip route add 10.41.0.0/24 via 192.168.71.2
ip route add 10.72.9.0/24 dev tun0
# on the downstream router
ip route add 10.72.9.0/24 via 192.168.71.1
מה התרגום עושה למקור
אם הנתב במורד הזרם כבר מתרגם את לקוחותיו לכתובת המעבר, ה-Pi רואה מקור מתורגם אחד במקום הכתובת של כל לקוח. זהו עיצוב אחר מזה שמשמר את המקור למעלה. הוא משנה מדיניות מבוססת מקור, רישום, ואיזה צד יכול ליזום חיבורים. שני העיצובים עובדים; הם עונים על שאלות שונות.
כאשר שירות VPN במעלה הזרם מסרב לנתב את קידומת הלקוח חזרה, תרגום צר ביציאת המנהרה של ה-Pi יכול להיות פתרון לגיטימי. זו אינה הוכחה שהנתיב החסר היה מיותר. תעדו איזו כתובת הרשת המרוחקת רואה באמת ואיזה נתיב חזרה נוצר.
בחירת נתיב, הרשאת העברה ותרגום מקור נשארים שלוש משימות נפרדות. ניקוי שרשרת NAT משותפת או מתן הרשאה לכל ממשק מפני שלקוח קווי אחד עובד הוא הדרך שבה בדיקה עובדת הופכת למועבר פתוח.
להוכיח את זה ממכונת לקוח
שלחו בקשה ממכונה ב-LAN במורד הזרם, ואז עקבו אחר המקור שלה החוצה ובחזרה. פינג שנשלח מה-Pi לעולם אינו מפעיל את נתיב החזרה במורד הזרם, ולכן פינג מוצלח מוכיח פחות ממה שהוא נראה. הוסיפו בדיקה שנייה מלקוח קווי ב-LAN של ה-Pi עצמו כדי שניתן יהיה להשוות את שני המסלולים. חזרו על שתיהן לאחר אתחול של כל אחד מהמכשירים.
נתיבים שנוספו ביד ותרגומים שמעולם לא נשמרו נעלמים יחד. אז הזוג נראה כמו תקלה חדשה ולא כמו עבודה לא גמורה.
שמרו את מודל החיבור יחד עם הנתיבים, השירות הפרטי המותר וכל תרגום בהערה אחת. ההערה הזו היא שמונעת מהאדם הבא להתייחס למיקום האלחוטי כאל שאלת מדיניות ניתוב.