לדלג לתוכן

1.4 - שכבת הרשת - הרצאה

מבוא

  • עד כה דיברנו על תקשורת בין שני מחשבים שמחוברים ישירות בכבל (בשכבת הקו). מה קורה אם נרצה לתקשר עם מחשב מרוחק ואנחנו לא מחוברים אליו ישירות? התהליך הזה נקרא routing, ונדבר עליו בהרחבה בהרצאה זו.
  • שכבת הרשת מאפשרת לנו לגלוש ולתקשר עם מחשבים בכל העולם, גם אם איננו מחוברים אליהם ישירות. הכלים לכך הם routing.
  • מטרת השכבה היא להעביר פקטות בין מחשבים מרוחקים, שאינם מחוברים ישירות, ובפועל לנתב את הפקטות ברשת. דיאגרמה: שתי רשתות נפרדות (switch עם PC1-4, switch עם PC5-8) לא מחוברות ישירות, עם רכיבים לא ידועים (?) ביניהן שצריך להשלים כדי לחבר אותן
    • דמיינו שיש לנו שתי רשתות מחשבים, כפי שמוצג בתמונה, והן אינן מחוברות ישירות. קיימים רכיבים בדרך (עליהם נלמד בהמשך). אם נרצה שמחשב PC1 יוכל לתקשר עם מחשב PC8, בדיוק כאן נכנסת לתמונה שכבת הרשת. פעולתה נקראת routing.
    • ההבדל בין מיתוג לrouting: מיתוג הוא פעולה בשכבת הקו שמחברת מחשבים שמחוברים ישירות ביניהם (לדוגמה, רכיב ה-switch שמחבר רכיבים אלו). הrouting, מצד שני, מתבצע כאשר המחשבים אינם מחוברים ישירות, כמו בדוגמה של PC1 ו-PC8.

כתובות IP

מבוא לכתובת IP

  • כתובת IP היא כתובת שכל רכיב מקבל ברשת, ששכבת הרשת משתמשת כדי להעביר פקטות ממחשב למחשב. (נדבר בהמשך כיצד חלוקת כתובות IP עוזרות לנו כדי לנתב פאקטות)
  • כתובת הIP היא כתובת לוגית, היא למעשה כתובת שמשתנה כל הזמן, לעומת כתובת MAC (כתובת פיזית) שלא ניתן לשנות, כי הכתובת צרובה על הכרטיס רשת של הרכיב.
    כתובות IP הן כתובות משתנות, כך שהIP של המחשב שלנו משתנה כל הזמן.
  • כאשר מכשיר מקבל כתובת IP, היא יכולה להשתנות מהמון סיבות, למשל:
  • הטלפון שלנו יקבל כתובת IP שונה, כל פעם שהוא מתחבר לרשת WIFI אחרת.
  • אחרי שאנחנו מקבלים כתובת IP למחשב שלנו למשל, אנחנו יכולים לשנות אותה בהגדרות.
  • בגלל שהמון רשתות מחשבים מכשירים מתחברים ומתנתקים מהרשת במהירות, קיימים מנגונים שאחראים להביא למכשירים החדשים שמצטרפים כתובת IP ברשת, וגם למחוק כתובות IP ממכשירים שמתנתקים.

