BGP Routing

הקדמה:

BGP

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

פרוטוקול Border Gateway (BGP) הוא אחד הפרוטוקולים המרכזיים שיש להשתמש בהם להשגת redundancy לחיבור האינטרנט.

כאשר אתה מחבר את הרשת לשתי ספקיות אינטרנט שונות (ISP), היא נקראת multihoming.

Multihoming

מספק חלוקה ושרידות ואופטימיזציה לרשת.

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

חשוב לציין בנוסף שנכיר את המושג (External BGP)eBGP שהוא מחבר בין AS ל AS

ו iBGP(Internal BGP) המחבר ניתובים בתוך הרשת הפנימית שלנו בסופו של דבר הקונספט זהה.

כ Best Practice מומלץ להגיד תמיד את הנתב בצורה מאובטחת כדי למנוע BGP Hijacking(חטיפת תעבורת הנתב)

נוכל למנוע את זה באמצעות :

הגדרה נכונה של Filter

Distribute, Prefix , Community, AS-Path

ושימוש במפתח יחודי בין נתב לנתב

AS/N

מערכת אוטונומית (AS) היא אוסף של רשתות IP (כתובות רשת חיצוניות )המנוהלות על ידי אחד או יותר מפעילי רשתות (ISP – Internet Service Provider)שיש להן משותף להם ניתובים.

לדוגמא:

האינטרנט הוא ארגון של ארגונים

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

וככה אנחנו יכולים להגיע מקצה לקצה ולגלוש לכל אתר או שירות שנרצה לחפוץ בו!

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

תרגיל בסיסי שמבוסס על 4 ראוטרים עם 4 מספרי ASN שונים

התרגיל מבוסס על המערכת IOS 15.6 Cisco מדמה תקשורת בין 4 ראוטרים

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

הדגמה:

Router 1 Config

R1(config)#inter lo0
R1(config-if)#ip add 1.1.1.1 255.255.255.255
R1(config-if)#no shutdown
R1(config-if)#exit
R1(config)#
R1(config)#interface g0/0
R1(config-if)#ip address 10.178.1.1 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#exit
R1(config)#
R1(config)#router bgp 122
R1(config-router)#bgp router-id 10.178.1.1
R1(config-router)#neighbor 10.178.1.2 remote-as 213
R1(config-router)#neighbor 10.178.1.2 update-source g0/0
R1(config-router)#
R1(config-router)#address-family ipv4
R1(config-router-af)#neighbor 10.178.1.2 activate
R1(config-router-af)#network 10.178.1.0 mask 255.255.255.0
R1(config-router-af)#timers bgp 70 120
R1(config-router)#bgp log-neighbor-changes
R1(config-router)#end

Router 2 Config


R2(config)#inter lo0
R2(config-if)#ip add 2.2.2.2 255.255.255.255
R2(config-if)#no shutdown
R2(config-if)#exit
R2(config)#
R2(config)#interface g0/0
R2(config-if)#ip address 10.178.1.2 255.255.255.0
R2(config-if)#no shutdown
R2(config-if)#exit
R2(config)#
R2(config)#interface g0/1
R2(config-if)#ip add 10.178.2.1 255.255.255.0
R2(config-if)#no shutdown
R2(config-if)#exit
R2(config)#
R2(config)#interface g0/2
R2(config-if)#ip add 10.178.4.1 255.255.255.0
R2(config-if)#no shutdown
R2(config-if)#exit
R2(config)#
R2(config)#router bgp 213
R2(config-router)#bgp router-id 10.178.1.2
R2(config-router)#neighbor 10.178.1.1 remote-as 122
R2(config-router)#neighbor 10.178.1.1 update-source g0/0
R2(config-router)#neighbor 10.178.2.2 remote-as 144
R2(config-router)#neighbor 10.178.2.2 update-source g0/1
R2(config-router)#neighbor 10.178.4.2 remote-as 512
R2(config-router)#neighbor 10.178.4.2 update-source g0/2
R2(config-router)#
R2(config-router)#address-family ipv4
R2(config-router-af)#neighbor 10.178.1.1 activate
R2(config-router-af)#neighbor 10.178.2.2 activate
R2(config-router-af)#network 10.178.1.0 mask 255.255.255.0
R2(config-router-af)#network 10.178.2.0 mask 255.255.255.0
R2(config-router-af)#network 10.178.3.0 mask 255.255.255.0
R2(config-router-af)#network 10.178.4.0 mask 255.255.255.0
R2(config-router-af)#timers bgp 70 120
R2(config-router)#bgp log-neighbor-changes
R2(config-router)#end

Router 3 Config

