מדוע MAC של QFX מופיע ב-EVPN אך לא בטבלת ההעברה
MAC במסד הנתונים של EVPN הוא עובדת מישור בקרה, לא הוכחה שטבלת ההעברה תוכנתה. קראו את ארבעת השלבים לפי הסדר לפני שמאשימים את BGP.
מציאת MAC במסד הנתונים של EVPN מוכיחה שהוא הוכרז או התקבל כמסלול, ולא יותר מכך. טבלת ההעברה היא מבנה אחר, שמתוכנת מאוחר יותר, ולכן אותו MAC יכול להופיע באחת ולהיעדר מהאחרת בעוד כל פרוטוקול מתנהג כראוי. התייחסות לשתי הפלטות האלה כהעתקים זו של זו שולחת מהנדסים בעקבות תקלת BGP כאשר הפער האמיתי הוא מדיניות ייבוא או קפיצה הבאה שלא נפתרה. השאלה שראויה להישאל אינה אם ה-fabric מכיר את ה-MAC, אלא באיזה שלב הוא הפסיק להעביר אותו.
שתי טבלאות שעונות על שאלות שונות
ב-Junos EVPN מסד הנתונים מפרט כתובות MAC לפי מופע יחד עם איך כל אחת הגיעה: נלמדה מיציאת גישה, התקבלה במסלול Type 2, או סומנה כחלק מקבוצת multihoming. המדריך של Juniper show evpn database מכסה את המסננים לפי MAC ולפי מופע שהופכים את התצוגה לקריאה. זו תמצית של מישור הבקרה עם מפתח של מופע ו-MAC, לא הטבלה שהחומרה מחליפה בה מסגרות.
טבלת המיתוג היא מצב ההעברה הזה. שתי הפלטות מפרטות MAC לצד הקשר של VLAN או VNI, וזו בדיוק הסיבה שמשווים אותן שורה אחר שורה, וזו בדיוק הסיבה שההשוואה מטעה. רשומה במסד הנתונים אומרת שהמסלול קיים ושהתקבל למופע; היא לא אומרת דבר על אם הפלטפורמה התקינה אותו להעברה.
מסלול Type 2 נושא את ה-MAC, כתובת IP אופציונלית, תווית או VNI, מבדיל מסלול וקפיצה הבאה שמציינת את ה-VTEP המרוחק. ארבעה דברים יכולים להישבר בין הכבל למסלול הזה: המארח לא נלמד לעולם, המסלול לא מוכרז לעולם, הוא נדחה בייבוא, או שהקפיצה הבאה שלו לא נפתרת. כל כשל משאיר קבוצה אחרת של טבלאות מלאה, ולכן אפשר לאבחן את הרצף מלכתחילה.
למידה מקומית עדיין קודמת
ההנחה הנפוצה היא ש-EVPN משתלט על למידת MAC, ולכן מסד נתונים ריק חייב לרמז על בעיית overlay. למידה מקומית עדיין פועלת בצד הגישה, בדיוק כפי שהיה לפני ש-VXLAN היה קיים: המתג לומד את MAC המקור של מסגרת מורשית ב-VLAN ובשירות הנכונים, ורק אחר כך יוצר עבורה Type 2. למארח שלא שלח שום מסגרת רלוונטית אין מה להכריז. מארח שהמסגרות שלו נזרקות עקב חברות ב-VLAN, מסנן או חבר מושבת באגרגציה נראה זהה מנקודת המבט של ה-overlay.
התחילו בנקודת החיבור והתקדמו עם פקודות לקריאה בלבד. המטרה היא להוכיח שמסגרת מהמארח עברה בשירות המיועד, כי שום דבר בהמשך לא מפצה על מסגרת שלא הגיעה.
show interfaces ge-0/0/1.0
show ethernet-switching interface ge-0/0/1.0
show lacp interfaces ae0
חברי LACP נבחרים חשובים יותר מכך שהצרור פועל, כי אגרגציה יכולה לפעול על חבר אחד בזמן שהתעבורה של המארח מגובבת לקישור שנפל או חסום. מוני ממשק מבדילים מארח שקט ממארח שמפיל, כי מארח שלעולם לא משדר ומארח שהמסגרות שלו נזרקות על ידי סיווג משאירים את אותה טבלה ריקה.
איפה MAC מרוחק הולך לאיבוד
MAC מרוחק נכשל בכיוון ההפוך, ובשקט. מסלול Type 2 מגיע, אבל הוא נכנס למופע רק כאשר יעד המסלול וה-VNI שלו תואמים לתצורה המקומית, והוא הופך לשימושי רק כאשר הקפיצה הבאה נפתרת ל-VTEP נגיש. אי התאמה ביעד המסלול משאירה מסלול תקף בטבלת BGP שאין מופע שמבקש אותו.
קראו את שלוש התצוגות לפי הסדר: נוכחות מסלול, רשומת מסד נתונים, רשומת העברה. הפקודות שלהלן שואלות את אותו MAC בכל שלב, וכתובת הדוגמה שומרת על השוואתיות הפלטים.
show evpn database instance blue mac-address 02:00:00:00:00:5c extensive
show route table bgp.evpn.0 | match 02:00:00:00:00:5c
show route table bgp.evpn.0 | match 02:00:00:00:00:5c extensive
הפלטים האלה עונים על שלוש שאלות נפרדות. מסלול ב-bgp.evpn.0 בלי רשומת מסד נתונים מצביע על מדיניות ייבוא, יעד מסלול או תצורת מופע. רשומת מסד נתונים בלי רשומת העברה מצביעה על תכנות הפלטפורמה, ששייך למסלול הסלמה אחר. מסלול פעיל שהקפיצה הבאה שלו לא נפתרת הוא בעיית תעבורה או תווית, ושום כמות של ניפוי MAC לא מתקנת אותה.
אתחול מחדש שתיקן את זה מוכיח מעט מאוד
כשאתחול מחדש מעלים את הסימפטום, המסקנה המפתה היא שהתצורה בוודאי תקינה. אתחול מחדש מתכנת מחדש כל טבלה מאפס, ולכן הוא גם מסתיר את המקרה שבו רשומה מיושנת הסתירה שגיאת מדיניות; התקלה נוטה לחזור בשינוי הבא, בהתרסקות קישור או בנסיגת מסלול.
לפני כל חלון תחזוקה, תעדו מה האתחול ימחק. שלוש הפקודות האלה מספיקות להשוואה לפני ואחרי, והן לא משנות דבר במכשיר.
show evpn database instance blue
show route table bgp.evpn.0
show version
תיקו את הפלטים האלה עם התאריך וגרסת התוכנה לצידם. דיווח מאוחר יותר שאותו אתחול עבד בעבר הוא רמז ולא הוכחה, וההבדל נהיה גלוי רק כשמישהו שמר את הפלט הקודם.
ארבע תצפיות שמכריעות את רוב המקרים
ארבע תצפיות מכסות כמעט כל מקרה: נקודת החיבור והשירות שלה, ה-MAC כערך דוגמה, מצב המסלול ומסד הנתונים, והגרסה שבשימוש. בחרו MAC שהוא בבירור דוגמה כדי שאיש לא יחשוב בטעות שהוא כתובת ייצור: אוקטט ראשון 02 מסמן כתובת unicast בניהול מקומי, האוקטטים הנותרים פנויים, ולכן 02:00:00:00:00:5c הוא ממלא מקום בטוח.
ואז תנו לתשובות להצביע על השלב שנכשל. היעדר למידה בנקודת החיבור פירושו צד הגישה; מסלול בלי רשומת מסד נתונים פירושו ייבוא; רשומת מסד נתונים בלי מצב העברה פירושה תכנות. יהיה אשר יהיה, מסרו את הפלטים שנאספו יחד עם המארח, הממשק, השירות והגרסה, כדי שהמהנדס הבא יוכל לשחזר את המסלול במקום לחזור על השאילתה.