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

מה באמת מתאים לפעולת ההשלכה

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

לכן ההיקף של blackhole מדויק וקל לניסוח: הוא מכסה את הקידומת, בטבלה, עבור משפחת הכתובות הזו. הוא אינו מכסה יעד שטבלה אחרת תנצח בו, ואינו מכסה IPv6 רק מפני שקידומת ה-IPv4 מושלכת.

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

blackhole אינו זהה ל-unreachable או prohibit

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

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

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

כיצד הוא משתווה למתג חירום

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

MechanismWhat it blocksWhat it missesHow failure looks
Blackhole routeDestinations matching the prefix and tableOther tables, other address families, traffic with a different routeSilent timeout
Firewall kill switchEgress not bound to the tunnel interfaceRules that are too broad can break the endpoint or DHCPDropped packets with counters
WireGuard AllowedIPsDestinations not routed into the interfaceTraffic that never enters the interface at allNo tunnel route, direct egress

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

AllowedIPs של WireGuard הוא ניתוב במפתח הצפנה, לא חומת אש. הוא מחליט אילו קידומות יעד מתקבלות בממשק, ופרופיל שמפרט רק את תת-הרשת של המנה פשוט משאיר יעדים אחרים למסלול ברירת המחדל הרגיל. לכן פרופילי מנה מלאה משתמשים ב-0.0.0.0/0 ולכן wg-quick גם מתקין כללי חומת אש כשהוא יכול.

השאירו את נקודת הקצה של המנה מחוץ להשלכה

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

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

IPv6 זקוק לרשומה משלו ולסקירה משלו. עיצוב שמשליך IPv4 ל-blackhole ומשאיר את IPv6 על מסלול ברירת המחדל מדליף בדיוק את התעבורה שהמדיניות נועדה לעצור, והטעות בלתי נראית בבדיקה של IPv4 בלבד.

הטמיעו אותו עם טיימר והחזרה

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

sudo ip route replace blackhole 10.0.0.0/8
ip route get 10.1.2.3
sudo systemd-run --on-active=60 /sbin/ip route del blackhole 10.0.0.0/8

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

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

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