הפקולטה להנדסת חשמל המעבדה למערכות תוכנה

‫הטכניון ‪ -‬מכון טכנולוגי לישראל‬
‫הפקולטה להנדסת חשמל‬
‫המעבדה למערכות תוכנה‬
‫מיתוג וניתוב ברשתות מחשבים‬
‫חוברת הכנה‬
‫קומה ‪ 3‬חדר ‪318‬‬
‫החדר נמצא במסדרון בין פישבך למאייר‬
‫חשוב‪ :‬יש למלא טופס משוב בתום הניסוי!!!‬
‫המאחר ביותר מ – ‪ 51‬דקות לא יורשה לבצע את הניסוי!‬
‫המעבדה למערכות תוכנה מרושתות‬
‫רועי מטרני ‪ -‬טל‪ 0223: .‬דוא"ל‪roym@ee :‬‬
‫יוסי ילוז – טל‪ 0220 .‬דוא"ל‪jose@tx :‬‬
‫‪1‬‬
‫תדריך כללי‬
‫מסמך זה מכיל תדריך והכנה לניסוי מיתוג וניתוב ברשתות מחשבים‪ .‬הניסוי כולל את הנושאים האלה‪ :‬ניתוב סטאטי‪ ,‬ניתוב‬
‫דינאמי בעזרת פרוטוקול ‪ OSPF‬ומיתוג בשכבה ‪ . 2‬אלו נושאים יחסית כבדים שראויים לקורס שלם‪ ,‬ובניסוי זה אנחנו רק נטעם‬
‫מכל נושא כדי להבין את החלקים הבסיסיים שלו בלבד‪ .‬עיקר התדריך נותן רקע תיאורטי לנושאי הניסוי‪ .‬יש לקרוא אותו על‬
‫מנת להגיע לניסוי מוכנים‪.‬‬
‫קורס קדם לניסוי‪ :‬מבוא לרשתות מחשבים ‪300000‬‬
‫מסמכי הניסוי‬
‫מסמך זה נותן רקע כללי לניסוי ורקע תיאורטי לנושאים המועברים בו‪ .‬יש לקרוא את המסמך הזה לפני המפגש הראשון‬
‫ולענות על שאלות ההכנה שבסופו‪.‬‬
‫המסמך השני יסופק לכם בפורמט ‪ .Word‬הוא כולל את מהלך הניסוי‪ ,‬ואת התשובות לרוב השאלות תכתבו בגוף המסמך‪ .‬אין‬
‫צורך לקרוא אותו לפני הניסוי‪ ,‬אלא אם אתם רוצים לראות ממה הניסוי מורכב‪.‬‬
‫מבנה הניסוי‬
‫הניסוי מורכב מ‪ 2-‬מפגשים בני ‪ 0‬שעות‪.‬‬
‫מפגש ראשון‪:‬‬
‫‬‫‪-‬‬
‫הכרת הציוד איתו משתמשים לאורך הניסוי‪ ,‬וניתוב סטאטי (שעה וחצי)‬
‫ניתוב בפרוטוקול ‪( OSPF‬שעתיים וחצי)‬
‫מפגש שני‬
‫‪-‬‬
‫מיתוג ב‪ 0-0( Layer 2-‬שעות)‬
‫מבנה הציון‬
‫‬‫‬‫‬‫‬‫‪-‬‬
‫תשובות לשאלות ההכנה למפגש ראשון – ‪1%‬‬
‫ניתוב סטאטי – ‪23%‬‬
‫ניתוב דינאמי – ‪03%‬‬
‫תשובות לשאלות ההכנה למפגש שני – ‪1%‬‬
‫מיתוג – ‪03%‬‬
‫‪2‬‬
‫מבוא‬
‫הניסוי מבוסס על קורס שפותח באוניברסיטת ‪ UCI‬בארצות הברית‪ ,‬ושהתפרסם בספר ‪Mastering Networks: An Internet‬‬
‫‪ .Lab Manual‬במקור הקורס כלל הרצאה פרונטאלית ועבודה עצמית במעבדה של ‪ 0‬שעות כל שבוע‪ .‬הניסוי שלנו עבר המרה‬
‫לפורמט המקובל בטכניון של ‪ 2‬פגישות בנות ‪ 0‬שעות‪ ,‬ובמקום ההרצאות החומר מוסבר בחוברת ההכנה‪ ,‬וברובו המכריע‬
‫נלמד בקורס מבוא לרשתות‪ .‬עוד פרטים על המקור ניתן למצוא כאן‪http://www.tcpip-lab.net/ :‬‬
‫מטרת הניסוי היא לאפשר לסטודנטים להתנסות בהקמת מגוון של רשתות בפרוטוקולים שונים‪ .‬לצורך כך עומד לרשות‬
‫הסטודנטים ארון ציוד תקשורת הכולל‪:‬‬
‫‬‫‬‫‪-‬‬
‫‪ 0‬תחנות עבודה מבוססות לינוקס‬
‫‪ 0‬נתבים של ‪( Cisco‬חברת ציוד התקשורת המובילה בעולם)‬
‫‪ 0‬מתגים פשוטים‬
‫בכל חלק של הניסוי תתודרכו להקים רשת בטופולוגיה שונה המשתמשת בפרוטוקולים שונים‪ .‬אתם תידרשו לגלות הבנה‬
‫בסיסית בלבד בפרוטוקולים בהם אתם משתמשים (גם בתעשייה מעטים הם האנשים שיגלו הבנה בכל הפרוטוקולים האלה)‪.‬‬
‫‪3‬‬
‫מפגש ראשון ‪ -‬ניתוב‬
‫עקרונות הניתוב‬
‫תזכורת קצרה לגבי מהות רשת ‪. IP‬‬
‫רשת ‪ IP‬היא יחידה לוגית שמיוצגת באמצעות מספר של ‪ 02‬ביט‪ .‬אנחנו רגילים להציג את המספר הזה בפורמט של ארבעה‬
‫מספרים עם הערך ‪ , 3-211‬מופרדים בנקודה ביניהם‪ .‬חבילות שמועברות בעזרת פרוטוקול ‪ IP‬אדישות לשכבה הפיזית‬
‫שמתחת ל‪ .IP-‬כתובת ה‪ IP-‬היא היררכית‪ ,‬ומורכבת מ‪ 2-‬חלקים‪ :‬חלק הרשת וחלק התחנה‪ .‬חלק הרשת מגדיר לאיזו רשת‬
‫הכתובת שייכת‪ ,‬על מנת שנתבים יוכלו להעביר חבילות עבור התחנה לרשת המתאימה (קצת דומה לאיזור חיוג בטלפון)‪.‬‬
‫חלק התחנה מזהה את התחנה בתוך הרשת‪.‬‬
‫כדי שאפשר יהיה להבחין בין חלק הרשת וחלק התחנה בכתובת ה‪ IP-‬נהוג להצמיד לכל כתובת "מסכה" (‪,)Subnet Mask‬‬
‫שמאפשרת‪ ,‬באמצעות פעולה לוגית פשוטה‪ ,‬למצוא את כתובת הרשת של כתובת ‪ IP‬מסוימת‪ .‬המסכה‪ ,‬כמו כתובת ה‪IP-‬‬
‫מורכבת מארבע קבוצות של שמונה סיביות‪ .‬בייצוג בינארי‪ ,‬עבור כל סיבית בכתובת ה‪ IP-‬שמייצגת את הרשת יופיע ‪ ,5‬ועבור‬
‫כל סיבית בכתובת ה‪ IP-‬שמייצגת את המחשב המסוים יופיע ‪.3‬‬
‫כתובת מיוחדת נוספת ברשת ה‪ IP-‬היא כתובת ה‪ .Broadcast-‬כאשר חבילה נשלחת לכתובת זו‪ ,‬החבילה מיועדת להיקרא ע"י‬
‫כל תחנות ה‪ IP-‬הנמצאות באותה רשת‪ .‬כתובת ה‪ broadcast -‬עבור רשת מסויימת היא הכתובת הגבוהה ביותר עבור אותה‬
‫רשת‪ ,‬כלומר זו ש בייצוג בינארי‪ ,‬חלק התחנה בכתובת הוא כולו ‪.5‬‬
‫למשל ‪ -‬בכתובת ‪ 512.586.3.51‬החלק ‪ 512.586.3‬מייצג את הרשת והמספר ‪ 51‬מייצג את המחשב המסוים‪ .‬מסכת הרשת‬
‫של כתובת זו תהיה ‪ ,211.211.211.3‬או בייצוג בינארי – ‪ .11111111 11111111 1111111 00000000‬שימו לב‬
‫שהמסכה תמיד מורכבת מסדרה של "‪ "5‬שאחריה באה סדרה של "‪ ."3‬לכן נהוג גם להגדיר רשת ע"י כתובת הרשת ומספר‬
‫הביטים שהם ‪ .5‬במקרה הזה הייצוג הוא ‪512.586.3.3220‬‬
‫מבחינת הפרוטוקול‪ ,‬אוסף תחנות שנמצאות באותה רשת ‪ IP‬הן סוג של "ענן רשת"‪ ,‬וכך מתייחסים אל זה נתבים שתפקידם‬
‫להעביר חבילות ‪ IP‬מרשת לרשת‪.‬‬
‫כל מעבר כזה דרך "ענן" רשת ‪ IP‬נקרא ‪ .Hop‬בדוגמא למטה חבילת ה‪ IP-‬עוברת ‪ hops 0‬מ‪ H1-‬ל‪.H2-‬‬
‫‪IP‬‬
‫‪IP‬‬
‫‪IP‬‬
‫‪IP‬‬
‫‪4‬‬
‫כתובת ‪ IP‬מחולקת ל‪ 2-‬חלקים‪ :‬חלק הרשת (שהוא למעשה כתובת הרשת)‪ ,‬וחלק המחשב‪ .‬לדוגמא‪ ,‬בכתובת‬
‫‪ ,53.3.3.552220‬כתובת הרשת היא ‪ ,53.3.3.3‬והמספר שמייצג את המחשב בתוך הרשת הוא ‪.552‬‬
‫על מנת שחבילה תוכל להגיע מהמקור אל היעד‪ ,‬צריכים להתקיים התנאים הבאים‪:‬‬
‫‪ .5‬חלק הרשת בכתובת היעד של החבילה צריך להיות מזוהה עם רשת ‪ LAN‬קיימת בעלת תשתית פיזית (למשל‬
‫‪.)Ethernet‬‬
‫‪ .2‬נתבים ותחנות קצה השייכים לאותה רשת ‪ IP‬יכולים להעביר בינהם חבילות בעזרת פרוטוקול בשכבה ‪,Ethernet( 2‬‬
‫‪ PPP‬וכדומה)‬
‫‪ .0‬כל רשת בשכבה ‪ 2‬חייבת להיות מקושרת לפחות לרשת אחרת בשכבה ‪ 2‬בעזרת נתב‪.‬‬
‫טבלאות ניתוב‬
‫כל תחנת קצה ונתב מחזיקים טבלת ניתוב שמראה מה לעשות עם חבילת ‪.IP‬‬
‫העמודות העיקריות בטבלת הניתוב‪:‬‬
‫‪ .5‬כתובת יעד‪ :‬לאיזו רשת או תחנת קצה מתייחסת הכניסה הזו בטבלה‬
‫‪ :Next hop .2‬מה הנתב הבא בדרך ליעד‬
‫‪ :interface .0‬דרך איזה יציאת רשת לשדר את החבילה‬
‫יש חפיפה מסויימת בין ‪ Next hop‬ל‪ interface-‬ולמעשה ניתן לצמצם את המידע שהם מייצגים לעמודה אחת‪.‬‬
‫הנה טבלת הניתוב עבור הנתב ‪ R3‬מתוך הרשת המצויירת בדוגמא למעלה‪ .‬כפי שניתן לראות‪ 0 ,‬רשתות מחוברות ישירות‬
‫לנתב‪ ,‬והניתוב ל‪ 0-‬הרשתות האחרות עובר דרך ‪ .R4‬כאשר יש חיבור ישיר‪ ,‬הנתב יודע לשדר את החבילה לכתובת שרשומה‬
‫ככתובת היעד של החבילה‪ .‬אם אין חיבור ישיר‪ ,‬החבילה משודרת אל הנתב שרשום כ‪.next hop-‬‬
‫‪5‬‬
‫‪Interface‬‬
‫‪eth0‬‬
‫‪eth0‬‬
‫‪serial0‬‬
‫‪eth1‬‬
‫‪eth0‬‬
‫‪eth0‬‬
‫‪Next Hop‬‬
‫‪direct‬‬
‫‪direct‬‬
‫‪R4‬‬
‫‪direct‬‬
‫‪R4‬‬
‫‪R4‬‬
‫‪Destination‬‬
‫‪10.1.0.0/24‬‬
‫‪10.1.2.0/24‬‬
‫‪10.2.1.0/24‬‬
‫‪10.3.0.0/16‬‬
‫‪20.1.0.0/16‬‬
‫‪20.2.1.0/28‬‬
‫והנה טבלאות הניתוב עבור ‪ 0‬הנתבים ו‪ 2-‬המחשבים ברשת הזו‪:‬‬
‫חיפוש בטבלת הניתוב‬
‫החיפוש בטבלת הניתוב נעשה לפי כתובת היעד של החבילה‪ .‬מטרת החיפוש הוא למצוא את הכתובת של הנתב הבא שאליו‬
‫יש לשלוח את החבילה על מנת שתתקרב ליעדה‪ .‬אם כתובת היעד נמצאת ברשת שמחוברת ישירות לנתב‪ ,‬החבילה תישלח‬
‫לכתובת היעד‪.‬‬
‫‪6‬‬
‫סוגים של כניסות בטבלת הניתוב‬
‫‬‫‬‫‬‫‪-‬‬
‫ניתוב רשת‪ :‬כתובת היעד היא כתובת רשת (לדוגמא ‪ .)53.3.2.3220‬רוב הכניסות בטבלת ניתוב הן מהסוג הזה‬
‫ניתוב לתחנת קצה‪ :‬כתובת היעד היא כתובת של תחנה בודדת (לדוגמא ‪ .)53.3.5.2202‬בשימוש אם צריך ניתוב‬
‫מיוחד עבור שרת‪ ,‬וכן בדרך כלל בניתוב עצמי‪.‬‬
‫‪ : default route‬הניתוב שיהיה בשימוש במידה וכתובת היעד של החבילה לא מתאימה לאף אחת מהכניסות‬
‫האחרות בטבלה‬
‫כתובת עצמית (‪ :)loopback‬כניסה עבור הכתובת ‪.127.0.0.1‬‬
‫חיפוש הכניסה המתאימה ביותר‬
‫טבלת ניתוב יכול להכיל כמה כניסות עם חפיפה של כתובות ביניהם‪ .‬למשל‪ ,‬ניתן לנתב עבור רשת דרך יציאה אחת‪ ,‬אבל‬
‫עבור שרת מאותה רשת דרך יציאה אחרת‪ .‬הנתב במקרה כזה צריך להתייחס לכניסה היותר ספציפית‪ ,‬כלומר זו שכתובת‬
‫המסכה היא גדולה יותר‪ .‬שיטה זאת נקראת ‪.Long Prefix Match‬‬
‫לדוגמא‪ ,‬נניח שחבילה עם כתוב היעד ‪ 526.500.15.25‬מגיעה לנתב עם טבלת הניתוב הבאה‪:‬‬
‫‪Next Hop‬‬
‫‪R1‬‬
‫‪R2‬‬
‫‪R3‬‬
‫‪R3‬‬
‫‪R4‬‬
‫‪R4‬‬
‫‪R5‬‬
‫‪Destination‬‬
‫‪10.0.0.0/8‬‬
‫‪128.143.0.0/16‬‬
‫‪128.143.64.0/20‬‬
‫‪128.143.192.0/20‬‬
‫‪128.143.71.0/24‬‬
‫‪128.143.71.55/32‬‬
‫‪default‬‬
‫השורה השנייה‪ ,‬השלישית והחמישית כולן מתאימות לכתובת היעד‪ .‬מכיוון שהשורה החמישית היא זו שהמסכה שלה הכי‬
‫ארוכה‪ ,‬זו השורה שהנתב יבחר‪ ,‬ולכן החבילה תנותב לכיוון ‪.R4‬‬
‫שורת ה‪ default-‬מקבלת תמיד את המסכה ‪ 3.3.3.3‬על מנת שתהיה התאמה לכל כתובת עד שהיא‪ ,‬אולם השורה תיבחר‬
‫כעדיפות אחרונה‪ ,‬כלומר כאשר אין אף התאמה אחרת‪.‬‬
‫עדכון טבלאות ניתוב‬
‫בהמשך נסקור בהרחבה פרוטוקולי ניתוב‪ ,‬אשר תפקידן לעדכן את טבלאות הניתוב באופן דינאמי ובהתאם למצב הרשת‪.‬‬
‫אולם נוסף לפרוטוקולי הניתוב יש עוד אמצעים לעדכון טבלאות ניתוב‪:‬‬
‫‬‫‬‫‬‫‪-‬‬
‫הוספת כרטיס רשת‪ .‬ברגע שמוסיפים כרטיס רשת ומשייכים לו כתובת ‪ ,IP‬נוספת כניסה לטבלת הניתוב הכוללת את‬
‫הרשת אליה שייכת הכתובת החדשה‬
‫הוספה ידנית של ‪default gateway‬‬
‫הוספה ידנית של ניתוב עבור רשת או מחשב‬
‫תגובה להודעת ‪ICMP redirect‬‬
‫‪7‬‬
‫‪-‬‬
‫קבלה ועיבוד של חבילת ‪IP‬‬
‫עקרונית תהליך העיבוד של חבילת ‪ IP‬עבור נתב הוא די דומה לזה של תחנת עבודה רגילה‪ .‬הציור הבא ממחיש את תהליך‬
‫העיבוד‪:‬‬
‫חבילה מגיעה משכבת ה‪ data link-‬לשכבת ה‪( IP-‬האזור האפור)‪ ,‬לתוך תור הכניסה‪ .‬כאשר תורה להיות מעובדת‪ ,‬התחנה‬
‫מסתכלת קודם כל האם החבילה מיועדת אליה‪ .‬אם כן‪ ,‬מקלפים ממנה את שכבת ה‪ IP-‬ומעבירים אותה לשכבות הגבוהות‪.‬‬
‫אם לא‪ ,‬החבילה מיועדת לניתוב‪ .‬במידה והתחנה לא מאפשרת ניתוב‪ ,‬החבילה נזרקת‪ .‬אם התחנה מאפשרת ניתוב‪ ,‬התחנה‬
‫מסתכלת על טבלת הניתוב על מנת למצוא את ה‪ .next hop-‬לפי הערך שנשלף‪ ,‬החבילה משודרת לכיוון היעד הבא‪.‬‬
‫‪8‬‬
‫תהליך טיפול בחבילת ‪ IP‬בנתב‬
‫הנתב מנתח את ה‪ header‬של כל חבילה על פי הצעדים הבאים‪:‬‬
‫‪.5‬‬
‫‪.2‬‬
‫‪.0‬‬
‫‪.0‬‬
‫‪.1‬‬
‫‪.8‬‬
‫‪.1‬‬
‫בדיקת נכונות של ה‪ IP header -‬עפ"י ‪header checksum‬‬
‫קריאת כתובת היעד של החבילה‬
‫חיפוש התאמה בטבלת הניתוב‬
‫הורדת ה‪ TTL-‬ב‪5-‬‬
‫במידת הצורך‪ ,‬ביצוע פרגמנטציה (שבירת החבילה לכמה מסגרות בהתאם למגבלות הפרוטוקול הפיזי)‬
‫שידור החבילה ל‪next hop-‬‬
‫במידת הצורך‪ ,‬שליחת הודעת ‪ICMP‬‬
‫‪9‬‬
‫נתבים ( ‪) ROUTERS‬‬
‫תפקידו של הנתב הוא להעביר חבילות ‪ IP‬מרשת ‪ IP‬אחת לרשת אחרת‪ .‬ישנם נתבים בגדלים שונים ובקצבים שונים‪ ,‬בהתאם‬
‫לתפקידם ומיקומם‪ .‬נתבים ביתיים למשל‪ ,‬הם זולים ופשוטים‪ ,‬מכיוון שהם משרתים מספר קטן מאד של תחנות קצה‪ .‬נתבים‬
‫נפוצים מהסוג הזה הם של ‪ LinkSys‬ושל ‪ .D-Link‬בקצה השני של הסקאלה נמצא את הנתבים המשמשים את שדרת‬
‫האינטרנט‪ ,‬שהם עוצמתיים במיוחד ויקרים מאד‪ .‬השולטים בשוק הזה הם חברות ‪ Cisco‬ו‪ .Juniper-‬בין לבין ניתן למצוא‬
‫נתבים המשרתים רשתות בינוניות וגדולות‪ .‬חברת ‪ Cisco‬היא השליטה הכמעט בלעדית בשוק זה‪.‬‬
‫מרכיבים פונקציונאלים‬
‫מבחינה פונקציונאלית קיימים ‪ 2‬מרכיבים ראשיים‪:‬‬
‫‪-‬‬
‫‪-‬‬
‫קביעת החלטות ניתוב (‪ :)Routing Functions‬קבלת נתונים על מבנה‬
‫הרשת וביצוע אלגוריתמים לפיהם נקבעים כללי ניתוב שונים‪ .‬מרכיב‬
‫זה נקרא גם ‪.control plane‬‬
‫הניתוב בפועל (‪ :)IP Forwarding‬קליטת חבילות ב‪ interface-‬מסויים‪,‬‬
‫ושידורן דרך ‪ interface‬אחר שמקרב אותן ליעד‪ .‬מרכיב זה נקרא גם‬
‫‪.data plane‬‬
‫‬‫החוליה המקשרת בין ‪ 2‬החלקים היא טבלת הניתוב‪ .‬החלק העליון מזין את‬
‫טבלת הניתוב‪ ,‬ואילו החלק התחתון משתמש בטבלה הזו‪.‬‬
‫מרכיב ה ‪ROUTING FUNCTIONS -‬‬
‫כאמור תפקידו של חלק זה בנתב הוא להזין בסופו של דבר את טבלת הניתוב בנתונים‪ .‬לשם כך הוא‪:‬‬
‫‬‫‬‫‬‫‪-‬‬
‫מפיץ נתונים ברשת על החיבורים שלו לרשתות סמוכות ולנתבים שכנים‪ ,‬בהתאם לפרוטוקול הניתוב הממומש‬
‫באותה רשת‪.‬‬
‫קורא נתונים על מצב הרשת מנתבים אחרים‪.‬‬
‫מעבד את הנתונים על מצב הרשת‪ ,‬ומפעיל אלגוריתמים על מנת למצוא נתיבים לרשתות אחרות (לאו דווקא שכנות)‬
‫מעדכן את טבלת הניתוב בהתאם לחישובים שלו‬
‫כל התהליך החישובי הזה נעשה במעבד מרכזי‬
‫מרכיב הניתוב‬
‫חלק זה עוסק אך ורק בקליטת חבילות וניתובן לכיוון היעד‪ .‬כאשר חבילה מגיעה‪ ,‬היא מועברת ל‪ interface-‬היציאה‪ ,‬נעטפת‬
‫ב‪ header-‬של שכבה ‪ 2‬ומשודרת לכיוון היעד הבא‪ .‬על מנת שהנתב יוכל לעבוד בקצבים גבוהים‪ ,‬חלק זה יותר פשוט לוגית‪.‬‬
‫כל חבילה שמתקבלת מועברת ליעד בהתאם לטבלה‪ ,‬אחרי שה‪ Header-‬של החבילה עובר התאמות‪.‬‬
‫‪10‬‬
‫מרכיבים פיזיים‪:‬‬
‫נתב מורכב מ‪:‬‬
‫‬‫‬‫‪-‬‬
‫‪ :Network Interfaces‬יציאות פיזיות או ממשק אלחוטי‪ .‬בעזרתו מקושרים‬
‫לתחנות אחרות‬
‫‪ :Interconnection Network‬המרכיב המקשר בין ה‪interfaces-‬‬
‫השונים ומעביר את החבילות מהם ואליהם‬
‫מעבד וזיכרון לביצוע פעולות חישוב שונות לשם ביצוע החלטות ניתוב‬
‫ושמירה של טבלאות ניתוב‪.‬‬
‫אם משתמשים למשל במחשב בתור נתב‪ ,‬כרטיסי הרשת מספקים את ממשק‬
‫הרשת‪ ,‬ה‪ PCI bus-‬משמש לקישוריות והמעבד משמש להחלטות על הניתוב‪.‬‬
‫בנתבים מסחריים כמו של סיסקו למשל‪ ,‬ממשקי הרשת והחומרה המקשרת‬
‫ביניהם הרבה יותר מתוחכמים‪ ,‬כך שלמעבד נשארת הרבה פחות עבודה‪.‬‬
‫שיטות ניתוב‬
‫מבוא‬
‫אזורי ניתוב אוטונומיי ם ( ‪) AS‬‬
‫אזורי ניתוב (‪ Autonomous Systems‬או בקיצור ‪ )AS‬הינם אזורים באינטרנט שמהווים יחידה שמנהלת את עצמה בכל הנוגע‬
‫לניתוב‪ .‬דוגמא טובה לכך היא למשל הרשת של קמפוס הטכניון‪ .‬דוגמא אחרת היא רשת של ספק אינטרנט כמו נטוויז'ן (כולל‬
‫תשתית פלוס כל המשתמשים המחוברים כרגע)‪.‬‬
‫בתוך ‪ AS‬הניתוב מתנהל בצורה שונה מאשר בין ‪ AS‬שונים‪ ,‬וגם הפרוטוקולים שבהם משתמשים שונים בין ‪ 2‬המקרים‪.‬‬
‫פרוטוקולים שעובדים בתוך ‪ AS‬נקראים ‪ )Interior Gateway Protocols ( IGP‬ואילו הפרוטוקולים שעובדים בין ה‪ AS-‬השונים‬
‫נקראים ‪.)Exterior Gareway Protocols( EGP‬‬
‫הטבלה הבאה מציגה את ההבדלים בין שני המקרים‪.‬‬
‫ניתוב פנימי‬
‫ניתוב חיצוני‬
‫היכן פועל‬
‫בתוך ‪AS‬‬
‫מנתב בין ‪ , AS‬ובכך למעשה מקשר את כל חלקי האינטרנט‬
‫ממה מתעלם‬
‫לא מתייחס כלל לשיקולי ניתוב מחוץ‬
‫ל‪ AS-‬בו הוא עובד‬
‫לא מתייחס למה שקורה בתוך ‪AS‬‬
‫פרוטוקולים נפוצים‬
‫‪ OSPF‬הנפוץ ביותר‪ RIP ,‬ישן ופשוט‬
‫יותר‪ IS-IS ,‬שדומה ל‪ OSPF-‬אבל יותר‬
‫פשוט‬
‫‪ BGP‬הוא הפרוטוקול הבלעדי‬
‫‪11‬‬
‫שיטות ניתוב‬
‫קיימות ‪ 2‬שיטות ניתוב עיקריות‪ Distance Vector :‬ו‪ . Link State-‬כאן נרחיב את הדיבור רק על ‪ ,Link State‬עליו מתבסס‬
‫פרוטוקול ‪ ,OSPF‬אבל בכל זאת נדגיש מה ההבדלים בין שתי השיטות‪.‬‬
‫בשיטת ה‪ ,Link State-‬כל נתב רואה את התמונה של הרשת‪ ,‬כולל כל הנתבים ברשת והקשרים בין הנתבים השונים‪ .‬כאשר‬
‫הנתב צריך להחליט על הדרך הקצרה ביותר ליעד‪ ,‬הוא מריץ אלגוריתם למציאת הנתיב הקצר ביותר אל היעד‪ ,‬ובהתאם‬
‫לתוצאות האלגוריתם מחליט מהי התחנה הבאה לכיוון היעד‪ .‬כדי שהשיטה הזו תעבוד כהלכה‪ ,‬לכל הנתבים ברשת צריכה‬
‫להיות תמונה אחידה על מבנה הרשת‪ ,‬ולשם כך מושקע מאמץ רב בסינכרון בין הנתבים‪.‬‬
‫בשיטת ה‪ , Distance Vector-‬אין לכל נתב תמונה של הרשת‪ .‬במקום זאת כל נתב מספר לשכנים שלו לאילו יעדים הוא יכול‬
‫להגיע‪ ,‬ומה המרחק שלו לכל יעד‪ .‬נתב המקבל הודעה בקשר ליעד מסויים‪ ,‬מפיץ אותה הלאה‪ ,‬כמובן עם תוספת המרחק בינו‬
‫לבין הנתב דרכו הוא יגיע לאותו יעד‪ .‬שיטה זו פשוטה יותר למימוש אך נחשבת פחות אמינה ופחות אפקטיבית ככל שהרשת‬
‫גדלה‪.‬‬
‫כאמור‪ ,‬אנו נתמקד רק בשיטת ה‪ Distance Vector-‬אשר בה נעסוק בניסוי‪.‬‬
‫מטרתו של אלגוריתם ניתוב הוא למצוא את הדרך הזולה ביותר להעביר חבילה בין ‪ 2‬נקודות‪.‬‬
‫המונח "זול" מתייחס למהירות וזמינות של הקו‪ .‬קו מהיר יותר ובעל רוחב פס גדול ייחשב זול יותר מאשר קו איטי בעל פס‬
‫יותר צר‪ .‬לכן‪ ,‬לכל יציאה בנתב מדביקים משקל (‪ )metric‬בהתאם לסוג הקו‪ .‬מכאן מתבצע התהליך הבא‪:‬‬
‫‬‫‬‫‬‫‪-‬‬
‫נתבים מעבירים ביניהם מידע על קשרים בין נתבים והמשקלים של כל קשר‬
‫כל נתב בונה גרף עם משקלים בהתאם למידע‪ ,‬שמשקף את מבנה הרשת‬
‫כל נתב‪ ,‬בהתאם לתמונת הגרף שהוא יצר‪ ,‬מריץ אלגוריתם למציאת הנתיב הקצר ביותר לכל תת‪-‬רשת‪.‬‬
‫הנתב מעדכן את טבלת הניתוב בהתאם לתוצאות הריצה של האלגוריתם‪.‬‬
‫לדוגמא‪ ,‬הרשת הזו‪:‬‬
‫מתורגמת לגרף כזה‪:‬‬
‫)‪Net (E,F‬‬
‫‪F‬‬
‫‪1‬‬
‫)‪Net (C,E‬‬
‫‪1‬‬
‫‪E‬‬
‫‪2‬‬
‫‪C 2‬‬
‫‪5‬‬
‫‪1‬‬
‫)‪Net (B,C‬‬
‫)‪Net (D,E‬‬
‫‪5‬‬
‫‪D‬‬
‫‪1‬‬
‫)‪Net (B,D‬‬
‫‪1‬‬
‫‪12‬‬
‫‪1‬‬
‫‪B‬‬
‫)‪Net (A,B‬‬
‫‪2‬‬
‫‪2‬‬
‫‪A‬‬
‫יש לזכור שקשר בין ‪ 2‬נתבים יכול להיות קו ‪ serial‬או רשת מקומית שבו ‪ 2‬הנתבים מחוברים ביניהם דרך מתג אחד או יותר‪.‬‬
‫כאשר נעשית ההמרה לגרף אין הבחנה בין שני המקרים האלה‪.‬‬
‫)‪OPEN SHOTEST PATH FISRT (OSPF‬‬
‫פרוטוקול ניתוב זה הוא הנפוץ ביותר במשפחת ה‪ ,Link State-‬וקרוב לודאי הפרוטוקול הנפוץ ביותר בקבוצת ה‪OSPF .IGP-‬‬
‫עבר כמה גרסאות עד שהגיע לגרסא הנוכחית שנקראת ‪( OSPFv2‬למרות שהיו לפחות ‪ 1‬גרסאות שונות)‪.‬‬
‫כיצד עובד הפרוטוקול‬
‫בשיטת ‪ Link State‬לכל נתב יש תמונה מלאה של הרשת‪ .‬מצד אחד שיטה זו מאפשרת להגיב מהר על שינויים ברשת‪ ,‬אבל‬
‫מצד שני זה מציב אתגר מסוג שונה‪ ,‬מפני שעל מנת שהרשת תתפקד לכל הנתבים צריכה להיות תמונה עקבית‪ ,‬כלומר‬
‫שתמונת הרשת של נתב א' לא תסתור את זו של נתב ב'‪.‬‬
‫‬‫‪-‬‬
‫‬‫‪-‬‬
‫כל נתב יוצר קשר עם השכנים שלו (נתבים אחרים שנמצאים עם אותו ‪ LAN‬כמוהו)‬
‫כל נתב מייצר הודעת )‪ Link State Advertisement (LSA‬שמופצת לכל הנתבים האחרים ברשת‪ .‬ה‪ LSA-‬כולל‪:‬‬
‫‪Link ID o‬‬
‫‪State of Link o‬‬
‫‪Cost o‬‬
‫‪neighbors of link o‬‬
‫כל נתב מחזיק מאגר נתונים שנבנה מתוך ה‪ .LSA-‬מאגר זה נקרא ‪ Link State Database‬והוא מתאר את הרשת‬
‫בצורה של גרף עם משקלים‬
‫כל נתב משתמש במאגר הנתונים של ה‪ LSA-‬ומריץ אלגוריתם דיאקסטרה למציאת הנתיב הקצר ביותר לכל תת‬
‫רשת‪ .‬תוצאות ההרצה מוזנות לתוך טבלת הניתוב‪.‬‬
‫חלוקה לאזורים‬
‫על מנת להיות מסוגלים לתמוך ברשתות גדולות‪ OSPF ,‬מאפשר חלוקה לאזורים (‪ .)Area‬בכל אזור יש לפחות נתב אחד‬
‫שמתקשר אל מחוץ לאזור ונקרא ‪ .ABR‬כל שאר הנתבים הם נתבים פנימים לאזור‪ ,‬ונקראים ‪ .Internal Routers‬נתבים אלה‬
‫מכירים רק את האזור עצמו‪ ,‬כלומר גרף הרשת שהם מחזיקים מכיל רק נתבים מהאזור שלהם‪ .‬לשאר אזורי הרשת הם‬
‫מגיעים דרך ה‪ ABR-‬שמהווה ה‪ default gateway-‬שלהם‪ .‬בצורה כזו‪ ,‬ה‪ Link State Database-‬קטן באופן משמעותי‪.‬‬
‫‪ Area 0‬נקרא גם ‪ . Backbone Area‬כל האזורים האחרים מחוברים אליו‪ ,‬וכל התקשורת שנעשית בין האזורים עוברת דרכו‪.‬‬
‫לכל רשת ‪ OSPF‬חייב להיות ‪ .area 0‬נתב ששייך ל‪ Area 0-‬נקרא ‪.backbone router‬‬
‫סוג נוסף של נתב הוא ‪ .ASBR‬נתב כזה מתקשר לא רק ב‪ OSPF-‬אלא גם בפרוטוקולים אחרים עם רשתות שכנות‪.‬‬
‫‪13‬‬
‫הציור הבא מסכם את כל סוגי האזורים והרשתות‪:‬‬
‫סוגי הודעות ‪OSPF‬‬
‫הודעה יכולה להיות אחד מהסוגים הבאים‪:‬‬
‫‪.5‬‬
‫‪.2‬‬
‫‪.0‬‬
‫‪.0‬‬
‫‪.1‬‬
‫‪ – Hello‬הנתב מודיע שהוא קיים ומתפקד‪ .‬ע"י שליחה וקבלה של הודעות אלה נוצרים יחסי שכנות בין נתבים באותו‬
‫איזור‪ .‬זו הודעה עם מעט אינפורמציה שנשלחת לעיתים תכופות (כל ‪ 53‬שניות) ואם עבור נתב מסויים לא מקבלים‬
‫‪ Hello‬תוך ‪ 03‬שניות הוא נחשב מנותק‬
‫‪ – Database Description‬בעיקר משמש להחלפה של ‪ LSA headers‬בין ‪ 2‬מחשבים‪.‬‬
‫‪ – Link State Request‬כאשר לנתב חסר ‪ LSA‬מסויים או שעומד לפוג תוקפו‪ ,‬הוא מבקש אותו מהנתב שסיפק לו את‬
‫ה‪ LSA-‬מלכתחילה‬
‫‪ :Link State Update‬עדכון של ‪ LSA‬אחד או יותר‪ .‬יכול גם להישלח כתשובה ל‪.Link State Request‬‬
‫‪ :Link State Acknowledgement‬סוג ‪ 1‬ואחרון נשלח כחיווי ל‪.Link State Update-‬‬
‫)‪DESIGNATED ROUTER (DR‬‬
‫בכל איזור יש נתב אחד שנקרא ‪ DR‬ואחד אחר לגיבוי שנקרא ‪ .BDR‬הנתב הזה נבחר ע"י הנתבים באופן מבוזר‪ .‬כאשר נתב‬
‫מזהה שינוי ברשת ושולח עדכון‪ ,‬העדכון נשלח רק ל‪ DR-‬ו‪ .BDR-‬ה‪ DR-‬דואג לשלוח את העדכון הזה לנתבים האחרים‪.‬‬
‫סוגי ‪LSA‬‬
‫‪ROUTER LSA‬‬
‫כל נתב מייצר ‪ LSA‬כזה‪ ,‬בו הוא מספק רשימה של כל ה‪ Links-‬שנמצאים באזור שלו‪ ,‬כולל המשקלים שלהם והסוג שלהם‪.‬‬
‫נתב המקבל ‪ LSA‬מסוג כזה יעביר אותו הלאה‪ ,‬אבל רק בתוך האזור בו נמצא הנתב‪ .‬לכן ‪ ABR‬לא יעביר מידע מסוג כזה‬
‫מאזור אחד לאזור אחר‪.‬‬
‫‪14‬‬
‫‪NETWORK LSA‬‬
‫ה‪ DR-‬מייצר ‪ LSA‬מסוג זה‪ .‬הוא מכיל רשימה של הרשתות באזור של הנתב‪ ,‬ואילו נתבים מחוברים לכל רשת‪ .‬גם ‪ LSA‬זה לא‬
‫יוצא מתחומי האזור בו הוא מתפרסם‪.‬‬
‫‪SUMMARY LSA‬‬
‫נתבי ‪ ABR‬מפיצים הודעות מסוג ‪ Summary LSA‬על מנת לפרסם את כל הרשתות אשר נמצאות מחוץ לאזור‪ ,‬שהם עדיין חלק‬
‫מה‪ .AS-‬סוג זה יהיה קיים רק ברשת בו מוגדרים כמה אזורים‪ ,‬כאשר ‪ Area 0‬מקשר ביניהם‪ .‬אין כאן מידע על לינקים‪ ,‬אלא‬
‫במקום זה רשימה של רשתות ועבור כל רשת הנתב שמקשר אליו‪.‬‬
‫דוגמא ‪:‬‬
‫‪Area 1‬‬
‫‪10.0.103.1‬‬
‫‪10.0.102.1‬‬
‫‪10.0.103.0‬‬
‫‪10.0.100.2/24‬‬
‫‪10.0.100.3/24‬‬
‫‪10.0.102.0‬‬
‫‪10.0.101.1/24‬‬
‫‪10.0.100.1/24‬‬
‫‪10.0.10.2/24‬‬
‫‪ABR‬‬
‫‪Area 0‬‬
‫‪10.0.10.1/24‬‬
‫‪10.0.11.1/24‬‬
‫‪10.0.12.1/24‬‬
‫‪10.0.12.2/24‬‬
‫‪10.0.122.0‬‬
‫‪10.0.11.2/24‬‬
‫נתב ה‪( ABR-‬מסומן בחץ) ישלח עדכוני ‪ Link State‬אל הנתבים ב‪ Area 0-‬ואל הנתבים ב‪ .Area 1-‬המידע שמפורסם לאזור‬
‫הראשון שונה מזה שמפורסם באזור השני‪ ,‬מכיוון שלכל אזור הנתב מעדכן רק מה שרלוונטי אליו‪.‬‬
‫הנה ה‪ Link States-‬עבור ‪:Area 1‬‬
‫‪:Router Link State‬‬
‫‪15‬‬
‫יש רק אחד‪ ,‬זה המחובר ליציאה עם הכתובת ‪53.3.533.5‬‬
‫‪:Network Link State‬‬
‫גם כאן הנתב יפרסם רק אחד‪ .‬זוהי הרשת ‪ 53.3.533.3‬אליה מחוברים ‪ 0‬הנתבים ב‪.area 1-‬‬
‫‪:Summary Link State‬‬
‫הנתב יפרסם שאל הרשתות‪ 53.3.52.3 ,53.3.55.3 ,53.3.53.3 :‬ו‪ 53.3.522.3-‬ניתן להגיע דרכו בכתובת ‪.53.3.533.5‬‬
‫הנה ה‪ Link States-‬עבור ‪:Area 0‬‬
‫‪:Route Link State‬‬
‫הנתב יפרסם רק אחד‪ ,‬זה המחובר ליציאה עם הכתובת ‪53.3.53.2‬‬
‫‪:Network Link State‬‬
‫גם כאן הנתב יפרסם רק אחד‪ .‬זוהי הרשת ‪ 53.3.53.3‬אליה מחוברים נתב ה‪ ABR-‬והנתב המרכזי‪.‬‬
‫‪:Summary Link State‬‬
‫הנתב יפרסם שאל הרשתות‪ 53.3.532.3 ,53.3.533.3 :‬ו‪ 53.3.530.3-‬ניתן להגיע דרכו בכתובת ‪.53.3.53.2‬‬
‫‪LINK STATE DATABASE‬‬
‫‬‫‬‫‪-‬‬
‫לכל ה‪ Internal Routers-‬של אותו איזור יש ‪ LSDB‬זהה‪.‬‬
‫כאשר ‪ 2‬נתבים מזהים זה את זה לראשונה‪ ,‬הם מחליפים ביניהם את כל ה‪ LSDB-‬שלהם‬
‫עדכון ‪ Link State‬נעשה דרך כתובות ‪.multicast‬‬
‫מבנה הודעת ‪OSPF‬‬
‫‪ OSPF‬מורכב מ‪ header-‬וגוף ההודעה‪ .‬הפורמט של גוף ההודעה משתנה בהתאם לסוג ההודעה‪ ,‬אולם מבנה ה‪ header -‬זהה‬
‫בכולם‪.‬‬
‫מבנה ה ‪HEADER -‬‬
‫‪OSPF Message‬‬
‫‪Header‬‬
‫‪Body of OSPF Message‬‬
‫‪type‬‬
‫‪message length‬‬
‫‪version‬‬
‫‪source router IP address‬‬
‫‪Area ID‬‬
‫‪authentication type‬‬
‫‪checksum‬‬
‫‪authentication‬‬
‫‪16 authentication‬‬
‫‪32 bits‬‬
‫‬‫‬‫‬‫‬‫‬‫‪-‬‬
‫‪ :Type‬מהו סוג ההודעה‪.‬‬
‫‪ :message length‬אורך הודעת ה‪ OSPF-‬כולל ה‪header-‬‬
‫‪ : IP Address‬מכיוון שלנתב יש יותר מכתובת אחת‪ ,‬בדרך כלל תילקח הכתובת הגבוהה ביותר‬
‫‪ :Area ID‬מספר ה‪ area-‬כפי שהוסבר למעלה‬
‫‪ :Checksum‬של כל החבילה כולל ‪.headers‬‬
‫‪ :Au Type‬יכול לקבל ‪ 3,5‬או ‪ 2‬בהתאם לרמת האוטנטיקציה‬
‫‪-‬‬
‫מי שרוצה להתעמק יותר בפורמט של כל הודעה יכול להסתכל כאן‪http://cisco.iphelp.ru/faq/5/ch08lev1sec1.html :‬‬
‫שאלות הכנה לחלק א'‬
‫‪ .5‬מה ההבדל בין מתג לנתב? מתי משתמשים בכל אחד מהם?‬
‫‪ .2‬מה התפקיד של ‪?default gateway‬‬
‫‪ .0‬אילו מבין כניסות הניתוב הבאות משמשת בפועל כ‪( default gateway-‬יכולה להיות יותר מתשובה אחת נכונה)?‬
‫‪network‬‬
‫‪mask‬‬
‫‪0.0.0.0‬‬
‫‪10.0.0.0‬‬
‫‪255.0.0.0‬‬
‫‪0.0.0.0‬‬
‫‪0.0.0.0‬‬
‫‪0.0.0.0‬‬
‫‪1‬‬
‫‪2‬‬
‫‪3‬‬
‫נמקו את תשובתכם‬
‫‪ .0‬נתונה טבלת הניתוב הבאה‪ .‬העמודה השמאלית מייצגת את הרשת המנותבת‪ ,‬והעמודה הימנית את הנתב‬
‫המתאים לכל רשת‪.‬‬
‫‪Next Hop‬‬
‫‪R1‬‬
‫‪R2‬‬
‫‪R3‬‬
‫‪R4‬‬
‫‪R5‬‬
‫‪R6‬‬
‫‪R7‬‬
‫‪Destination‬‬
‫‪10.0.0.0/8‬‬
‫‪512.168.0.0/16‬‬
‫‪512.168.1.0/24‬‬
‫‪512.168.2.0/23‬‬
‫‪512.168.4.0/22‬‬
‫‪512.168.4.64/26‬‬
‫‪512.168.5.0/32‬‬
‫‪17‬‬
‫‪512.168.10.0/24‬‬
‫‪default‬‬
‫‪R8‬‬
‫‪R9‬‬
‫לאיזה נתב ינותבו הכתובות הבאות? נמקו בקצרה את תשובתכם‪.‬‬
‫‪.a‬‬
‫‪.b‬‬
‫‪.c‬‬
‫‪.d‬‬
‫‪.e‬‬
‫‪.f‬‬
‫‪.g‬‬
‫‪192.168.1.34‬‬
‫‪192.168.3.34‬‬
‫‪192.168.4.102‬‬
‫‪192.168. 5.102‬‬
‫‪192.168.7.102‬‬
‫‪192.168.9.102‬‬
‫‪192.168.11.102‬‬
‫‪18‬‬
‫‪OSPF‬‬
‫נתונה הרשת הבאה‪:‬‬
‫‪Area 1‬‬
‫‪10.0.103.1‬‬
‫‪10.0.102.1‬‬
‫‪10.0.103.0‬‬
‫‪10.0.100.3/24‬‬
‫‪10.0.100.2/24‬‬
‫‪10.0.102.0‬‬
‫‪10.0.101.1/24‬‬
‫‪10.0.100.1/24‬‬
‫‪10.0.10.2/24‬‬
‫‪Area 3‬‬
‫‪Area 0‬‬
‫‪10.0.11.2/24‬‬
‫‪10.0.112.0‬‬
‫‪10.0.10.1/24‬‬
‫‪10.0.11.1/24‬‬
‫‪10.0.12.1/24‬‬
‫‪10.0.12.2/24‬‬
‫‪Area 2‬‬
‫‪10.0.122.0‬‬
‫‪ .5‬כמה ‪ ABR‬יש ברשת הזו?‬
‫‪ .2‬אילו רשתות יפרסם הנתב בגבול ‪ Area 3‬ב‪ Summary LSA-‬לכיוון ‪?Area 3‬‬
‫‪ .0‬כמה לינקים יפרסם הנתב שכתובתו ‪ ?53.3.532.5‬כמה נתבים יקבלו את המידע הזה?‬
‫‪19‬‬
‫מפגש שני – מיתוג‬
‫הערה‪ :‬מבוא זה הוא אמנם קצר‪ ,‬אבל חשוב להשקיע בו זמן ולהבין אותו כהלכה‪ ,‬על מנת לבצע את הניסוי כראוי‪.‬‬
‫מתגים ( ‪) SWITCHES‬‬
‫תפקידו של המתג הינו לקשר בין מחשבים ברשת המקומית‪ .‬המונח באנגלית הוא ‪ .Network Switch‬בעבר נהוג היה‬
‫להשתמש במונח ‪ bridge‬או ‪ transparent bridge‬ומונחים זהים לחלוטין‪ .‬מתגים פועלים בשכבה ‪ .2‬ברוב הרשתות המקומיות‬
‫הפרוטוקול הינו ‪ .Ethernet‬מהירות הקו הנפוצה ביותר היא ‪ ,100Mbps‬אולם מהירות ‪ 1Gbps‬חודרת במהירות ותוך שנים‬
‫ספורות רוב הרשתות יעבדו במהירות זו‪.‬‬
‫ברשתות ביתיות וקטנות יותקנו בדרך כלל מתגים מאד פשו טים וזולים‪ .‬במתגים אלו אין כלל צורך בהגדרות‪ .‬כל שצריך‬
‫לעשות הוא לחבר כבלים בין המתג למחשבים או לנתב‪ ,‬והמתג יקשר בין כולם‪.‬‬
‫מתג פשוט‬
‫ברשתות גדולות יותר יש צורך במתגים יותר מתוחכמים שניתן לקנפג ולנהל‪ .‬מתגים אלו כוללים יישומים מורחבים של‬
‫פרוטוקולים לשכבה ‪( 2‬כמו למשל ‪ STP‬ו‪ ) VLAN-‬וכן יישומים נוספים ולעיתים גם מימוש פרוטוקולים בשכבות היותר גבוהות‬
‫עד רמת האפליקציה‪ .‬במסגרת הניסוי אנו נתמקד בתפקידו הבסיסי בלבד של מתג‪ ,‬ולא נגלוש לפונקציונאליות הנוספת‪.‬‬
‫מתג מתוחכם‬
‫טופולוגיות‬
‫בראשית ה‪ Ethernet-‬הגיע בטופולוגיה של ‪ .bus‬הרבה מחשבים היו מחוברים לאותו סגמנט‪ ,‬וכאשר אחד היה משדר כל‬
‫המחשבים האחרים היו שומעים ולא היו מסוגלים לשדר גם הם באותו הזמן‪ .‬לכן הטכנולוגיה של ‪ CSMA/CD‬הייתה‬
‫משמעותית‪.‬‬
‫זה נראה בערך כך‪:‬‬
‫‪20‬‬
‫היום‪ ,‬ולמעשה כבר די הרבה שנים‪ ,‬אין טופולוגיות כאלו‪ .‬הרשת היא רשת ממותגת‪ ,‬כלומר כל המחשבים מחוברים למתג‪.‬‬
‫בטופולוגיה כזו‪ ,‬כל חיבור בין מחשב למתג מהווה מעין ‪ Bus‬משלו‪ .‬משמעות הדבר היא ש‪:‬‬
‫‪ .5‬כמה נקודות יכולות לשדר בו זמנית‬
‫‪ .2‬כאשר נקודה אחד משדרת‪ ,‬לא בהכרח כל הנקודות האחרות יקבלו את התשדורת הזו‬
‫‪ .0‬נקודות שונות על אותו ‪ LAN‬יכולות להשתמש בקצבים שונים של הפרוטוקול (‪.)Mbps 5333 ,533 ,53‬‬
‫הטופולוגיה נראית בערך כך‪:‬‬
‫‪D‬‬
‫‪H‬‬
‫‪C‬‬
‫‪G‬‬
‫‪B‬‬
‫‪F‬‬
‫‪A‬‬
‫‪E‬‬
‫‪LEARNING SWITCH‬‬
‫הזכרנו כבר בסעיף הקודם‪ ,‬שבטופולוגיה של היום כאשר מחשב אחד משדר למחשב שני‪ ,‬לא בהכרח כל המחשבים האחרים‬
‫שומעים את התעבורה הזו‪ .‬כיצד זה נעשה? הנה ההסבר‪.‬‬
‫נניח שבציור למעלה‪ ,‬מחשב ‪ A‬מחובר לפורט ‪ 5‬במתג‪ ,‬מחשב ‪ B‬לפורט ‪ 2‬וכך הלאה‪ .‬המתג מחזיק טבלה שממפה בין‬
‫כתובות ‪ MAC‬לבין הפורט שמאחוריו הם נמצאים (טבלת ‪ .)forwarding‬אם מגיעה למתג חבילה שמיועדת לכתובת מסוימת‬
‫שמופיעה בטבלה‪ ,‬המתג ישדר את החבילה רק לאותו פורט שמאחוריו נמצא המחשב‪ .‬אם החבילה מיועדת לכתובת שלא‬
‫מופיעה בטבלה‪ ,‬או שזו חבילת ‪ ,multicast‬המתג מבצע פעולה שנקראת ‪ flooding‬שבה החבילה משודרת דרך כל הפורטים‪.‬‬
‫נניח לדוגמא שעשינו ‪ RESET‬למתג‪ ,‬וטבלת המיפוי ריקה‪.‬‬
‫כאשר מחשב ‪ A‬משדר חבילה למחשב ‪ ,E‬מכיוון שמחשב ‪ E‬אינו ממופה בטבלה‪ ,‬מתבצע ‪ flooding‬וכל המחשבים האחרים‬
‫מקבלים גם הם את החבילה (הם יזרקו אותה מהר מאד כי יגלו שה‪ Destination MAC address-‬אינו מתאים לכתובת שלהם)‪.‬‬
‫בנוסף‪ ,‬כתובת של מחשב ‪ A‬ממופת בטבלה על פי הפורט שממנו הגיעה החבילה‪.‬‬
‫‪21‬‬
‫כאשר ‪ E‬עונה ל‪ A ,A-‬כבר נמצא בטבלה כי הוא שידר חבילה מקודם‪ .‬לכן החבילה מועברת רק לפורט ‪ .5‬שאר המחשבים לא‬
‫יראו את החבילה הזו‪.‬‬
‫טבלת ה‪ Forwarding-‬אינה חד‪-‬חד ערכית‪ .‬ברוב הרשתות מתגים משורשרים אחד לשני‪ .‬במצב כזה‪ ,‬פורט שמשמש לחיבור‬
‫עם מתג אחר יהיה ממופה למספר גדול של כתובות‪.‬‬
‫הציור למטה הוא דוגמא לכך‪ .‬נניח שהמתגים מחוברים ביניהם בפורט ‪ 20‬בשני המתגים‪ .‬טבלת ה‪ forwarding-‬במתג הימני‬
‫תמפה את המחשבים ‪ B ,A‬ו‪ C-‬עם פורט ‪.20‬‬
‫‪G‬‬
‫‪F‬‬
‫‪E‬‬
‫‪C‬‬
‫‪D‬‬
‫‪22‬‬
‫‪B‬‬
‫‪A‬‬
‫לולאות ברשת ממותגת‬
‫נניח שקיימת הרשת הבאה‪ ,‬וכל טבלאות ה‪ forward -‬במתגים ריקות‪.‬‬
‫‪S2‬‬
‫‪S4‬‬
‫‪S1‬‬
‫‪B‬‬
‫‪A‬‬
‫‪S3‬‬
‫נניח שמחשב ‪ A‬משדר חבילה אחת ל‪ .B-‬החבילה מגיעה למתג ‪ .S1‬המתג מבצע ‪ Flooding‬ושולח את החבילה ל‪ S2-‬ול‪.S3-‬‬
‫הם שולחים את החבילה ל‪ S4-‬וגם אחד לשני‪ .‬בשלב הזה כבר ‪ 0‬חבילות משוכפלות‪ .‬השכפול ממשיך ומתעצם ואותה חבילה‬
‫עוברת אינספור פעמים ממתג למתג עד שהרשת קורסת‪.‬‬
‫הפיתרון לבעיה כזו – מניעת לולאות ברשת‪ .‬לצורך כך קיים פרוטוקול ‪ ,Spanning Tree‬או בקיצור ‪ .STP‬במסגרת פרוטוקול זה‬
‫מתגים מחליפים ביניהם מידע בעזרת )‪.Bridge Protocol Data Units (BPDU‬‬
‫הנה עיקרי הפרוטוקול‪:‬‬
‫‬‫‬‫‬‫‬‫‪-‬‬
‫המתגים מסכימים על מתג שיהווה שורש העץ ‪.Root Bridge -‬‬
‫כל מתג מחשב את ה‪ ,Designated Cost-‬שהוא המרחק ממנו ל‪.Root Bridge-‬‬
‫‪1‬‬
‫כל מקטע בוחר את ה‪ ,Designated Bridge-‬שהוא המתג דרכו ניתן להגיע ל‪ .Root Bridge-‬יציאת הרשת של‬
‫שמחברת את ה‪ Designated Bridge-‬למקטע נקראת ‪.Designated port‬‬
‫כל מתג בוחר את ה‪ Root Port-‬שלו‪ ,‬דרכו ניתן להגיע ל‪ root bridge‬בדרך הקצרה ביותר‪.‬‬
‫כל יציאת רשת שהיא לא ‪ Designated Port‬או ‪ Root Port‬תהפוך ל‪ Blocked Port-‬ולא תעבור דרכה תעבורת רשת‪.‬‬
‫בחירת ה ‪ROOT BRIDGE -‬‬
‫לכל מתג מוגדר ‪ .Bridge ID‬ה‪ Bridge ID-‬מורכב מ‪ 2-‬בתים של ‪ Priority‬ועוד ‪ 8‬בתים של ‪ MAC Address‬של יציאת הרשת עם‬
‫הכתובת הנמוכה ביותר‪ .‬המתג עם ה‪ Bridge ID-‬הנמוך ביותר יבחר כ‪ .root-‬בהרבה מקרים מנהל הרשת לא נוגע בערך של‬
‫ה‪ ,priority-‬ומכיוון שערך ברירת המחדל הוא שווה בכל המתגים‪ ,‬התוצאה היא שהמכשיר בעל כתובת ה‪ MAC-‬הנמוכה‬
‫ביותר הוא זה שנבחר כ‪.Root Bridge-‬‬
‫‪1‬‬
‫מקטע הוא אוסף נקודות רשת שאין ‪ bridge‬שמפריד ביניהן‪ .‬הפרוטוקול מאפשר לנקודות רשת אלה להחליף ביניהן מידע‪,‬‬
‫עד שיוחלט דרך איזה ‪ bridge‬מגיעים ל‪ .root-‬בדוגמא שלנו כל לינק בין ‪ 2‬מתגים מהווה מקטע‪ ,‬אולם במציאות אין זה כך‪,‬‬
‫ונראה את זה בניסוי עצמו‪.‬‬
‫‪23‬‬
‫אם נחזור לדוגמא שלנו‪ ,‬נניח שנתב ‪ S1‬נבחר כ‪ ,root-‬וה‪ cost-‬של כל לינק הוא ‪ ,53‬תיווצר התמונה הבאה‪:‬‬
‫‪BP‬‬
‫‪DP‬‬
‫‪RP‬‬
‫‪RP‬‬
‫‪DP‬‬
‫‪BP‬‬
‫‪DP‬‬
‫‪BP‬‬
‫‪B‬‬
‫‪RP‬‬
‫‪BP‬‬
‫‪A‬‬
‫ואם נוציא מהציור את ‪ 2‬הלינקים החסומים נקבל את הרשת הזו שהיא נטולת מעגלים‪:‬‬
‫‪24‬‬
‫שאלות הכנה לחלק ב'‬
‫פרוטוקול עץ פורס‬
‫נתונה הרשת הבאה‪:‬‬
‫‪B‬‬
‫‪C‬‬
‫‪3‬‬
‫‪A‬‬
‫‪3‬‬
‫‪2‬‬
‫‪2‬‬
‫‪4‬‬
‫‪4‬‬
‫‪1‬‬
‫‪4‬‬
‫‪1‬‬
‫‪F‬‬
‫‪3‬‬
‫‪1‬‬
‫‪E‬‬
‫‪2‬‬
‫‪3‬‬
‫‪2‬‬
‫‪4‬‬
‫‪4‬‬
‫‪4‬‬
‫‪1‬‬
‫‪1‬‬
‫‪I‬‬
‫‪3‬‬
‫‪D‬‬
‫‪1‬‬
‫‪H‬‬
‫‪3‬‬
‫‪2‬‬
‫‪G‬‬
‫‪2‬‬
‫‪ .5‬מה יקרה אם על המתגים לא ירוץ פרוטוקול ‪?Spanning Tree‬‬
‫על הרשת הזו רץ פרוטוקול ‪ .Spanning Tree‬נניח שמתג ‪ D‬זכה להיות ה‪.Root-‬‬
‫‪ .2‬הציעו עץ פורס (יש הרבה אפשרויות)‪ .‬העתיקו את הציור וסמנו את הלינקים בהם לא תהיה תעבורת רשת‪.‬‬
‫‪ .0‬מלאו את הטבלא הבאה‪ .‬עבור כל ‪ port‬אם הוא ‪ Blocking Port‬ציינו ‪ ,BP‬אם הוא ‪ Root Port‬ציינו ‪ RP‬ואם הוא‬
‫‪ Designated Port‬ציינו ‪ .DP‬זיכרו שכל פורט יכול להיות בדיוק אחד מהאפשרויות האלה‪.‬‬
‫‪Switch I‬‬
‫‪Switch H‬‬
‫‪Switch G‬‬
‫‪Switch F‬‬
‫‪Switch E‬‬
‫‪Switch D‬‬
‫‪Switch C‬‬
‫‪Switch B‬‬
‫‪Switch A‬‬
‫‪Port 1‬‬
‫‪Port 2‬‬
‫‪Port 3‬‬
‫‪Port 4‬‬
‫‪25‬‬
‫‪ .5‬לפי מה שציירתם מהו ה‪ Designated Bridge-‬של‪:‬‬
‫‪Port E1 .a‬‬
‫‪Port I3 .b‬‬
‫‪Port G1 .c‬‬
‫‪ .2‬אם כל מתג מקפיץ את ה‪ cost-‬ב‪ ,0-‬מהו ה‪ cost-‬של כל פורט במתג ‪?C‬‬
‫‪26‬‬