מבנה כתובת IP

  • כתובת IP בנויה מ4 בתים, (בית הוא 8 ביטים, כך שהמספר המקסימלי שאפשר ליצג עם בית הוא 256) אז כל בית בכתובת נע בין הערך 0 עד 255. כך שכתובות IP נעים בין הערכים 0.0.0.0 ל- 255.255.255.255

    • דוגמה לכתובת: 143.214.13.43
  • בדומה לכתובת פיזית (כתובת mac), מחלקים את כתובת הIP לשני חלקים, הnetwork id ו- host id. כאשר הnetwork id הוא החלק בכתובת שמייצג לאיזה רשת אנחנו מחוברים, והhost id מציין בדיוק את המחשב שלנו ברשת.

  • לעומת כתובות פיזיות שהחלוקה היא ברורה (3 בתים לmanuf ו3 בתים לid) בip החלוקה הזו לא קבועה, כך שברשת אחת יכול להיות שהnetwork id יהיה בית אחד, וברשת אחרת הnetwork id יהיה 20 ביטים. ערך זה נקרא "מסיכת הרשת" - subnet mask. הsubnet mask הוא מספר שמייצג את כמות הביטים שמייצגים בכתובת הip את הnetwork id, ושאר הביטים מייצגים את הhost id. נהוג לציין את הsubnet mask קרוב לip, למשל: 192.168.0.1/24 פה הכתובת ip היא 192.168.0.1 והsubnet mask הוא 24.
  • דוגמה: נפרק את הכתובת הבאה: 192.168.0.1/24, הsubnet mask מעיד על כך ש24 ביטים (שזה 3 בתים) הראשונים בכתובת הם מיצגים את הnetwork id, את הרשת: "192.168.0" ושאר הביטים (בית 1) מייצג את הhost id, שזה המחשב ברשת. (1)

  • סיכום: אז נניח ויש לנו רשת מחשבים עם הsubnet הבא: 192.168.0.0/24, זה אומר שיכולים להיות בערך 255 מחשבים ברשת, כי רק הבית האחרון נשאר ליצוג הhost id (אמרנו קודם שהערך המקסימלי שבית אחד מייצג הוא 256).
    ברשת הזו, כל מחשב יקבל IP משלו שתואם את הsubnet, דוגמה: 192.168.0.1, 192.168.0.2, 192.168.0.3 וכו עד 192.168.0.255.
    אם נרצה לבנות רשת שכמות המכשירים המחוברים עלולה להיות יותר מבערך 255, עדיף לנו להגדיל את הsubnet של הרשת: ללמשל 192.168.0.0/16 כך שהפעם יהיו 2 בתים שיוקצו לhost id וכמות המכשירים (הhost-ים) תגדל ל2 בחזקת 16, שזה בערך 65000 מכשירים שונים.

כתובות IP מיוחדות

קיימות כתובות IP מיוחדות, שכדאי שנכיר אותם:

כתובת Broadcast

כתובת ה-Broadcast היא כתובת מיוחדת שמאפשרת שליחה של פקטות לכל הרכיבים ברשת. היא נועדה להעביר את המידע לכל מחשב או מכשיר הנמצא בתוך הרשת, ללא הבחנה מי הוא היעד הספציפי. הכתובת המוכרת ביותר לביצוע Broadcast היא: 255.255.255.255. כתובת זו משמשת למשל כאשר מחשב או שרת רוצים לשלוח מידע לכל המחשבים ברשת המקומית (LAN) מבלי לדעת את ה-IP של כל אחד מהם.

כתובת Loopback

  • כתובת הloopback: לפעמים נרצה שהמחשב שלנו יוכל לשלוח פאקטות לעצמו, דמיינו שני תוכנות שרצות על המחשב שלכם שרוצות לתקשר אחד עם השניי באמצעות פקטות. (זה מאוד נפוץ) ובדיוק בשביל זה הומצא כתובת הloopback, כתובת שכאשר אנחנו שולחים לה פקטה, היא לא באמת מוציאה פקטה מהכרטיס רשת, ופשוט שולחת את הפקטה לתוכנות שרצות במחשב (בעתיד נראה דוגמאות לכך, אז אל תדאגו אם זה פחות מובן) - הsubnet השמור הוא 127.0.0.0/8. זכרו שאיי אפשר להשתמש בטווח כתובות הזה למטרות תקשורת בין מחשבים.

כתובות IP שמורות לרשתות פנימיות (Private IPs)

ישנם אזורים שלמים של כתובות IP שמורים לשימוש ברשתות פרטיות בלבד, ולא מיועדים לתקשורת באינטרנט. הכתובות הללו נחשבות לחיצוניות ונכנסות לניהול אופרציות פנימיות בלבד. שלושת תחום הכתובות האלו הם:

  • 10.0.0.0/8 - הכתובת הזו מקצה כתובות IP מרחב של 16,777,216 כתובות IP.
  • 172.16.0.0/12 - נועדה עבור רשתות עם פחות מחשבים, מכילה 1,048,576 כתובות.
  • 192.168.0.0/16 - מוגבלת עד 65,536 כתובות IP, נפוצה ביותר ברשתות ביתיות ועסקיות.

