EBGP לעומת IBGP
הן EBGP והן IBGP הם מונחים המשמשים עם פרוטוקול הניתוב BGP. במונחים תיאורטיים, ההבדל העיקרי בין השניים הוא ריצות EBGP בין שני נתבי BGP במערכת אוטונומית שונה (AS), עם זאת, IBGP פועל בין שני נתבי BGP באותו AS. לפני שנדון בהבדלים בין EBGP ל-IBGP, הבה לנו הבנה בסיסית של EBGP ו-IBGP.
מה זה EBGP?
BGP פועל בין נתבים במערכות אוטונומיות שונות. כברירת מחדל, ב-EBGP (הצצה בשני AS שונים), ה-IP TTL מוגדר ל-1, מה שאומר שעמיתים מקושרים ישירות.
במקרה זה, כאשר החבילה חוצה נתב אחד, TTL הופך ל-0 ואז החבילה תישמט מעבר לכך.במקרים בהם שני השכנים אינם מחוברים ישירות, למשל, ציוץ עם ממשקי loopback או הצצה כאשר המכשירים נמצאים במרחק של מספר דילוגים, עלינו להוסיף את הפקודה "neighbor x.x.x.x ebgp-multihop"
אחרת, שכנות BGP לא תוקם. בנוסף, עמית EBGP תפרסם את כל המסלולים הטובים ביותר שהיא מכירה או שלמדה מעמיתיה (בין אם עמית EBGP או עמית IBGP), מה שלא, במקרה של IBGP.
מה זה IBGP?
ב-IBGP, אין הגבלה על כך שכנים צריכים להיות מחוברים ישירות; עם זאת, עמית IBGP לא יפרסם את הקידומת שלמד מעמית IBGP לעמית IBGP אחר. הגבלה זו קיימת כדי למנוע לולאות בתוך אותו AS. כדי להבהיר זאת, כאשר מסלול מועבר לעמית EBGP, מספר ה-AS המקומי מתווסף לקידומת ב-as-path, כך שאם נקבל בחזרה את אותה חבילה המציינת את ה-AS שלנו ב-as-path, אנו יודעים שזהו לולאה, והחבילה הזו נשמטת. עם זאת, כאשר מסלול מפורסם לעמית IBGP, מספר ה-AS המקומי אינו מתווסף ל-as-path, מכיוון שהעמיתים נמצאים באותו AS.
כדי להימנע מלולאות באותו AS, יש שתי שיטות בשימוש.
1. טופולוגיה רשתית מלאה: בכך, כל הנתבים באותו AS צריכים להיות מחוברים זה לזה. לדוגמה, אם יש לנו N נתבים, אז אנחנו חייבים N (N-1)/2 הפעלות IBGP. נוכל להימנע מכך על ידי הצגת מחזירי מסלול.
2. שימוש במחזירי מסלול: זוהי שיטה חלופית להתגבר על תרחיש רשת מלאה. במקרה זה, מפגשי IBGP נקבעים עם נקודה מרכזית. נקודה מרכזית זו נקראת Route Reflector ושאר נתבי ה-IBGP נקראים route reflector clients.
מה ההבדל בין eBGP ל-iBGP?
1. EBGP מציץ בין שני AS שונים, בעוד ש-IBGP נמצא בין אותו AS (מערכת אוטונומית).
2. מסלולים שנלמדו מעמיתים eBGP יפורסמו לעמיתים אחרים (BGP או IBGP); עם זאת, מסלולים שנלמדו מעמיתים ל-IBGP לא יפורסמו לעמיתים אחרים ל-IBGP.
3. כברירת מחדל, עמיתים של EBGP מוגדרים עם TTL=1, מה שאומר שהשכנים מחוברים ישירות, מה שלא במקרה של IBGP. אנו יכולים לשנות התנהגות זו עבור EBGP באמצעות הפקודה "שכן x.x.x.x ebgp-multihop". Multihop הוא המונח המשמש ב-EBGP בלבד.
4. לנתיבי EBGP יש מרחק מנהלתי של 20, בעוד ל-IBGP יש 200.
5. הקפיצה הבאה נשארת ללא שינוי כאשר המסלול מפורסם לעמית IBGP; עם זאת, הוא משתנה כאשר הוא מפורסם לעמית EBGP כברירת מחדל.
ניתן לשנות את התנהגות ברירת המחדל של IBGP על ידי הפקודה "neighbor x.x.x.x next-hop-self"; זה משנה את הקפיצה הבאה, תוך כדי פרסום, כמסלול מקומי.