Home CCNA הסבר על Spanning Tree בקיצור STP

הסבר על Spanning Tree בקיצור STP

by Tal Ben Shushan 18/08/2016 0 comment
הסבר על Spanning Tree בקיצור STP
נהנתם מהמאמר ? שתפו אותו!

הסבר והגדרת Spanning Tree

Untitled-1

אז מהו STP? הוא קיצור של Spanning Tree Protocol והוא למעשה חוסם פורטים דרכם עלול להיווצר Loop Layer 2 או Broadcast Storm, מזה אומר Loop ואך הוא עושה את החסימה נסביר בהמשך, קצת הקדמה לפני:

לפני שהיו לנו Switchים היו לנו Bridge וBridge למעשה חילק את הרשתות לCollision Domain

אל ה Hub היו מתחברים המחשבים ובאותו רגע, שלא כמו ה סוויצ' המחשב היה שולח Frame וה Frame הזה היה נשלח לכל הפורטים ב HUB (בדומה ל Broadcast)על מנת למנוע מה Frame להמשיך לHUBים אחרים ולכל הרשת הגדרנו בין ה HUB ל HUBאת הBridge אותו ה Bridge חילק את הרשת ל Collision Domain וכך היה נמנע עומס ברשת וFrame שנשלחו סתם למקום שהוא אינו היעד שלהם.

זה היה אז ב Hub, כעת בסוויצ'ים נוצרו לנו בעיות אחרות….

סוגי הבעיות שSTP פותר:

כל הזכויות שמורות לטל בן שושן – Shushan.co.il

 MAC Table Instability \ Loop Layer 2

switch

 

Loop Layer 2 – סוויצ' נמצא בLayer2 ובשכבה זו אין שדה של TTL ולכן כאשר מחשב שמחובר ל Switch0 שולח Broadcast ה Frame יוצא מ2 הפורטים שלו מ F0/1 ו F0/2 ואז מגיע לסוויצ' 3 , שלא מחזיר את ה Frame מהמקום ממנו הוא בא, אבל אם תחשבו על זה תראה שה Frame יעשה את כל הסיבוב בחזרה לSwitch2 (מ2 הכיוונים) ואז Switch2 ישלח את ה Broadcast שוב מ2 פורטים וכך נוצר לנו Loop.

MAC Table Instability

זכרו! Frame לא יחזור לפורט ממנו הוא יצא, אבל למרות זאת זה לא משנה את היווצרת ה LOOP

 MAC Table Instability – בתרשים ניתן לראות שאם יצא Broadcast מ PC0 ה Frameים שיווצרו ימשיכו כל הזמן להשתכפל, הבעיה היא שה Broadcast שהגיע במקור מPC0 משנה כל הזמן לסוויצים את ה MAC TAble בגלל שהם חושבים ש Broadcast שהגיע מפורט נאמר F0/4 לתוך Switch2  אבל בגלל שהוא בLOOP הוא יבוא בפעם הבאה מ F0/5 ואז Switch2 ישנה שוב אתה MAC Table וכך ימשיך כל הזמן…

Duplicate Unicast Frames

spt

הסבר נוסף, כמו שאתם יכולים לראות בתרשים למעלה שיש לנו 2 סוויצים שנותנים לנו גיבוי/
PC0 הוא המחשב למעלה
PC1 הוא המחשב למטה

מחשב PC0 שולח הודעה לPC1, ההודעה מגיע ל2 הסוויצים Switch4 ו Switch5 ושניהם יודעים שמחשב PC1 עם MAC Address 1111.1111.1111.1111 נמצא מאחורי פורט Fa0/1 כעת ההודעה יוצאת אבל מגיע פעמיים ל Switch7 וכעת Switch 7 רושם בטבלת הMAC שלו שמחשב PC0 נמצא בפורט Fa0/2 וגם בפורט Fa0/1 וכאשר הודעה תחזור מPC1 אל PC0 ואז ההודעה תצא מSwitch7 פעמיים.

זאת אומרת תמיד יהיה Duplicate Frame שיגיע ליעד וגם בחזור ואת זה יש למנוע על מנת להפחית את העומס ברשת.

  Broadcast Storm

נסתכל שוב על התרשים הזה

spt

הודעת Broadcast יוצאת ממSwitch6 ומגיע למSwitch5 ומSwitch4, ה Broadcast יוצא מ2 הפורטים של שתי הסוויצים שהם יציאות Fa0/2, וההודעה מגיעה לSwitch7 ובכלל שזה Broadcast פורט Fa0/2 ב Switch7 שולח לפורט Fa0/1 של Switch7 וכך הפוך ואז זה עולה לSwitch5 וSwitch4 וכך ממשיך הלאה בלולאה שלא נגמרת…