שימוש בכתובות IP אלו מאפשר למנהלי רשת לבנות רשתות פנימיות מבלי להוציא כתובות IP ציבוריות מתוך המאגר הקיים.
- נרחיב בהמשך למה יש הפרדה בין כתובות IP לשימוש רשתות פנימיות וכתובות IP לשימוש "האינטרנט"

  • כך יראה הציור שלנו עם כתובות IP:
    דיאגרמה: אותן שתי רשתות עם כתובות IP - רשת 192.168.0.0/24 מצד שמאל ורשת 10.0.0.0/24 מצד ימין, עדיין עם רכיבים לא ידועים (?) ביניהן
  • שימו לב שיש לנו שני רשתות נפרדות, אחת עם subnet של 192.168.0.0/24 ושנייה עם subnet של 10.0.0.0/24.

הrouting

נענה על השאלות המרכזיות שקשורות לrouting פקטות:

איך אנחנו מנתבים פקטות בין רשתות שונות?

כיצד מחשב שכתובתו 10.0.0.4 יכול לדבר עם מחשב שכתובתו 192.168.0.2? על מנת שהפקטה תעבור בהצלחה מה-PC1 (10.0.0.4) ל-PC2 (192.168.0.2), על הפקטה לעבור דרך רכיבי routing שונים, והדרך שלה תיראה כך:

דיאגרמה: מסלול כחול מסומן מ-PC1 (10.0.0.4) דרך הרכיבים הלא ידועים אל PC2 (192.168.0.2), ממחיש את הנתיב שפקטה צריכה לעבור בין שתי הרשתות

המסלול הכחול הוא המסלול של הפקטה, וחשוב לציין כי על מנת שהפקטה תגיע בהצלחה, שני תנאים חייבים להתממש:

  1. כתובת ה-IP מקור וכתובת ה-IP יעד נשארות קבועות לאורך כל הדרך. כל רכיב בדרך (נתב או מחשב) צריך לדעת את כתובת ה-IP של המחשב השולח (source IP) וכתובת ה-IP של המחשב היעד (destination IP) כדי להעביר את הפקטה בצורה נכונה.
  2. ה-MAC address משתנה בכל תחנה בדרך. כל רכיב בדרך (כגון נתב) משנה את כתובת ה-MAC של הפקטה כך שיתאימו לו. ה-MAC address של כל רכיב בדרך ישתנה בהתאם לכל "קפיצה" של הפקטה בנתב, אך כתובת ה-IP נשארת קבועה לכל אורך הדרך.

רכיבי הrouting

המרכיב העיקרי בתהליך routing הפקטות הוא הראוטר (Router). הראוטר הוא רכיב רשת המפנה פקטות לרשתות אחרות, וכדי להבין איך הוא עושה זאת, נבחן את פעולתו בצורה מעמיקה.

מהו נתב?

נתב (Router) הוא רכיב המפנה פקטות בין רשתות שונות. כל נתב יכול להיות מחובר ליותר מרשת אחת. עבור כל פקטה שהוא מקבל, הנתב בודק את כתובת ה-IP שלה ומעביר אותה אל התחנה הבאה בהתאם לחוקי טבלת הrouting שלו.

דיאגרמה: הרכיבים הלא ידועים הוחלפו בשני נתבים (router 1 בכתובת 1.1.1.1, router 2 בכתובת 2.2.2.2) המחברים בין שתי הרשתות 192.168.0.0/24 ו-10.0.0.0/24

בדרך כלל, כל נתב מחובר לשתי או יותר רשתות באמצעות כרטיסי רשת (Interfaces). לכל כרטיס רשת יש כתובת IP משלו, כך שכל רשת מחוברת אליו על פי הכתובת שלה.

טבלת routing

הנתב משתמש בטבלת routing כדי לקבוע לאיזה "תחנה הבאה" (Next Hop) עליו לשלוח את הפקטה. טבלת הrouting כוללת את הכתובות של כל הרשתות שזמינות לנתב, והנתב בוחר את הדרך הכי טובה להעביר את הפקטה.

בכדי להבין את תהליך הקריאה וההבנה של טבלת הrouting, נוסיף יותר רשתות לדוגמה שלנו:

