מסנני מגדלור של Nebula מול חומת אש: מה כל אחד חוסם
רשימות ההיתר של המגדלור קובעות אילו נקודות קצה בשכבת הבסיס עמית מכריז או מנסה. כללי חומת אש שולטים בתעבורה בשכבה העליונה לאחר לחיצת היד.
הביטו בלחיצת יד של Nebula מהקצה הלא נכון ושתי המנגנונים נראים ברי החלפה. האחד קובע אילו כתובות צומת מודיע למגדלור ואילו כתובות מרוחקות הוא ינסה; השני קובע מה רשאי לעבור לאחר שהמנהרה קיימת. מסנן יכול לעצור חיבור לפני שכלל חומת אש כלשהו נבחן, וכלל חומת אש אינו יכול להחיות נקודת קצה שגילוי הסיר. שתי השכבות עונות על שאלות שונות, והסדר שבו הן פועלות הוא המפתח.
עקבו אחר חיבור אחד בארבעה שלבים: הכתובת המקומית המוכרזת, נקודת הקצה המרוחקת הנשקלת, לחיצת היד והתעבורה בשכבה העליונה. לכל שלב התצורה שלו וחתימת הכשל שלו.
התחילו בכתובת המקומית שהצומת מכריז
local_allow_list מסנן את הכתובות המקומיות של מארח זה לפני שהן מדווחות למגדלורים. הרשומות יכולות להיות טווחי כתובות, והתצורה תומכת גם בתבניות של שמות ממשק. זה שימושי כאשר למארח יש גשרי מכולות או ממשקי מנהרה נוספים שאסור שיהפכו לנקודות קצה של עמיתים.
עברו על ממשקי המארח ושאלו לאילו מהם עמית מרוחק באמת יכול להגיע. כתובת גשר Docker היא מקומית לאותו מארח וחסרת תועלת לעמית ברשת אחרת. הכרזה עליה מבזבזת גילוי ועלולה לשלוח עמית לכתובת שלעולם אינה עונה. כל מה שעמית אינו יכול לנתב אליו הוא רעש בתשובת המגדלור.
רשימת היתר צרה בטוחה כאן יותר מרשימת חסימה רחבה. אם קיימות רק רשומות היתר, השארית שאינה מוגדרת מוחרגת; הוספת רשומת חסימה מאוחר יותר משנה את ההיגיון המוגדר כברירת מחדל ודורשת סקירה משל עצמה. השינוי הזה ראוי למבט שני בברירת המחדל.
כעת התבוננו בבחירת נקודת הקצה המרוחקת
remote_allow_list מסנן את הכתובות שמארח זה ישקול עבור עמית מרוחק במהלך לחיצת יד. הוא חל על כתובת שכבת הבסיס, לא על כתובת השכבה העליונה שהעמית ישתמש בה לאחר שהמנהרה תורם.
טווח פרטי יכול להיות שמיש לחלוטין ברשת משרד משותפת וחסר משמעות כאשר שני המארחים נמצאים ברשתות לא קשורות ששתיהן משתמשות ב-10.0.0.0/8. המסנן מאפשר להעדיף את הנתיב שניתן לנתב ולהתעלם מהמקריות.
כאשר עמית נכשל בהתחברות, השוו את הכתובת שמנסים לכלל שמתאים לה. הפעילו את יומני לחיצת היד וקראו את הכתובת המרוחקת שנבחרה; שורת היומן מציינת את נקודת הקצה ששרדה את הסינון, וזה מועיל יותר מרשימת הכתובות שיש לעמית.
מסנן שם ממשק בצד המכריז יכול להסיר את נקודת הקצה לפני שהצד המקבל רואה אותה בכלל. בדקו את שני הצמתים כאשר רק כיוון אחד נכשל.
לאחר לחיצת היד חלים כללי הגישה של השכבה העליונה
כללי חומת האש של Nebula פועלים בתוך השכבה העליונה, לאחר שהמנהרה נוצרה. הם מתאימים מארחים, קבוצות, פורטים ופרוטוקולים, ומחליטים אם חבילה רשאית להיכנס למארח המקומי או לצאת ממנו. הם אינם בוחרים נקודת קצה בשכבת הבסיס.
ההפרדה הזו מסבירה אבחון שגוי נפוץ. מפעיל מוסיף כלל חומת אש לפורט ועדיין אינו מצליח להתחבר, מפני שמסנן המגדלור הסיר את נקודת הקצה היחידה שנגישה. מפעיל אחר פותח את מסנן הכתובות ועדיין אינו מגיע לשירות, מפני שחומת האש של השכבה העליונה דוחה את הפורט.
קראו את הכשל בשכבה הנכונה. לחיצת יד שלעולם אינה מסתיימת מצביעה על גילוי, סינון נקודות קצה או נתיב הרשת. לחיצת יד שהושלמה ואחריה חיבור שירות שנדחה או נזרק מצביעה על חומת האש של השכבה העליונה או על היישום.
קראו את ברירת המחדל כשמערבבים היתר וחסימה
תצורת המגדלור תומכת ברשימות של היתר בלבד, חסימה בלבד ומעורבות, וברירת המחדל לשארית שאינה מוגדרת שונה בין הצורות הללו. רשימה מעורבת זקוקה לברירת מחדל מפורשת למשפחת הכתובות; ההנחה שהשארית מתנהגת כמו התצורה הקודמת היא הדרך שבה נקודת קצה עובדת נעלמת בשקט.
lighthouse:
local_allow_list:
interfaces:
docker0: false
remote_allow_list:
192.168.0.0/16: true
default: false
התייחסו לברירת המחדל כחלק מהכלל, לא כטקסט תבנית. אם ברירת המחדל של המשפחה היא חסימה, כל כתובת שאינה רשומה מוחרגת, כולל טווח משרד חדש שנוסף לאחר כתיבת התצורה.
רשמו אילו כתובות נועדו להיות נגישות ובדקו משני הצדדים. מסנן שעובד עבור זוג עמיתים אחד עלול להיכשל עבור זוג אחר שדרכו המשותפת היחידה משתמשת בכתובת שהרשימה מחריגה.
השתמשו ב-relay כאשר שום נקודת קצה ישירה אינה נגישה
אם כל נקודת קצה מועמדת מסוננת או אינה נגישה, התשובה אינה רשימת היתר רחבה יותר שמחזירה כתובות שאינכם סומכים עליהן. תצורת ה-relay של Nebula מספקת נתיב עמית חלופי כאשר קישוריות ישירה אינה אפשרית.
Relay פותר תחבורה וגילוי, לא הרשאה, והוא אינו מרחיב את חומת האש. חומת האש של השכבה העליונה עדיין קובעת אילו שירותים מותרים, ו-relay אינו הופך את סינון המגדלור למנגנון בקרת גישה.
בדקו את נתיב ה-relay כשנקודות הקצה הישירות מושבתות ואשרו שהשירות המיועד עדיין עובד בעוד שירות לא מיועד אינו עובד. אותה בדיקה אחת מפרידה תיקון תחבורה משינוי מדיניות ושומרת על שתי השכבות ישרות.