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

שני התפקידים בלתי תלויים, וכך גם שתי משפחות הכתובות.

מענה בכתובת עצמו אינו מוכיח דבר

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

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

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

בדקו כל משפחת כתובות בנפרד

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

sysctl net.ipv4.ip_forward
sysctl -a --pattern 'net.ipv6.conf.(all|default).forwarding'
nft list ruleset | head -n 40

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

ההעברה היא אחד מארבעה תנאים

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

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

בדקו מהלקוח, לא מהשער

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

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

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

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