מדוע זה לא קורה ב Routers 

ראוטרים כמו שאתם יודעים הם Layer3 ובLayer3 יש Header ובHeader יש תא בשם TTL או בשמו המלא Time To Live ובכל פעם שחבילת מידע עוברת בראוטר אחד הTTL יורד במספר אחד מטה, נאמר שלחבילה בהסבר יש TTL = 4
נאמר חבילה יוצאת מRouter1 וה TTL שלה הוא 3 וכאשר החבילה מגיע לRouter2 הTTL יורד ל2 ואז ה Packet מגיע לRouter3 הTTLיורד ל1 ואז ה Packet מגיע לRouter4 הTTL יורד ל0 ואותו הראוטר לא יעביר הלאה את ה Packet הזה כיוון שהוא מוגבל 4 TTL

תכונות ה STP

אז אך הוא בעצם הוא בוחר את הנתיב הטוב ביותר?

כאשר כל הסוויצים מחוברים אחד לשני, לכולם יש STP Priority שווה, והמספר של כולם הוא 32778 ובכלל שלכולם Priority שווה, הבחירה תעשה על ידי כך שלסוויצ' שיש את הMAC Address הנמוך ביותר (BID שהוא Bridge Identifier והוא כתובת MAC + STP Priority), הוא ייבחר לRoot Path .

לפני שנתחיל בהגדרות, שיניתי שוב את התרשים שלנו וזאת על מנת ליצור Loop גדול יותר!

stp

בצורה זו יש לנו יתירות מקסימלית, אבל Broadcast Storm יכול להתרחש.

בRSTP ובSTP יש אלגוריתם שהומצא על ידי "רדיה פרלמן" בשם STA, קיצור של Spaning Tree Algorith, אלגוריתם זה מחליט מי יהיה ה Root Bridge (כמו שהוסבר למעלה) והוא משתמש ב סוויצ' זה כנקודת מוצא של איזה פורטים לחסום ואיזה דרכים יהיו פנויות, ה STP מחליף BPDU (נסביר בהמשך) בין הסווצ'ים על מנת לקבוע את ה BID הנמוך ביותר, הסוויצ' עם ה BID הנמוך ביותר, זוכה להיות ה Root Bridge

הBPDU, הוא קיצור של Bridge Protocol Data Unit, הסוויצ' שולח בתוכו את ה Priority Value + MAC Address + Extented System ID , ועל ידי חישוב של שלושתם הוא קובע את הBID, אחרי שה BID נקבע ונבחר סוויצ' שהוא ה Root Bridge ה STA מחשב את הדרך הכי קצרה של כל סוויצ' אל ה הסוויצ' שהוא Root Bridge ואז הוא קובע איזה פורטים לחסום (בזמן שהוא קובע אין תעבורה ברשת) נוסף על כך הוא מחשב את הדרך הכי קצרה וזו שעלותה היא הנמוכה ביותר (Cost) על ידי טבלה שנראה בהמשך שנותנת "מספר" לכל פורט והמהירות שלו וה"מספר" הנמוך ביותר זוכה!

Root Bridge

כמו שהוסבר לפני כן, הוא נבחר בדרך מסוימת והוא משמש כנקודת ציון ממנה הSTA חוסם את הפורטים שצריך על מנת למנוע Loop.

אמרנו שBID בנוי מ Priority Value + MAC Address + Extented System ID, כאשר הסוויצ' עולה הוא שולח כל 2 שניות BPDU Frame שמכילים את ה BID של אותו הסוויצ' ואת ה Root ID ( הBID של ה Root Bridge זה Root ID) אותו הסוויצ' מקבל את ה BPDU ואיתו את ה Root ID אם ה  Root ID שהתקבל נמוך מה Root ID של הסוויצ' עצמו, הסוויצ' יחליט כי הסוויצ' לידו הוא ה Root Bridge ושולח את Root ID של הסוויצ' הנמוך ביותר שהוא קיבל לשאר הסוויצים, כך שבסוף יבחר סוויצ' שהוא ה Root Bridge

אז אחרי שהבנו אך הוא בוחר את ה Root Path, נבין את שלושת סוגי הפורטים.

Path Cost

כמו שהסברתי למעלה כאשר ה Root Bridge נבחר ה STA צריך לקבוע את הדרך הכי טובה לRoot Bridge הוא מחשב את המהירות של הפורטים ולכל מהירות נותן Cost ("מספר")

Speed             Cost

10 GBPS         2

1GBPS            4

100 MBS        19

10 MBS          100