R3(config)#inter lo0
R3(config-if)#ip add 3.3.3.3 255.255.255.255
R3(config-if)#no shutdown
R3(config-if)#exit
R3(config)#
R3(config)#interface g0/0
R3(config-if)#ip address 10.178.2.2 255.255.255.0
R3(config-if)#no shutdown
R3(config-if)#exit
R3(config)#
R3(config)#interface g0/1
R3(config-if)#ip address 10.178.3.1 255.255.255.0
R3(config-if)#no shutdown
R3(config-if)#exit
R3(config)#
R3(config)#
R3(config)#router bgp 144
R3(config-router)#bgp router-id 10.178.1.3
R3(config-router)#neighbor 10.178.2.1 remote-as 213
R3(config-router)#neighbor 10.178.2.1 update-source g0/0
R3(config-router)#neighbor 10.178.3.2 remote-as 512
R3(config-router)#neighbor 10.178.3.2 update-source g0/1
R3(config-router)#
R3(config-router)#
R3(config-router)#address-family ipv4
R3(config-router-af)#neighbor 10.178.2.1 activate
R3(config-router-af)#neighbor 10.178.1.1 activate
% Specify remote-as or peer-group commands first
R3(config-router-af)#neighbor 10.178.1.2 activate
% Specify remote-as or peer-group commands first
R3(config-router-af)#neighbor 10.178.3.2 activate
R3(config-router-af)#network 10.178.2.0 mask 255.255.255.0
R3(config-router-af)#network 10.178.1.0 mask 255.255.255.0
R3(config-router-af)#network 10.178.3.0 mask 255.255.255.0
R3(config-router-af)#timers bgp 70 120
R3(config-router)#bgp log-neighbor-changes
R3(config-router)#end

Router 4 Config

4(config)#inter lo0
R4(config-if)#ip add 4.4.4.4 255.255.255.255
R4(config-if)#no shutdown
R4(config-if)#exit
R4(config)#
R4(config)#interface g0/1
R4(config-if)#ip address 10.178.4.2 255.255.255.0
R4(config-if)#no shutdown
R4(config-if)#exit
R4(config)#interface g0/0
R4(config-if)#ip address 10.178.3.2 255.255.255.0
R4(config-if)#no shutdown
R4(config-if)#exit
R4(config)#
R4(config)#router bgp 512
R4(config-router)#network 4.4.4.4
R4(config-router)#bgp router-id 10.178.1.4
R4(config-router)#neighbor 10.178.4.1 remote-as 213
R4(config-router)#neighbor 10.178.4.1 update-source g0/1
R4(config-router)#neighbor 10.178.3.1 remote-as 144
R4(config-router)#neighbor 10.178.3.1 update-source g0/0
R4(config-router)#
R4(config-router)#
R4(config-router)#address-family ipv4
R4(config-router-af)#network 10.178.1.0 mask 255.255.255.0
R4(config-router-af)#network 10.178.2.0 mask 255.255.255.0
R4(config-router-af)#network 10.178.3.0 mask 255.255.255.0
R4(config-router-af)#network 10.178.4.0 mask 255.255.255.0
R4(config-router-af)#  neighbor 10.178.3.1 activate

R4(config-router-af)#  neighbor 10.178.4.1 activate
R4(config-router-af)#exit

כעת נתחבר ל Router 1 לצורך הבדיקה

show ip bgp

כך נוכל לראות את הניתובים שלנו ניתן לראות שכל אות מתחת לעמודה של Path מסמלת סטטוס

שימו לב שהכתובת של הראוטר שלנו היא 10.178.1.1 ניתן לראות שבשורת הראשונה מתחת ל Network

קיבלנו 0.0.0.0 *< מה שאומר שהראוטר עושה advertisment (מציע את הכתובת של עצמו הלאה)

הסבר על האותיות :

Status codes: s suppressed, d damped, h history, * valid, > best, i – internal,
r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
x best-external, a additional-path, c RIB-compressed,
Origin codes: i – IGP, e – EGP, ? – incomplete

כעת נראה את הפרטים על neighbors(השכנים שלנו)

R1#show ip bgp neighbors
BGP neighbor is 10.178.1.2, remote AS 213, external link
BGP version 4, remote router ID 10.178.1.2
BGP state = Established, up for 00:19:14 שימו לב שהסטטוס שלנו הוא Established מה שאומר שיש תקשורת בין נתב R1-R2

לכל סטטוס יש משמעות, אם היינו רואים לצורך העיניין Active היינו מבינים שהנתב מנסה להתחבר אבל הוא נכשל.

כעת נבצע ping לכל הראוטרים על מנת לוודא שיש לנו תקשורת

ניתן לראות שאנחנו מגיעים לכל הראוטרים

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *

CAPTCHA