
הטקסט המלא של הדקות הראשונות בהרצאה «הסבר על אלגוריתם Spanning-Tree» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום חברים, כדי להבין טוב יותר למה צריך ספנינג טרי אנחנו נתחיל מזה שנבין בדיוק איך עובד הברודקאסט בואו נעשה דבר פשוט, נשים סוויץ', נשים סוויץ' ונבטל אצלו פרוטוקול של ספנינג טרי שעוד דקה נבין למה צריך אותו בואו נתחיל מזה שאנחנו פשוט נבטל אותו
ואז נראה איך הברודקאסט עובד אתם יודעים מה? בואו נראה איך הברודקאסט עובד לוקחים סוויץ', אנחנו לוקחים כמה סוויצ'ים מחברים יציאה ראשונה ליציאה ראשונה, יציאה שנייה ליציאה שנייה, ואנחנו לוקחים מחשב כאן, מחברים אותו עם כבל רגיל, שימו לב, סוויץ' לסוויץ' זה כבל מוצלב ליציאה מספר 10, ונחבר עוד מחשב,
נניח נחבר אותו פה, עוד מחשב, שימו לב, מחשב לסוויץ' כבל רגיל, סוויץ' לסוויץ' כבל מוצלב, וגם, ואנחנו רוצים לעשות פינג, גם ראוטר לראוטר זה כבל מוצלב, סוויץ' לסוויץ' זה כבל מוצלב ומחשב לראוטר זה כבל מוצלב.
מחשב לראוטר זה כבל מוצלב. אוקיי, איזה סאבנט מאסק הבאתי לו? קלאס A. יופי יופי יופי. אנחנו רוצים להבין בדיוק איך עובד ה-spanning tree, ה-broadcast, אנחנו רוצים להבין בדיוק איך עובד ה-broadcast אז אנחנו עוברים
לסימוליישן ועושים פה בסימולטור שימו לב פה בסימולטור אני עושה פינג ל-10.0.0.2, אוקיי? תסתכלו מה יקרה כשאני אלחץ פה אנטר, תסתכלו מה יקרה פה.
פה תסתכלו, אני לוחץ אנטר. הוא רצה לשלוח פאקט של פינג, אבל הוא לא הצליח לשלוח פאקט של פינג, כי אין לו ליהר 2, אוקיי? הוא בנה ליהר 3, אבל אין לו ליהר 2 וליהר 1.
בגלל זה הוא הכין חבילה של ארפ, שמגלה את הכתובת מאג של היעד, ושולח אותה מהמאג שלו ל-FFF, כשהוא שואל אותו מי זה הדיסטנשן 10.0.0.2, זה למעשה הברודקאסט, אנחנו רואים פה בדיסטנשן של המאק ברודקאסט.
יפה מאוד, זה הסורס של המאק וכל הדאטה הזה, שזה החבילה עצמו, המידע עצמו, זה כל הפקאג' פה, כל הפקאג' פה כלול בתוך הדאטה הזה. ואנחנו רואים שהוא מחפש target IP 10.0.0.2 ושואל אותו מה המאק שלו, כך הוא בעצם שואל אותו, הם רואים target map 0000. 10.002 יקבל את זה ויענה לפאקט הזה בתשובה ואז הוא ידע מה ה-map
וירכיב את ה-CMP. אבל מה שמעניין אותנו ש-ARP זה ברודקאסט. בגלל זה אנחנו עושים פה פליי ותראו מה קורה לברודקאסט. ברגע שהוא הגיע בקו הזה הוא יוצא לכל הקווים האחרים חוץ מהקו שממנו זה הגיע.
למה? כדי שהוא לא יחזור חזרה למחשב שממנו זה הגיע. ואז מה שקורה שהסוויץ' ההוא התעלם מהפאקט והסוויץ' הזה העביר את זה לכל המחשבים והמחשב הנכון עונה לו וברגע שהמחשב הנכון עונה לו שימו לב המחשב קיבל פאקט FFF אתם רואים זה הפאקט בלי טארגט מאק ובלי זה ועם FFF
יוצא החוצה שימו לב הוא הכניס את ה source mac של השולח הפך להיות destination mac אם D3BA, D3BA. כן, הסורס הפך לדיסטיניישן והיעד הזה שהיה FFF הפך להיות פאקט מקור ואנחנו רואים את הפאקט מקור.
יפה מאוד, גם כל המידע הזה חוזר על עצמו גם בתוך ארפ עצמו. אתם רואים? סורס IP 10.0.0.2, כי 10.0.2 שולח את החבילה ל-10.0.1.
ואז הוא רואה את המאק שהוא חיפש גם פה וגם פה, גם בלייר 2 וגם כביכול ברמה של הכבל הפיזי. יופי, ככה זה עובד, וזה נהדר. עכשיו, הבנו איך עובד הברודקאסט. אמרנו, הדבר הכי חשוב לי היה להראות לכם שברודקאסט, ברגע שהוא מגיע למחשב, הוא יוצא לכל שאר המחשבים.
אתם רואים? כשהוא מגיע למחשב אחד, הוא יוצא, כשהוא מגיע לסוויץ', הוא יוצא בכל שאר הברוטים, כבלים, חוץ מזה שהוא הגיע ממנו.
עכשיו, שימו לב מה חסר לי בפרוטוקול. מה חסר לי בפרוטוקול של, מה חסר פה בחבילה? שימו לב, אין פה בחבילה של ARP ובכלל ב-Layer 2, תסתכלו ב-Layer 2. מה אנחנו רואים?
אנחנו רואים פריאמבל, שזה סנכרון. מה זה אומר סנכרון? במקרה ואתה כרגע הדליקו אותך, ואתה מאזין בכאבל, אתה לא יודע מה קורה שם, כי רק עכשיו הדליקו אותך.
אז ברגע שהדליקו אותך, אתה מחכה ל-10101011. ברגע שאתה שומע דבר כזה, אתה יודע, מפה אני מתחיל להקשיב, כי אני מתחיל להבין את המשמעות. יפה, זה כמו כזה סנכרון, זה נקרא, שמסתנכרן מאיפה להתחיל להבין את המשמעות.
ואז כל מה שאתה שומע, אתה יודע שיבואו פה קודם כל מאק, אחרי זה סורס מאק, אחרי זה הטייפ שאנחנו נראה בהמשך בווילאנים, שאפשר גם לשנות את זה ולהכניס פה ווילאן טאג.
הטייפ הזה זה בעצם סוג מידע שיגיע אחריי. הדאטה עצמו שזה אומר מהשכבות למעלה וה-checksum והשכבות למעלה זה בעצם כבר ה-IP וה-TCP אז הבנו איך מורכב הפאקט אבל מה חסר לי פה תסתכלו מה חסר לי פה אם אנחנו נמשיך עם הסימולציה תסתכלו בפינג נניח אנחנו בפאקט של פינג תסתכלו בפאקט של פינג אתם תוכלו לראות שיש את הדיסטניישן מארק את
ה-source מארק את הדאטה שזה ה-IP ובשכבת ה-IP יש לי TTL, כמה ראוטרים זה עובר בדרך. כל ראוטר שעובר בדרך הוא יורד אחד.
בשכבה 2 אין את ה-TTL הזה, וזה אומר שאין משהו שישמיד את הפאקט כשהוא יתחיל להסתובב בלופים. אם הפאקט יתחיל להסתובב במעגלים בראוטר, וה-TTL הזה כל פעם יורד, כל ראוטר שעובר את ה-TTL הזה יורד באחד, איך שהוא יגיע לאפס, הראוטר שהגיע אליו פאקט עם אפס ישמיד את זה.
אבל בלייר 2 אין לנו את האופציה הזאת. אז מה שקורה בלייר 2 יכולה להיות בעיה שהפאקט יתחיל להסתובב לנצח. בואו נבטל שנייה את הספנינג טרי שבא למנוע את זה. בואו נבטל את זה ונראה שבאמת יש לנו בעיה כזאת.
אם אני עושה קונפטי no spanning tree villain אני מבטל בווילאן 1 את הספנינג טרי. נניח שאני לוקח את הפקודה ומבטל. אוקיי, ביטלתי. וגם פה אני מבטל וגם פה אני מבטל.
כרגע בעצם לא יקרה כלום כי אין לנו מעגל. אנחנו נעשה עכשיו מעגל ואתם תראו מה יקרה בואו נראה מה יקרה נחבר כבל בפורט 3 לפורט 3 עכשיו תסתכלו מה קורה כשהמחשב הזה, אני אחבר אותו ואדליק אותו יפה, ונעשה עוד פעם פה פינג כדי שהוא ישכח את ה-ARP נעשה פה פינג, נעביר אותו לסימולטור ובסימולטור נעשה לו פינג, פינג ל-1002
עוד פעם אותו סיפור, יש לנו פאקט של ICMP ויש לנו פאקט של ARP כן, והנה את זה, שימו לב מה קורה לברודקאסט. ברודקאסט הגיע מפה, יוצא לכל הקווים.
אז הוא יוצא לכל הקווים. הנה הוא יצא עכשיו, זה החלק הכי מעניין. הגיע לפה פאקט, מה הוא יעשה? יוצא אותו לכאן. נכון, זה עכשיו יצא לכאן, וזה יצא לפה.
נכון, עד עכשיו זה בסדר. הנה הם יוצאים. שימו לב מה יקרה לפאקט הזה שהגיע כרגע. הוא הגיע מכאן, נכון? אז הוא יצא לפה, הוא יצא לפה.
והפאקט הזה, בואו נראה הוא הגיע לפה שימו לב הופה עכשיו שימו לב מה יקרה אתם רואים שמסתובבים במעגלים למעשה הוא מסתובב פה במעגל עד אין סוף וזהו הוא מסתובב פה במעגל אתם יכולים לעשות פה ככה ואתם תראו שהארפא הזה יסתובב פה עד אין סוף למה הארפא הזה יסתובב פה עד אין סוף תסתכלו כמה
תסתכלו כמה הארפא הזה מסתובב אתם רואים הוא מסתובב מסתובב מסתובב מסתובב מסתובב וכך הוא יסתובב עד אין סוף כמה פאקטים כי אין שום דבר שעוצר את המעגל הזה הברודקאסט מגיע מפה לפה מפה לפה מפה לפה מפה לפה כל הזמן במעגלים הוא ייסע תסתכלו ככה ככה אתם רואים עכשיו זה פאקט אחד תחשבו מה יקרה אם יהיה לי הרבה פאקטים ותמיד יש ברודקאסטים
ברשת זאת הבעיה של r2 שאין שום דבר שמונע ברודקאסטים תראו כמה זמן זה אני אעשה לכם פה פליי באופן מאוד מהר תסתכלו, אתם רואים? בקיצור, זה הסתובב עד אינסוף.
כלו כמה פאקטים. בקיצור, את הבעיה הזאת החליטו לפתור על ידי פרוטוקול ספנינג טרי. פרוטוקול ספנינג טרי אמור לזהות את המצב הזה. תסתכלו כמה פאקטים.
זה לא ייגמר. זה ברודקאסט שכל הזמן יסתובב במעגלים עד שהוא לא יתפוס לי את כל הרשת. למה הוא יתפוס לי את כל הרשת? יהיה עוד פאקט של ברודקאסט ועוד ברודקאסט ועוד ברודקאסט ועוד ברודקאסט בקיצור זה מצב שהוא לא ייגמר אתם יכולים לראות שזה לא נגמר, לא נגמר, תסתכלו
כדי למנוע את המעגלים האלו בלייר 3 שמו את ה-TTL אבל בלייר 2 אין TTL ואם יש מעגל זה יכול להיות מעגל גדול של 20 סוויצ'ים בסוף שמישהו מחבר עכשיו זה טוב שהסוויץ' מחובר לסוויץ' בשתי דרכים כי אז אם כבל אחד ייפול יש דרך אחרת, זה טוב פיינינג טרי בא למנוע את הבעיה הזאת, אוקיי?
אז בואו נעצור את זה על ידי x20, הופה, נעצר. עכשיו, תסתכלו דרך אגב, עכשיו לא תהיה בעיה הזאת. למה עכשיו לא תהיה בעיה?
בואו נעבור ל... ניתקתי את המעגל, כן? עכשיו ניתקתי את המעגל, הבעיה לא תחזור על עצמה. הבעיה חוזרת על עצמה אך ורק כשיש מעגל בברודקסטים.
בואו נחזור חזרה, נעשה פה פינג, 10.0.0.2, וכשאין מעגל, אתם יכולים לראות שאין בעיה של ברודקאסטים, אין בעיה של מעגל. כל עובד תקין והנה הפינג הגיע, יפה מאוד. הבעיה זה רק במעגלים.
טוב, אז איך באים למנוע את המעגל? אומרים בוא נקבע נקודה כלשהי כנקודה ראשית ויחסית אליה נבנה שכולם יגיעו אליה רק בדרך אחת. נקבע משהו כנקודה ראשית.
אז איך אנחנו עושים את זה? אנחנו נכנסים ל-enabled, ל-confteen וכותבים spanning tree שימו לב וילאן וילאן ספנינג טרי וילאן בכל וילאן יש אחד ראשי משלו אז אני מחליט שזה יהיה הראשי שלי זה יהיה הראשי שלי זה הרוט קוראים לו רוט סוויץ' לרוב זה סוויץ' גדול כמו
בקבום אז אני מחליט שמשהו יהיה הרוט סוויץ' שלי נקרא לו רוט וזה יהיה הסוויץ' הראשי אז אני כותב ספנינג טרי וילאן ואז אני כותב נותן לו פריוריטי או קובע שהוא יהיה הרוט רוט ויש רוט ראשי ויש לו את הסגן אז אני קובע רוט פריימרי ברגע שאני קבעתי שהוא הרות הראשי העדיפות שלו בעצם נהיית יותר נמוכה ולכן הוא עדיף על כולם ככה