עכשיו נסתכל בתרשים למטה, נראה שפורט Fa0/2 בSW0 חסום, וSW2 הוא ה Root Bridge  זאת אומרת SW0 ו SW1 צריכים לחשב מה הדרך הכי מהירה ל SW2 בגלל שהוא ה Root Bridge, החישוב הוא כזה: בחיבור 100MBPS ה Cost הוא 19 אז נראה כמה דרכים יש להגיע מ SW0 ל SW2 אפשר לעבור דרך SW1 שזה 2 קפיצות אז 19X2 = 38 או לעבור ישירות ל SW2 שזה 19X1 = 19 התוצאה הכי נמוכה זה 19 ולכן דרך זו זוכה (אפשר לראות שדרך זו לא חסומה) אותו דבר עם SW1.

אם ה Cost שווה אז הפורטים של הסוויצ' עם ה BID הגבוהה ביותר זוכים להיות ה Alternate Port

*ניתן לשנות את ה Cost  בתוך הסוויצ' ובכך להתעבר לו ולקבוע לו דרך אחרת ל Root Bridge גם אם היא ארוכה יותר.

מצבי הפורטים

Blocking Link \ Alternate Ports, Backup Ports , בתרשים למטה ניתן לראות שהפורט החסום הוא ב Swtich0 פורט Fa0/2 והשם שלו Alternate Ports או Backup Ports והוא נמצא במצב Blocking State 

Root Port, הם הפורטים שהכי קרובים ל Root Bridge, אם נסתכל בתרשים נאמר ש Switch2 הוא ה Root Bridge (בתכלס הוא באמת ה RB) הפורטים שהוא שהם ה Root פורט הם אלה שקורבים אליו (קרובים לא מחוברים אליו) ולכן אלו יהיו פורטים F0/3 של Swtich1 ו Switch0 ה Root Port

Designated Port, כל פורט שאינו חסום, שאינו Root הוא פורט שהוא Designated Port שכן הוא יכול להעביר מידע דרכו, אם נסתכל על התרשים למעלה נוכל לראות שפורט F0/2 ב Switch0 הוא למעשה החסום, אז כל הפורטים האחרים שאינם Root הם ה Designated Port, אם כך, כל פורט בRoot Bridge הוא Designated Port בגלל שכל צד אחד של Root Port הצד השני יהיה Designated Port.

Disabled Ports, פורט שהוא במצב Shutdown

BID – Bridge ID

אמרנו BID מורכב מ Priority Value + MAC Address + Extented System ID

Priority Value – שם נוסף Bridge Priority  : הוא ערך קבוע בסוויצים של סיסקו הערך הוא 32768 ואם משנים את הערך ל0 הוא עולה כל כל Priority שקיים.
בעצם Priority זה משתתף בקביע אם הערך BID יהיה נמוך וכך הסוויצ' יבחר כ Root ID

MAC Address: הכתובת הפיזית של הסוויצ'

Extented System ID: כאשר נוצר STP הוא נוצר בשביל סוויצים ללא VLAN, ולכן בסוויצים ישנים לא קיים הערך  Extented System ID, מה שנמצא בתוכו זה מספר הVLAN, אם הסוויצ' נמצא בVLAN 1 כברירת מחדל אז יתווסף +1

BPDU

בנוי מ 12 סעיפים:

1 – Protocol ID – מציין 0000 שמסמן לו את IEEE 802.1D

2 – Version – גרסת ה BPDU שהערך הוא 0

3 – Message Type – מכיל הגדרות או TCB BPDU

4 – Flags- דגלים

5 – Root ID – הBID של הRoot Bridge

6 – Cost of Path – ה Cost של הפורט

7 – Bridge ID – ה BID שהוא חישוב של Priority Value + MAC Address + Extented System ID זה נראה כך: 32768.1111.11111.1111.1111 הMAC + Priority

8 – Port ID – מאיזה פורט נשלח ה BPDU

9 – Message Age – ממתי שלח ה Root Bridge את הBPDU האחרון

10 – Max Age – מתי ההגדרות של ה BPDU ימחקו

11 – Hello Time – מתי נשלח ה Hello האחרון

12 – Forward Delay – אם השתנה הטופולוגיה , כמה זמן יעבור עד שישלח BPDU חדש על מנת לעדכן את הטופולוגיה (נפל סוויצ' או חיבור וכו')

לדוגמה, אם בתוך ה BPDU יש Root ID ו Bridge ID זהים אז הBPDU הגיע מ Bridge Root

הBPDU נשלח כל 2 שניות, כל סוויצ' כאשר הוא עולה, הוא מניח שהוא ה Bridge Root, הוא גם מכיל בתוכו אתה Root ID הBID שלו ואת ה Cost ל Root Bridge.

