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

השם הוא תווית, לא תנאי

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

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

מצאו את ההצמדה לפני התנאים

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

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

תנאים מוערכים לפי הסדר, וההחלטה הראשונה מנצחת

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

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

דוגמה שמייצאת רק מסלולים סטטיים, עם ההצמדה על הקבוצה:

policy-options {
    policy-statement EXPORT-STATIC {
        term statics { from protocol static; then accept; }
    }
}
protocols bgp group TO-PEER { export EXPORT-STATIC; }

קידומת שנלמדה דרך OSPF במקום שהוגדרה כמסלול סטטי נכשלת בהתאמה ונופלת, יהיה שם המדיניות אשר יהיה.

פעולות משנות עותק, לא את המסלול המקורי

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

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

השוו את התצוגה המוכרזת לציפייה

השתמשו בתצוגה הספציפית לפרוטוקול בעמית בפועל, כגון show route advertising-protocol bgp 192.0.2.1, וקראו אותה בהקשר הנכון של מופע הניתוב. מסלול שנמצא ב-VRF אינו בהכרח עבר את מדיניות הייצוא, ומסלול שמופיע בפלט המוכרז אינו בהכרח התקבל בצד המרוחק. אלה שלושה מצבים נפרדים והם נכשלים בדרכים שונות.

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

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