דיאגרמה מורחבת: ארבעה נתבים (router 1, 2, 3, 4) מחוברים בשרשרת בין שתי הרשתות, עם כתובות IP שונות על כל ממשק (1.1.1.1, 1.1.1.2, 2.2.2.1, 2.2.2.2, 3.3.3.1, 3.3.3.2), להמחשת טבלת routing

הנה טבלה לדוגמה של נתב 3:

Network Destination Interface Gateway
0.0.0.0/0 3.3.3.1 3.3.3.2
192.168.0.0/24 1.1.1.1 1.1.1.2
10.0.0.0/24 2.2.2.1 2.2.2.2

איך הקריאה לטבלה מתבצעת?

כאשר פקטה מגיעה לנתב 3, הנתב בודק את יעד ה-IP שלה מול הרשומות בטבלה, ומפנה אותה בהתאם:

  1. אם כתובת ה-IP של הפקטה היא מתוך רשת 10.0.0.0/24, הנתב מפנה את הפקטה דרך התחנה 2.2.2.2.
  2. אם כתובת ה-IP של הפקטה היא מתוך רשת 192.168.0.0/24, הנתב מפנה את הפקטה דרך התחנה 1.1.1.2.
  3. אם אין התאמה, הפקטה תשלח ל-Gateway ברירת המחדל: 3.3.3.2.

שימו לב: הראוטר לא משנה את כתובת ה-IP של הפקטה, רק את כתובת ה-MAC של כל רכיב בדרך.

איך טבלת הrouting מתמלאת?

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

טבלת routing של מחשב קצה

גם במחשבי קצה יש טבלת routing. מטרת הטבלה היא לקבוע לאן יש לשלוח פקטה על בסיס יעד ה-IP שלה. אם היעד נמצא באותה הרשת המקומית, הפקטה תישלח ישירות למחשב היעד (On-link). אם היעד נמצא ברשת אחרת, הפקטה תישלח ל-Gateway (הראוטר). (משם הראוטר אמור לדעת לנתב את הפאקטה ליעד הסופי שלה לפי הטבלת routing שלו)
דוגמה לרשת מחשבים:
דיאגרמה: רשת ביתית פשוטה - switch מחבר בין PC1, PC2, PC3, PC4 (ברשת 192.168.0.0/24) לבין router אחד בכתובת 192.168.0.1
הנה דוגמה לטבלת routing של מחשב PC1:

Network Destination Interface Gateway
0.0.0.0/0 192.168.0.2 192.168.0.1
192.168.0.0/24 192.168.0.2 On-link

תהליך הפעולה של המחשב:

  1. אם היעד הוא מתוך רשת 192.168.0.0/24, המחשב שולח את הפקטה ישירות (On-link). - ממש דמיינו בשכבת ה"קו"
  2. אם היעד הוא רשת אחרת, הפקטה תישלח ל-Gateway (במקרה זה, הראוטר בכתובת 192.168.0.1).

בטלאות routing של מחשבים וראוטרים כמעט תמיד מוגדר gateway מוסיים בתחילת הטבלה שאילו נשלחות כל הפאקטות שלא התאמתו על שום חוק אחר. זה נקרא default gateway או בקיצור DG. לרוב הוא יהיה נתב מרכזי ברשת שיודע לנתב את הפאקטה למחשב הנכון.

שאלות נוספות בנוגע לשכבת הרשת

  1. איך מחשב יודע מי ה-Default gateway שלו? כדי שידע לאיזה כתובת לפנות למקרה ולא מצא מענה בשכבת ה"קו" (On-Link)

  2. איך מחשב יודע לתרגם כתובת IP ל-MAC? זה פעולה הכרחית בשביל תהליך הrouting.

  3. איך מחשבים מקבלים כתובת IP עדכנית בכל חיבור לרשת חדשה? אם הטלפון שלי מתנתק ומתחבר בין רשתות שונות, איך בכל רשת שונה הוא יודע מה הכתובת IP העדכנית שלו?

סיכום

בהרצאה הבאה נעבור על פרוטוקולים שונים שנועדו לפתור את ה3 בעיות שהצגנו, כדי להשלים את שכבת הרשת.