כאשר 2 סוויצים מחוברים אחד לשני הם שולחים BPDU הם משווים את ה Root ID מה BPDU שהתקבל מהסוויצ' השני ואת ה Root ID שלהם אם ה Root ID נמוך שהתקבל ב BPDU נמוך יותר מה Root ID שלהם עצמם הוא מעדכן את ה BPDU שהוא ישלח ל Root ID שלו ול Root ID שהתקבל (שהוא נמוך יותר ממנו) זאת אומרת שה Root ID שהתקבל שנמוך יותר הוא למעשה מסמן את ה Switch ששלח את זה כ – Root Bridge נוסף על כך מכיל ה BPDU גם את ה Cost לאותו Root Bridge.

למעשה כך שמתקבל בBPDU למי יש ה Root ID הנמוך ביותר, הסוויצים יודעים מי הוא ה Root Bridge.

כעת אציג את ההסבר למעלה בצורה פשוטה יותר:

ניתן לראות אתה Root ID של כל הסוויצים, כאשר הסוויצ' עולה ה Root ID שלו וה Bridge ID שלו זהים, בגלל שבהתחלה הוא חושב שהוא ה Root ID (ה32768 +1 האחד הוא למעשה VLAN 1 ולכן התוצאה בכולם היא 32769 טוב לא בכולם חוץ מ Switch2)

לאחר שעלו ולכולם ID דומה גם ב Root וגם ב Bridge ID, סוויצ' S1 שולח ל S0 את ה BPDU עם הפרטים שלו, כיוון שה Root ID של SW1 נמוך יותר הוא מעדכן אצלו את ה Root ID כמו בתמונה למטה, וSW0 מחשיב את SW1 ל Root Beidge

כעת SW1 שולח BPDU עם ה Root ID והCost (מאיזה פורט יצא ה BDPU , פורט שהוא 100MBPS ולכן Cost = 19) לעבר סוויצ' SW2 מקבל את ה BPDU רואה שה Root ID שלו עצמו נמוך ממה שהתקבל הוא מפיל את החבילה.

כעת שולח SW2 הודעת BPDU שיוצאת מכל הפורטים לעבר SW1 ו SW0 הם מקבלים את ה BPDU ורואים שה Root ID נמוך יותר וכעת משנים את ה  Root ID שלהם

 

 

כעת נבדוק בסוויצ'  Switch2 את ה Spanning Tree,

נרשום את הפקודה

Switch#show spanning-tree

VLAN0001

Spanning tree enabled protocol ieee

Root ID Priority 32769

Address 000A.F305.D0E3

Cost 19

Port 1(FastEthernet0/1)

Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

Bridge ID Priority 32769 (priority 32768 sys-id-ext 1)

Address 000C.85B8.0B86

Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

Aging Time 20

Interface             Role      Sts Cost Prio.Nbr Type

—————- —- — ——— ——– ——————————–

              Fa0/1    Root     FWD 19 128.1 P2p

              Fa0/3    Desg    FWD 19 128.3 P2p

              Fa0/2    Desg    FWD 19 128.2 P2p

ניתן לראות כאן כמה דברים,

*ניתן לראות בסעיף שרשמתי למטה שSwitch3 הוא למעשה ה Root Switch ולמעלה אנו רואים פקודה שהקשנו ב Switch2 אז למה אני מספר לכם את זה?

אם תסתכלו בסימון הכתום שעשיתי תוכלו לראות Root ID ואז למטה כתובת MAC כתובת זו למעשה היא כתובת ה Root Switch שהוא Switch3
בתכלת סימנתי באיזה פורט הוא יוצא על מנת להגיע לSwitch Root שהוא Switch3 (אפילו בתרשים תוכלו לראות שהוא יוצא דרך Fa0/1 ואילו שאר הפורטים של Switch2 חסומים בסוף)

אבל רגע! אמרנו שיש Switch Root, נכון! נלך לSwitch 3

Switch#show spanning-tree

VLAN0001

Spanning tree enabled protocol ieee

Root ID Priority 32769

Address 000A.F305.D0E3

This bridge is the root

Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

Bridge ID Priority 32769 (priority 32768 sys-id-ext 1)

Address 000A.F305.D0E3

Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

Aging Time 20

Interface Role Sts Cost Prio.Nbr Type

—————- —- — ——— ——– ——————————–

Fa0/2 Desg FWD 19 128.2 P2p

Fa0/4 Desg FWD 19 128.4 P2p

Fa0/1 Desg FWD 19 128.1 P2p

Fa0/3 Desg FWD 19 128.3 P2p

ניתן לראות באדום שמסומן לנו, This bridge is the root ולכן הוא ה Root Switch

מאמרים קשורים

Leave a Comment