האם VPNv4 צריך MPLS בליבה? לא בהכרח
BGP VPNv4 מנהל משא ומתן על הקשר של הפצת מסלולים, ולא על נתיב העברה. הפרידו בין הייבוא, פתרון הקפיצה הבאה והאנקפסולציה שאתם יכולים להפעיל.
הפעלת משפחת הכתובות VPNv4 בין שני נתבים יוצרת רק הקשר של הפצת מסלולים ולא דבר נוסף. היא אינה מתקינה נתיב העברה ואינה אומרת איזו אנקפסולציה תישא חבילת לקוח אל נקודת הקצה המרוחקת. לאחר שמפרידים בין שתי העובדות הללו, השאלה «האם זה דורש MPLS בליבה» הופכת לשאלה צרה יותר וניתנת למענה לגבי מישור הנתונים שהפלטפורמה תומכת בו.
מה משפחת הכתובות באמת מנהלת משא ומתן
BGP מרובה פרוטוקולים נושא את מידע הנגישות של שכבת הרשת VPNv4 תחת AFI 1 ו-SAFI 128, וכל רשומה מצמידה מבדיל מסלול לקידומת ולתווית. הפגישה מנהלת משא ומתן על כך ששני הדוברים יכולים לקודד ולפענח את המידע הזה. מה שהיא אינה מנהלת משא ומתן עליו הוא מישור נתונים. כל מה שאחרי הפסקה הזו עוסק בהעברה, ושום דבר ממנו לא נקבע על ידי עליית הפגישה.
לכן פגישה מוצלחת היא הוכחה ליכולת מישור הבקרה, ולא להעברה. נתב יכול להחזיק אלפי רשומות VPNv4 ובכל זאת להפיל כל חבילת לקוח, וזו הסיבה ששתי מחלקות הכשל מתבלבלות מלכתחילה.
שימו לב לתווית ב-NLRI. זו תווית שירות, הקשורה לקידומת בתוך VRF, ויש לה תפקיד בהעברה כאשר החבילה מגיעה לנקודת הקצה היוצאת. אם התקן מעבר כלשהו קורא אותה, זו החלטת תכנון נפרדת.
קליטה, ייבוא והעברה הם שלושה שלבים
קליטת מסלול, קבלת רשות להשתמש בו והיכולת להעביר באמצעותו מבוצעות על ידי חלקים שונים של ההתקן. BGP שומר את מה שהוא שומע; מדיניות הייבוא והתאמת יעד המסלול קובעות איזה VRF רשאי לשקול אותו; לאחר מכן על מישור ההעברה לפתור את הקפיצה הבאה המוכרזת למשהו שהוא באמת יכול לדחוף לתיל.
| Step in the chain | What has to be true | How it fails quietly |
|---|---|---|
| NLRI exchange | Both speakers negotiate the VPNv4 capability | Session stays up while the family is never activated |
| Import eligibility | A route target on the received route matches the VRF import policy | The route exists in the table but never enters the VRF |
| Next-hop resolution | The advertised next hop resolves to a usable tunnel or label path | Best path is selected, then marked unreachable or unusable |
| Encapsulation | The egress endpoint can decapsulate what the ingress produced | Packets arrive and are discarded for a format mismatch |
בשלב האמצעי הזה נמצאות הכשלים המפתיעים ביותר. מסלול יכול להיות נוכח בטבלת BGP, תקף ואף הטוב ביותר, בעוד שטבלת המסלולים של ה-VRF נשארת ריקה משום שאף יעד מסלול לא תאם את רשימת הייבוא. שום דבר לא רושם שגיאת פרוטוקול, משום שלא התרחשה שגיאת פרוטוקול.
השלב האחרון הוא המקום שבו תמיכת הפלטפורמה נראית. קפיצה הבאה שנגישה בשכבה התחתונה אינה ניתנת לפתרון אוטומטי כשינוע שירות VPN, וההתקן עשוי לדרוש סוג מנהרה מסוים, פעולת תווית מסוימת או את שניהם. קריאת מצב הפתרון מאלפת יותר מקריאת מספר המסלולים.
ליבת IP יכולה לשאת מחסנית שהיא לעולם לא מחליפה
ההבחנה שכדאי לשמור היא בין «הליבה אינה מריצה MPLS» לבין «אין תווית בשום מקום בשירות». אלו טענות שונות, ורק הראשונה עוסקת בהתקני מעבר. RFC 4023 מגדיר נשיאת MPLS דרך מנהרות IP או GRE, וזה המנגנון שמאפשר את הטענה השנייה בליבת IP בלבד.
customer packet + service label
encapsulated in GRE, addressed to the egress tunnel endpoint
forwarded by ordinary IP routers on the outer header
decapsulated at the endpoint, label still meaningful
נתבי מעבר מעבירים לפי יעד ה-IP החיצוני ואינם זקוקים לא לקידומות הלקוח ולא להחלפת תוויות מקורית. בקצה המרוחק מוסרת המנהרה החיצונית ותווית השירות ממשיכה בעבודתה. הליבה העבירה מטען אטום, וזה בדיוק מה שרשת IP טובה בו.
מה שהתכנון הזה לא נותן לכם הוא ערובה אוניברסלית. זו אינה הוכחה שכל נתב פותר כל קפיצה הבאה של VPNv4 דרך כל ממשק GRE, והיא אינה סיבה למחוק תצורת MPLS מקורית שעובדת. זהו דוגמה נגדית לטענה האוניברסלית, והשאלה המעשית נשארת מקומית לפלטפורמה. רשמו את השאלה הזו כמגבלה של הפלטפורמה ולא ככלל פרוטוקול.
עברו את השרשרת על הקופסה עד שהיא נשברת
התחילו מהמסלול שהתקבל ועצרו בשלב הראשון שנכשל, משום שלא ניתן לאבחן את השלבים המאוחרים כששלב קודם שבור. ארבע פקודות מכסות את רוב זה ביישום טיפוסי.
show bgp vpnv4 unicast all summary
show bgp vrf CUSTOMER_A ip route 198.51.100.0/24
show ip route vrf CUSTOMER_A 198.51.100.0
show mpls forwarding-table vrf CUSTOMER_A
קראו אותם כרצף ולא כארבע בדיקות בלתי תלויות. הראשונה מאשרת שמשפחת הכתובות פעילה ושהעמית מחליף מסלולים; השנייה מראה אם הקידומת הגיעה עם קפיצה הבאה שמישה; השלישית מוכיחה זכאות לייבוא; הרביעית מראה אם מישור ההעברה קשר אליו תווית או מנהרה.
לאחר מכן בדקו את נתיב העומס בשני הכיוונים, עם MTU ששורד אנקפסולציה. GRE מוסיף בתים של כותרת, ונתיב שעובר בדיקות קטנות יכול להיכשל בחבילות בגודל מלא בכיוון אחד בלבד, מה שנראה כמו תקלת יישום ולא תקלת תעבורה.
שתי הערות תפעוליות סוגרות את המעגל. GRE הוא אנקפסולציה, לא סודיות, ולכן רשת מעבר לא מהימנה זקוקה להסדר אבטחה נתמך מעליו ולא להנחה. ורשמו איזו אנקפסולציה הפלטפורמה באמת תומכת בו לפני סקירת התכנון, משום שהתשובה האחת הזו קובעת אם ליבת IP בלבד היא בחירה תקפה או תוכנית שאינה יכולה להעביר.