BGP

פרוטוקול ניתוב עיקרי באינטרנט

Border Gateway Protocol או בקיצור BGP הוא פרוטוקול ניתוב המהווה את ליבת מערכת הניתוב של רשת האינטרנט[1]. BGP הוא פרוטוקול ניתוב מבוסס קשר (Path-vector), המתפקד בשכבת היישום של מודל ה-OSI וכן בשכבת היישום של מודל ה-TCP/IP. נתב שפועל באמצעות BGP מנהל טבלה של הרשתות המחוברות אליו, והקשרים ביניהן לבין רשתות אחרות, ומבצע החלטות ניתוב על בסיס הקשרים בין הרשתות ומדיניות המוכתבת בצורה ידנית על ידי מנהל הרשת.

היסטוריה עריכה

BGP נמצא בשימוש באינטרנט מאז שנת 1994.

בשנת 2006 פורסמה הגרסה העדכנית של הפרוטוקול (BGP4) ב-RFC 4271. גרסה זו הרחיבה את השימוש בפרוטוקול גם לרשתות IP בסימון CIDR.

אופן פעולת הפרוטוקול עריכה

לכל מערכת אוטונומית (AS - Autonomous System) לניהול רשת באינטרנט מוקצה מספר מזהה ייחודי (ASN - Autonomous System Number). כל AS מהווה צומת ניתוב שמשתמש בפרוטוקול BGP כדי לבנות מסלולי ניתוב דינמיים כדי להתממשק מול AS-ים אחרים[2].

כדי לבנות מסלולים, כל AS מפרסם את ה-ASN ורשימת תחומי כתובות (Prefix) שיש ברשותו והוא יכול להעביר אליהם תעבורה בחבילת BGP Announcement לשכנים שלו. כל שכן מקבל את ההודעה, אוגר את המידע ומשקלל אותו עם המסלולים ששמורים אצלו. לאחר מכן השכן מחלחל את המידע הלאה לשכנים שלו על ידי שרשור ה-ASN של עצמו להודעה. השכנים החדשים מקבלים את תחומי הכתובות יחד עם רשימת ה-ASN-ים שעליהם לעבור כדי להגיע לאותה קבוצת כתובות.

כדי להימנע ממעגלים, AS-ים מפילים הודעות BGP שמכילות את ה-ASN של עצמם.

בחירת מסלול עריכה

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

יצירת שכנות (BGP Peering) עריכה

שני נתבים שמתקשרים ב-BGP יכולים ליצור קשר ביניהם אם הוגדר להם לעשות זאת באופן ידני (אין בפרוטוקול מנגנון שכנות אוטומטי). לאחר מכן, הם יפתחו חיבור BGP מעל חיבור TCP בפורט 179. כל נתב (BGP Speaker) שולח הודעת Keepalive של 19 בתים כל 60 שניות כדי לשמור על החיבור.

תתי פרוטוקולים עריכה

iBGP (internal BGP) עריכה

iBGP או BGP פנימי, הוא פרוטוקול ניתוב בין שני נתבי BGP בתוך אותו AS. מטרת הפרוטוקול היא לספק מידע לנתבים פנימיים ברשת, כמו רשימת כתובות IP הנמצאות מחוץ ל-AS.

eBGP (external BGP) עריכה

eBGP או BGP חיצוני, הוא פרוטוקול ניתוב בין שני נתבי BGP השייכים לAS-ים שונים ושכנים זה לזה (BGP peers). מטרת הפרוטוקול היא לאתר את המסלול האופטימלי ברשת באמצעות עדכון AS-ים אודות כתובות ה-IP עליהן כל נתב אחראי, כדי שהם ינתבו אליו מידע רלוונטי.

בעיות אבטחה עריכה

חטיפת BGP (BGP Hijacking) עריכה

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

  1. מניעת שירות על ידי יצירת מסלולים כוזבים או ביטול מסלולים לגיטימיים.
  2. האזנה על ידי שימוש ב-BGP כדי לנתב תעבורה לכיוון רכיב או רשת אינטרנטיים שנמצאים בבעלות התוקף.
  3. יצירת חוסר יציבות במסלול.

ראו גם עריכה

קישורים חיצוניים עריכה

הערות שוליים עריכה

  1. ^ מערך הסייבר הלאומי, המלצות ליישום (Best Practices) מניעה והתמודדות כנגד חטיפת BGP, באתר www.gov.il, ‏יולי 2020
  2. ^ דן פייגין, BGP Hijacking - או עד כמה קל להפיל את האינטרנט?, Digital Whisper 102, 2019