שאלה כיצד עובד IPv4 Subnetting?


זה קנוניקל שאלה על רשתות משנה IPv4.

Related:

איך עובד Subnetting, ואיך אתה עושה את זה ביד או בראש שלך?  האם מישהו יכול להסביר הן מבחינה מושגית והן במספר דוגמאות? שגיאת שרת מקבל המון שאלות subnetting שיעורי הבית, אז אנחנו יכולים להשתמש תשובה כדי להצביע עליהם על שרת תקלה עצמה.

  • אם יש לי רשת, איך אני יכול להבין איך לפצל את זה?
  • אם אני מקבל מסכת רשת, איך אני לדעת מה טווח הרשת הוא זה?
  • לפעמים יש קו נטוי על ידי מספר, מה זה מספר?
  • לפעמים יש מסיכת רשת משנה, אבל גם מסכה כלליים, הם נראים כמו אותו דבר אבל הם שונים?
  • מישהו הזכיר משהו על לדעת בינארי בשביל זה?

423
2017-08-04 15:51






תשובות:


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

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

ספירה עד 1

אם אתה כבר שוטף בינארי (בסיס 2) סימון אתה יכול לדלג על סעיף זה.

לאלו מכם שנותרו: בושה על שאתם לא להיות שוטפת בסימון בינארי!

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

ספירה בינארי כל כך פשוט כי אתה רק צריך לדעת איך לספור עד 1!

תחשוב על "מד מרחק" של המכונית, אלא שבניגוד למד מרחק רגיל, כל ספרה יכולה לספור עד 1 מ -0. כאשר המכונית טריה מהמפעל, מד המרחק קורא "00000000".

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

כאשר אתה נוהג קילומטר השני שלך את הספרה הראשונה של מד מרחק גלילים בחזרה ל "0" (שכן הערך המרבי הוא "1") ואת הספרה השנייה של מד המרחק מתגלגל ל "1", מה שהופך את מד המרחק לקרוא " 00000010 ". זה נראה כמו מספר 10 בסימון עשרוני, אבל זה בעצם 2 (מספר קילומטרים יש לך את המכונית עד כה) בסימון בינארי.

כאשר אתה נוהג קילומטר השלישי מד המרחק קורא "00000011", מאז הספרה הראשונה של מד מרחק פונה שוב. המספר "11", בסימון בינארי, זהה למספר העשרוני 3.

לבסוף, כאשר אתה נוהג קילומטר הרביעי שלך שתי ספרות (אשר היו קריאה "1" בסוף הקילומטר השלישי) רול בחזרה לאפס עמדה, ואת ספרה 3 לחמניות עד "1" עמדה, נותן לנו " 00000100 ". זהו ייצוג בינארי של המספר העשרוני 4.

אתה יכול לשנן את כל זה אם אתה רוצה, אבל אתה באמת רק צריך להבין איך את מד מרחק קטן "מתגלגל" כמו המספר שהוא סופר מקבל גדול יותר. זה בדיוק אותו דבר כמו מבצע מד מרחק עשרוני מסורתי, פרט לכך שכל ספרה יכולה להיות רק "0" או "1" על "מד המרחק הבינארי" הבדיוני שלנו.

כדי להמיר מספר עשרוני בינארי אתה יכול לגלגל את מד המרחק קדימה, סמן על ידי סמן, לספור בקול עד שאתה מגולגל אותו מספר פעמים שווה למספר עשרוני אתה רוצה להמיר בינארי. כל מה שמוצג על מד מרחק אחרי כל זה couting ו מתגלגל יהיה ייצוג בינארי של מספר עשרוני שספרת עד.

מאז אתה מבין איך מד המרחק מתגלגל קדימה תוכל גם להבין איך זה מתגלגל לאחור, יותר מדי. כדי להמיר מספר בינארי המוצג על מד מרחק חזרה עשרונית אתה יכול לגלגל את מד המרחק חזרה אחת בכל פעם, לספור בקול רם עד מד המרחק קורא "00000000". כאשר כל זה ספירה מתגלגל נעשה, המספר האחרון שאתה אומר בקול רם יהיה ייצוג עשרוני של מספר בינארי מד המרחק התחיל עם.

המרת ערכים בין בינארי ועשרוני בדרך זו יהיה מאוד מייגע. אתה יכול לעשות את זה, אבל זה לא יהיה יעיל מאוד. קל יותר ללמוד אלגוריתם קטן לעשות את זה מהר יותר.

הצידה מהירה: כל ספרה במספר בינארי ידוע בשם "bit". זה "b" מ "בינארי" ו "זה" מ "ספרות". קצת הוא ספרות בינארית.

המרת מספר בינארי כמו, למשל, "1101011" לעשרונית היא תהליך פשוט עם אלגוריתם קטן שימושי.

התחל על ידי ספירת מספר הביטים במספר הבינארי. במקרה זה, יש 7. הפוך 7 חטיבות על גיליון נייר (בראש שלך, בקובץ טקסט, וכו ') ולהתחיל למלא אותם מימין לשמאל. בחריץ הימני ביותר, הזן את המספר "1", מכיוון שתמיד התחל עם "1". בחריץ הבא משמאל הזן פעמיים את הערך בחריץ ימינה (כך, "2" ב הבא, "4" ב הבא) ולהמשיך עד כל החריצים מלאים. (אתה תהיה בסופו של דבר לשנן מספרים אלה, שהם כוחות של 2, כפי שאתה עושה את זה יותר ויותר.אני בסדר עד 131,072 בראש שלי אבל אני בדרך כלל צריך מחשבון או נייר לאחר מכן).

אז, אתה צריך את הדברים הבאים על הנייר שלך חריצים קטנים שלך.

 64    |    32    |    16    |    8    |    4    |    2    |    1    |

לרשום את הביטים מהמספר הבינארי מתחת לחריצים, כך:

 64    |    32    |    16    |    8    |    4    |    2    |    1    |
  1          1          0         1         0         1         1

עכשיו, להוסיף כמה סמלים ולחשב את התשובה לבעיה:

 64    |    32    |    16    |    8    |    4    |    2    |    1    |
x 1        x 1        x 0       x 1       x 0       x 1       x 1
---        ---        ---       ---       ---       ---       ---
       +          +          +         +         +         +         =

עושה את כל המתמטיקה, אתה צריך לבוא עם:

 64    |    32    |    16    |    8    |    4    |    2    |    1    |
x 1        x 1        x 0       x 1       x 0       x 1       x 1
---        ---        ---       ---       ---       ---       ---
 64    +    32    +     0    +    8    +    0    +    2    +    1    =   107

ללא שם: זהו זה. "1101011" עשרוני הוא 107. זה פשוט צעדים פשוטים ומתמטיקה קלה.

המרת עשרוני בינארי הוא פשוט כמו גם הוא אלגוריתם בסיסי אותו, לרוץ לאחור.

תגיד שאנחנו רוצים להמיר את מספר 218 כדי בינארי. החל משמאל לגליון נייר, רשום את המספר "1". משמאל, הכפל את הערך (כך, "2") והמשך לנוע לכיוון השמאלית של הנייר, מכפיל את הערך האחרון. אם המספר שאתה עומד לכתוב גדול מהמספר המומר להפסיק לכתוב. אחרת, להמשיך להכפיל את המספר הקודם וכתיבה. (המרת מספר גדול, כמו 34,157,216,092, בינארי באמצעות אלגוריתם זה יכול להיות קצת מייגע אבל זה בהחלט אפשרי.)

אז, אתה צריך להיות על הנייר שלך:

 128    |    64    |    32    |    16    |    8    |    4    |    2    |    1    |

הפסקת לכתוב מספרים ב- 128, משום שהכפלת 128, שתיתן לך 256, תהיה גדולה מהמספר המומר (218).

החל מהמספר השמאלי ביותר, כתוב "218" מעליה (128) ושאל את עצמך: "האם 218 גדול או שווה ל -128?" אם התשובה היא כן, לגרד "1" להלן "128". מעל "64", כתוב את התוצאה של 218 מינוס 128 (90).

כאשר מסתכלים על "64", שאלו את עצמכם: "האם 90 גדול או שווה ל 64?" זה, אז היית כותב "1" להלן "64", ואז לחסר 64 מ 90 ולכתוב כי מעל "32" (26).

כאשר אתה מגיע ל "32", לעומת זאת, אתה מוצא כי 32 הוא לא יותר או שווה ל 26. במקרה זה, לכתוב "0" להלן "32", להעתיק את המספר (26) מעל 32 "מעל" 16 "ולאחר מכן להמשיך לשאול את עצמך את אותה שאלה עם שאר המספרים.

לאחר שתסיים, עליך:

 218         90         26         26        10         2         2         0
 128    |    64    |    32    |    16    |    8    |    4    |    2    |    1    |
   1          1          0          1         1         0         1         0

המספרים בראש הם רק הערות בשימוש בחישוב לא אומר לנו הרבה. בתחתית, עם זאת, תראה מספר בינארי "11011010". ואכן, 218, להמיר בינארי, הוא "11011010".

לאחר נהלים פשוטים מאוד אתה יכול להמיר בינארי עשרוני וחזרה שוב w / o מחשבון. המתמטיקה היא פשוטה מאוד ואת הכללים ניתן לשנן עם קצת תרגול.

פיצול כתובות

תחשוב על ניתוב IP כמו משלוח פיצה.

כאשר מתבקשים למסור פיצה ל"רחוב ראשי 123 ", ברור לך מאוד, כאדם, שאתה רוצה ללכת לבניין מספר 123 ברחוב ברחוב הראשי. זה קל לדעת שאתה צריך ללכת 100 בלוק של רחוב ראשי כי מספר הבניין הוא בין 100 ל 199 ו רוב בלוקים העיר ממוספרים מאות. אתה "רק יודע" איך לפצל את הכתובת למעלה.

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

כל מחשב (או "מארח") ברשת IP מוגדר עם כתובת IP ייחודית ומסכת רשת משנה. ניתן לחלק את כתובת ה- IP הזו למרכיב "מספר בניין" (כגון "123" בדוגמה שלמעלה) הנקרא "מזהה מארח" ומרכיב "שם רחוב" (כגון "רחוב ראשי" בדוגמה לעיל) "ת. ז רשת". עבור עינינו האנושיות, קל לראות היכן מספר הבניין ושם הרחוב נמצאים ברחוב הראשי 123, אך קשה יותר לראות את החלוקה ב "10.13.216.41 עם מסיכת רשת משנה של 255.255.192.0".

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

התחל לכתוב את כתובת ה- IP בינארי (להשתמש במחשבון אם לא למדת לעשות את זה בראש שלך עדיין, אבל לעשות הערה ללמוד איך לעשות את זה - זה באמת, ממש קל ומרשים את המין השני ב מסיבות)

      10.      13.     216.      41
00001010.00001101.11011000.00101001

רשום את מסיכת רשת המשנה גם בינארי:

     255.     255.     192.       0
11111111.11111111.11000000.00000000

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

      10.      13.     216.      41
00001010.00001101.11011000.00101001 - IP address
11111111.11111111.11000000.00000000 - subnet mask
00001010.00001101.11000000.00000000 - Portion of IP address covered by 1's in subnet mask, remaining bits set to 0
00000000.00000000.00011000.00101001 - Portion of IP address covered by 0's in subnet mask, remaining bits set to 0

הנתבים משתמשים במסיכת רשת המשנה כדי "להסוות" את החלקים המכוסים ב - 1 ב כתובת ה IP- (מחליפים את הביטים שאינם "מסווגים" עם 0) כדי לחלץ את מזהה הרשת:

      10.      13.     192.       0
00001010.00001101.11000000.00000000 - Network ID

כמו כן, באמצעות מסיכת רשת המשנה כדי "להסוות" את סיביות מכוסה על ידי 0 של כתובת ה- IP (להחליף את סיביות שאינן "מסוך החוצה" עם 0 שוב) נתב יכול לחלץ את מזהה המארח:

       0.       0.      24.      41
00000000.00000000.00011000.00101001 - Portion of IP address covered by 0's in subnet mask, remaining bits set to 0

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

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

עוד טרמינולוגיה

אתה הולך לראות מסכות משנה משנה שנכתב בכל רחבי האינטרנט לאורך כל שאר התשובה כמו (IP / מספר). סימון זה נקרא "הכיתוב בין מחלקות בין דומיינים" (CIDR). "255.255.255.0" מורכב מ 24 סיביות של 1 בהתחלה, וזה מהר יותר לכתוב את זה כמו "/ 24" מאשר "255.255.255.0". כדי להמיר מספר CIDR (כמו "16/16") למסיכת רשת משנה עשרונית מנוקדת פשוט כתוב את המספר של 1, לפצל אותו לקבוצות של 8 סיביות, ולהמיר אותו לעשרונית. ("16" הוא "255.255.0.0", למשל).

בחזרה "בימים ההם", מסיכות רשת משנה לא צוינו, אלא נגזרו על ידי הסתכלות על חלקים מסוימים של כתובת ה- IP. כתובת IP שמתחילה ב- 0 - 127, לדוגמה, היתה מסכת רשת משנה מרומזת של 255.0.0.0 (הנקראת כתובת IP מסוג "Class A").

מסכות תת-רשת אלה אינן בשימוש כיום ואיני ממליץ ללמוד עליהן עוד, אלא אם כן יש לך את חוסר המזל בהתמודדות עם ציוד ישן מאוד או פרוטוקולים ישנים (כמו RIPv1) שאינם תומכים ב- IP חסרי מעמדות. אני לא מתכוון להזכיר את ה"שיעורים" האלה של הכתובות עוד יותר, כי זה אינו ישים היום ויכול להיות מבלבל.

התקנים מסוימים משתמשים בסימון הנקרא "מסכות כלליים". "מסכה בתווים כלליים" היא לא יותר מאשר מסיכת רשת משנה עם כל 0 שבו יהיו 1, ו 1 שם יהיו 0 של. "מסכת הברכיים" של / 26 היא:

 11111111.11111111.11111111.11000000 - /26 subnet mask
 00000000.00000000.00000000.00111111 - /26 "wildcard mask"

בדרך כלל אתה רואה "מסכות כלליים" המשמשות להתאמת מזהי מארח ברשימות בקרת גישה או כללי חומת אש. לא נדון בהם עוד כאן.

איך עובד נתב

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

נניח שאתה נתב IP, ויש לך ממשקים מחוברים אליך ממוספרים:

  • Ethernet0 - 192.168.20.1, מסיכת רשת משנה / 24
  • Ethernet1 - 192.168.10.1, מסיכת רשת משנה / 24

אם אתה מקבל מנות כדי לספק עם כתובת היעד של "192.168.10.2", זה די קל להגיד (עם העיניים האנושיות שלך) כי מנות יש לשלוח את ממשק Ethernet1, כי כתובת Ethernet1 כתובת תואמת את היעד של המנה כתובת. לכל המחשבים המחוברים לממשק Ethernet1 יהיו כתובות IP המתחילות ב - "192.168.10", מכיוון שמזהה הרשת של כתובת ה - IP שהוקצה לממשק Ethernet1 הוא "192.168.10.0".

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

  • מזהה רשת: 192.168.20.0 (11000000.10101000.00010100.00000000) - מסיכת רשת משנה של 24 סיביות - ממשק Ethernet0
  • מזהה רשת: 192.168.10.0 (11000000.10101000.00001010.00000000) - מסיכת רשת משנה של 24 סיביות - ממשק Ethernet1

עבור החבילה הנכנסת שלנו עבור "192.168.10.2", אנחנו צריכים רק להמיר את זה מנות של מנות בינארי (כבני אדם - הנתב מקבל את זה כמו בינארי את החוט מלכתחילה) ולנסות להתאים אותו לכל כתובת ניתוב שלנו טבלה (עד למספר הסיביות במסכת המשנה) עד שנזכה לרשומה.

  • יעד מנות נכנס: 11000000.10101000.00001010.00000010

השוואה זו לרשומות בטבלת הניתוב שלנו:

11000000.10101000.00001010.00000010 - Destination address for packet
11000000.10101000.00010100.00000000 - Interface Ethernet0
!!!!!!!!.!!!!!!!!.!!!????!.xxxxxxxx - ! indicates matched digits, ? indicates no match, x indicates not checked (beyond subnet mask)

11000000.10101000.00001010.00000010 - Destination address for packet
11000000.10101000.00001010.00000000 - Interface Ethernet1, 24 bit subnet mask
!!!!!!!!.!!!!!!!!.!!!!!!!!.xxxxxxxx - ! indicates matched digits, ? indicates no match, x indicates not checked (beyond subnet mask)

הערך עבור Ethernet0 תואם את 19 הקטעים הראשונים בסדר, אבל אז מפסיק את ההתאמה. זה אומר שזה לא ממשק היעד הנכון. ניתן לראות שהממשק Ethernet1 תואם ל- 24 סיביות של כתובת היעד. אה, חה! המנה קשורה לממשק Ethernet1.

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

נתיבים סטטיים

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

בואו נתחיל לקרוא לנתב שלנו מהדוגמאות הקודמות "נתב A". אתה כבר יודע טבלת הניתוב של RouterA כמו:

  • מזהה רשת: 192.168.20.0 (11000000.10101000.00010100.00000000) - מסיכת רשת משנה / 24 - ממשק RouterA-Ethernet0
  • מזהה רשת: 192.168.10.0 (11000000.10101000.00001010.00000000) - מסיכת רשת משנה / 24 - ממשק RouterA-Ethernet1

נניח כי יש נתב נוסף, "נתב B", עם כתובות IP 192.168.10.254/24 ו 192.168.30.1/24 שהוקצו הממשקים Ethernet0 ו Ethernet1 שלה. יש לו את טבלת הניתוב הבאה:

  • מזהה רשת: 192.168.10.0 (11000000.10101000.00001010.00000000) - מסיכת רשת משנה / 24 - ממשק RouterB-Ethernet0
  • מזהה רשת: 192.168.30.0 (11000000.10101000.00011110.00000000) - מסיכת רשת משנה / 24 - ממשק RouterB-Ethernet1

באמנות ASCII יפה, הרשת נראית כך:

               Interface                      Interface
               Ethernet1                      Ethernet1
               192.168.10.1/24                192.168.30.254/24
     __________  V                  __________  V
    |          | V                 |          | V
----| ROUTER A |------- /// -------| ROUTER B |----
  ^ |__________|                 ^ |__________|
  ^                              ^
Interface                      Interface
Ethernet0                      Ethernet0
192.168.20.1/24                192.168.10.254/24

אתה יכול לראות את הנתב B יודע איך להגיע לרשת, 192.168.30.0/24, כי נתב A לא יודע כלום.

נניח שמחשב עם כתובת ה- IP 192.168.20.13 מחובר לרשת המחוברת לממשק A של Ethernet0 של הנתב שולח מנות לנתב A למשלוח. החבילה ההיפותטית שלנו מיועדת לכתובת ה- IP 192.168.30.46, שהיא התקן המחובר לרשת המחוברת לממשק Ethernet1 של הנתב B.

עם טבלת הניתוב המוצגת לעיל, אף ערך בטבלת הניתוב של הנתב A תואם ליעד 192.168.30.46, כך נתב A יחזיר את החבילה למחשב השולח עם ההודעה "רשת היעד אינו נגיש".

כדי להפוך את הנתב "מודע" לקיומו של הרשת 192.168.30.0/24, אנו מוסיפים את הערך הבא לטבלת הניתוב בנתב A:

  • מזהה רשת: 192.168.30.0 (11000000.10101000.00011110.00000000) - מסיכת רשת משנה / 24 - נגיש באמצעות 192.168.10.254

בדרך זו, נתב A יש ערך טבלת הניתוב התואמת את היעד 192.168.30.46 של מנות לדוגמה שלנו. זה ערך טבלת הניתוב אומר ביעילות "אם אתה מקבל מנות קשורה 192.168.30.0/24, לשלוח אותו על 192.168.10.254 כי הוא יודע איך להתמודד עם זה." זה מקביל "היד את הפיצה בדלפק הקבלה" פעולה שהזכרתי קודם - להעביר את החבילה על מישהו אחר שיודע איך להתקרב אל היעד שלה.

הוספת ערך לטבלת הניתוב "ביד" ידועה כהוספת "נתיב סטטי".

אם הנתב B רוצה להעביר מנות לרשת 192.168.20.0 רשת מסכת 255.255.255.0, היא תזדקק גם לטבלת הניתוב שלה:

  • מזהה רשת: 192.168.20.0 (11000000.10101000.00010100.000000000000) - מסיכת רשת משנה / 24 - נגישה באמצעות: 192.168.10.1 (כתובת IP של נתב A ברשת 192.168.10.0)

פעולה זו תיצור נתיב למסירה בין הרשת 192.168.30.0/24 לבין הרשת 192.168.20.0/24 לאורך הרשת 192.168.10.0/24 בין נתבים אלה.

אתה תמיד רוצה להיות בטוח כי נתבים משני צדי "רשת interstitial" כזה יש ערך טבלת הניתוב עבור "סוף רחוק" הרשת. אם הנתב B בדוגמה שלנו לא היה ערך טבלת הניתוב עבור "סוף רחוק" רשת 192.168.20.0/24 המצורפת נתב מנות היפותטי שלנו מהמחשב ב 192.168.20.13 היה להגיע אל היעד היעד ב 192.168.30.46, אבל כל תשובה כי 192.168.30.46 ניסה לשלוח בחזרה יוחזר על ידי הנתב B כמו "רשת היעד נגיש". תקשורת חד כיוונית היא בדרך כלל לא רצוי. תמיד להיות בטוח שאתה חושב על התנועה זורמת פנימה שניהם כיוונים כאשר אתה חושב על תקשורת ברשתות מחשבים.

אתה יכול לקבל הרבה קילומטראז מתוך נתיבים סטטיים. פרוטוקולי ניתוב דינמיים כגון EIGRP, RIP, וכו ', הם באמת לא יותר מאשר דרך נתבים להחליף מידע ניתוב בין זה יכול, למעשה, להיות מוגדר עם נתיבים סטטיים. יתרון גדול אחד באמצעות פרוטוקולי ניתוב דינמי על נתיבים סטטיים, אם כי, הוא דינמי ניתוב פרוטוקולים יכול באופן דינמי לשנות את טבלת הניתוב בהתבסס על תנאי הרשת (ניצול רוחב הפס, ממשק "יורד" וכו '), וככזה, שימוש בפרוטוקול ניתוב דינמי עלול לגרום לתצורה שמבצעת "סיבובים סביב" כשלים או צווארי בקבוק בתשתית הרשת. (פרוטוקולי ניתוב דינמיים הם דרך מחוץ לטווח התשובה, אם כי.)

אתה לא יכול להגיע לשם מכאן

במקרה של הדוגמה שלנו נתב A, מה קורה כאשר חבילה קשורה "172.16.31.92" מגיע?

מבט על הנתב טבלת ניתוב, לא ממשק היעד או נתיב סטטי תואם את 24 סיביות הראשון של 172.18.31.92 (המהווה 10101100.00010000.00011111.01011100, BTW).

כפי שאנו כבר יודעים, נתב A יחזיר את החבילה לשולח באמצעות הודעה "רשת יעד בלתי נגיש".

תגיד שיש עוד נתב (נתב C) יושב ליד הכתובת "192.168.20.254". נתב C יש חיבור לאינטרנט!

                              Interface                      Interface                      Interface
                              Ethernet1                      Ethernet1                      Ethernet1
                              192.168.20.254/24              192.168.10.1/24                192.168.30.254/24
                    __________  V                  __________  V                  __________  V
((  heap o  ))     |          | V                 |          | V                 |          | V
(( internet )) ----| ROUTER C |------- /// -------| ROUTER A |------- /// -------| ROUTER B |----
((   w00t!  ))   ^ |__________|                 ^ |__________|                 ^ |__________|
                 ^                              ^                              ^
               Interface                      Interface                      Interface
               Ethernet0                      Ethernet0                      Ethernet0
               10.35.1.1/30                   192.168.20.1/24                192.168.10.254/24

זה יהיה נחמד אם נתב א יכול המסלול מנות שאינן תואמות כל ממשק מקומי עד נתב C כך נתב C יכול לשלוח אותם לאינטרנט. הזן את נתיב "שער ברירת המחדל".

הוסף ערך בסוף טבלת הניתוב שלנו כך:

  • מזהה רשת: 0.0.0.0 (00000000.00000000.00000000.00000000) - מסיכת רשת משנה / 0 - נתב יעד: 192.168.20.254

כאשר אנו מנסים להתאים את "172.16.31.92" לכל ערך בטבלת הניתוב אנו בסופו של דבר להכות ערך חדש זה. זה קצת מביך, בהתחלה. אנחנו מחפשים להתאים אפס סיביות של כתובת היעד עם ... לחכות ... מה? התאמת ביטים אפס? אז, אנחנו לא מחפשים התאמה בכלל. טבלת טבלת הניתוב הזו אומרת, ביסודו של דבר: "אם אתה מגיע לכאן, במקום לוותר על המשלוח, שלח את החבילה לנתב ב 192.168.20.254 ותן לו לטפל בזה".

192.168.20.254 הוא יעד שאנחנו DO יודע איך להעביר מנות. כאשר אנו מתמודדים עם חבילה המחויבת ליעד שעבורו אין לנו כניסה ספציפית לטבלה זו, שער "שער ברירת מחדל" זה תמיד יתאים (מכיוון שהוא תואם לאפס ביט של כתובת היעד) ונותן לנו מקום "מוצא אחרון" שאנו יכולים לשלוח מנות למשלוח. תוכל לפעמים לשמוע את שער ברירת המחדל שנקרא "שער המוצא האחרון".

כדי שתוואי שער ברירת המחדל יהיה יעיל, עליו להתייחס לנתב שניתן להגיע אליו באמצעות הערכים האחרים בטבלת הניתוב. אם ניסית לציין שער ברירת מחדל של 192.168.50.254 ב- Router A, לדוגמה, משלוח אל שער ברירת מחדל כזה ייכשל. 192.168.50.254 אינה כתובת ש- R נתב A יודע כיצד להעביר מנות לשימוש בכל אחד מהנתיבים האחרים בטבלת הניתוב שלו, כך שכתובת זו לא תהיה יעילה כשער ברירת מחדל. ניתן לציין זאת בקצרה: שער ברירת המחדל חייב להיות מוגדר לכתובת שכבר ניתן להגיע אליה באמצעות נתיב אחר בטבלת הניתוב.

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

תכנון עירוני וניתוב IP

שבירת תת רשת IP לתחומי משנה קטנים יותר של IP היא תכנון אורבני. בתכנון עירוני נעשה שימוש בהתאמות לתכונות טבעיות של הנוף (נהרות, אגמים וכו '), להשפיע על זרימת התנועה בין חלקים שונים של העיר, ולהפריד בין סוגים שונים של שימושי קרקע (תעשייה, מגורים וכו'), . IP subnetting הוא באמת אותו דבר.

ישנן שלוש סיבות עיקריות לכך שתתנהג לרשת משנה:

  • ייתכן שתרצה לתקשר על פני שונים בניגוד התקשורת התקשורת. אם יש לך חיבור WAN T1 בין שני מבני IP נתבים יכול להיות ממוקם על הקצוות של חיבורים אלה כדי להקל על התקשורת על פני T1. הרשתות בכל רשת קצה (ואולי גם "interstitial" ב- T1 עצמו) יוקצו לרשתות משנה IP ייחודיות, כך שהנתבים יוכלו לקבל החלטות לגבי התנועה שאליה יש לשלוח את קו T1.

  • ברשת Ethernet, באפשרותך להשתמש ב - subnetting כדי להגביל את כמות התנועה המשודרת בחלק מסוים של הרשת. פרוטוקולי שכבת יישומים משתמשים ביכולת השידור של Ethernet למטרות שימושיות מאוד. ככל שאתה מקבל יותר ויותר מארחים ארוזים באותה רשת Ethernet, עם זאת, אחוז התנועה שידור על חוט (או אוויר, ב Ethernet אלחוטית) יכול להגדיל לנקודה כזו כדי ליצור בעיות למסירה של תנועה שאינם שידור. (בימים ההם, תעבורת השידור יכולה להציף את המעבד של המארחים על ידי כך שהם מכריחים אותם לבחון את כל מנות השידור, פחות סביר היום). תנועה מוגזמת על אתרנט משתנה יכולה לבוא גם בצורת "הצפת מסגרות ליעדים לא ידועים". מצב זה נגרם על ידי מתג Ethernet שאינו מסוגל לעקוב אחר כל יעד ברשת, והוא הסיבה מדוע רשתות Ethernet מנותבות אינן יכולות להגדיל את מספרן האינסופי של מספר רב של אתרים. ההשפעה של הצפת מסגרות ליעדים לא ידועים דומה להשפעת תעבורת השידור העודפת, למטרות תת-הכרעה.

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

בתכנון העיר, אתה יכול לתכנן איך הרחובות מצטלבים זה עם זה, והוא יכול להשתמש רק בכיוון אחד, חד כיווני, ברחובות מתים כדי להשפיע על זרימת התנועה. אולי אתה רוצה רחוב ראשי להיות 30 בלוקים ארוכים, עם כל בלוק שיש עד 99 בניינים כל אחד. זה די קל לתכנן מספור הרחוב שלך כך שכל בלוק ברחוב הראשי יש מגוון של מספרי רחוב הגדלת 100 עבור כל בלוק. זה מאוד קל לדעת מה "מספר מתחיל" בכל בלוק הבאים צריך להיות.

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

לצורך תשובה זו, בניית רשתות המשנה שלנו היא הדאגה העיקרית שלנו. במקום לעבוד עשרוני, כמו שאתה עושה עם תכנון עירוני, אתה עובד בינארי כדי לתאר את הגבולות של כל רשת משנה.

המשך: כיצד עובד IPv4 Subnetting?

(כן ... הגענו לגודל המקסימלי של תשובה (30000 תווים).)


632
2017-08-04 15:58



@ יוסף: זו הרצאה שאני מסירת פעמים רבות מדי לטובתי. > חיוך <אני אסתכל על הקטע הבינארי שלך. אני שונא ללמד על מתמטיקה (וזה מה בעצם הבנה בינארי - ספירת בבסיס 2) כי אני לא ממש טוב בזה. - Evan Anderson
הבעיה היחידה שלי w / לשבור את התשובה היא כי אחד צריך להבין מדוע subnetting קיים (ניתוב IP) לפני שניתן להבין כיצד לשבור ביעילות רשת IP לתוך רשתות משנה. מעולם לא מצאתי דרך טובה לדון בנושא אחד בבידוד האחר. (באמת, עיצוב רשת IP עם VLSM מגיע באופן טבעי "הגיוני" אחרי שאתה מבין ניתוב IP ...) - Evan Anderson
אל תפרק את זה. - Joseph Kern
+1 עבור הפוסט המקיף ביותר שנצפה אי פעם בשרת serverfault - Scott Lundberg
הצביע אם רק על המטאפורה של מד מרחק. עכשיו אני יודע איך להסביר איך עובד בינארי לאנשים. - phuzion


המשך מ: כיצד עובד IPv4 Subnetting?

ספק שירותי האינטרנט מספק את הטווח של מזהה הרשת 192.168.40.0/24 (11000000.10101000.00101000.00000000). אתה יודע שברצונך להשתמש בהתקן חומת אש / נתב כדי להגביל את התקשורת בין חלקים שונים של הרשת (שרתים, מחשבי לקוח, ציוד רשת) וככזה, תרצה לשבור חלקים שונים אלה של הרשת שלך לתוך רשתות משנה IP (אשר התקן חומת האש / נתב יכול ואז המסלול בין).

יש לך:

  • 12 מחשבי שרת, אך ייתכן שתקבל עד 50% יותר
  • 9 מתגים
  • 97 מחשבי לקוח, אך ייתכן שתקבל יותר

מהי דרך טובה לשבור 192.168.40.0/24 לתוך אלה חתיכות?

לחשוב אפילו כוחות של שני, ועבודה עם מספר גדול יותר של מכשירים אפשריים, אתה יכול לבוא עם:

  • 18 מחשבי שרת - הכוח הגדול הבא של שני הוא 32
  • 9 מתגים - הכוח הגדול הבא של שני הוא 16
  • 97 מחשבי לקוח - הכוח הגדול הבא של שני הוא 128

בתת רשת IP נתונה, יש שתי כתובות שמורות שלא ניתן להשתמש בהן ככתובת IP חוקית של התקן - הכתובת עם כל האפסים בקטע מזהה המארח והכתובת עם כל הכתובות בחלק מזהה המארח. ככזה, עבור כל תת רשת IP, מספר הכתובות המארחות זמין הוא שניים לכוח של כמות של 32 מינוס מספר סיביות במסיכת רשת המשנה, מינוס 2. אז, במקרה של 192.168.40.0/24 אנחנו יכול לראות כי מסיכת הרשת יש 24 סיביות. זה משאיר 8 סיביות זמין עבור המזהים המארחת. אנו יודעים כי 2 לכוח 8 הוא 256 - כלומר 256 שילובים אפשריים של סיביות להתאים לחריץ 8 סיביות רחב. מאחר ששילובי "11111111" ו- "00000000" של אותם 8 סיביות אינם מותרים עבור מזהי מארח, זה משאיר אותנו עם 254 מארחים אפשריים שניתן להקצות לרשת 192.168.40.0/24.

מתוך אלה 254 המארחים, זה נראה כאילו אנחנו יכולים להתאים את מחשבי הלקוח, מתגים, ואת המחשבים לשרת לתוך שטח זה, נכון? בוא ננסה.

יש לך 8 סיביות של מסיכת רשת משנה כדי "לשחק עם" (8 סיביות הנותרים של כתובת ה- IP 192.168.40.0/24 לא מכוסה על ידי מסיכת רשת המשנה שסופק על ידי ספק האינטרנט שלך). אנחנו צריכים לעבוד על דרך להשתמש אלה 8 סיביות כדי ליצור מספר זיהויי רשת ייחודיים שיכולים להתאים את המכשירים לעיל.

התחל עם הרשת הגדולה ביותר - מחשבי הלקוח. אתה יודע כי הכוח הגדול הבא של שניים ממספר התקנים אפשריים הוא 128. מספר 128, בינארי, הוא "10000000". למזלנו, זה נכנס לתוך חריץ 8 סיביות יש לנו חינם (אם זה לא, זה יהיה אינדיקציה כי המשנה שלנו מתחיל קטן מדי כדי להתאים את כל המכשירים שלנו).

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

11000000.10101000.00101000.00000000 - 192.168.40.0 network ID
11111111.11111111.11111111.00000000 - Old subnet mask (/24)

11000000.10101000.00101000.00000000 - 192.168.40.0 network ID
11111111.11111111.11111111.10000000 - New subnet mask (/25)

11000000.10101000.00101000.10000000 - 192.168.40.128 network ID
11111111.11111111.11111111.10000000 - New subnet mask (/25)

תסתכל על זה עד שזה הגיוני. הגדלנו את מסיכת רשת המשנה באורך אחד, וגרם למזהה הרשת לכסות סיבית אחת שהיתה בשימוש עבור זיהוי מארח. מאז זה אחד יכול להיות אפס או אחד, יש לנו למעשה לפצל רשת 192.168.40.0 שלנו לתוך שתי רשתות. כתובת ה- IP הראשונה חוקית ברשת 192.168.40.0/25 תהיה מזהה המארח הראשון עם "1" בחלק הימני ביותר:

11000000.10101000.00101000.00000001 - 192.168.40.1 - First valid host in the 192.168.40.0/25 network

המארח החוקי הראשון ברשת 192.168.40.128 יהיה, כמו כן, מזהה המארחת הראשון עם "1" בחלק הימני ביותר:

11000000.10101000.00101000.10000001 - 192.168.40.129 - First valid host in the 192.168.40.128/25 network

המארח חוקי האחרון בכל רשת יהיה מזהה המארח עם כל ביט מלבד החלק הימני ביותר מוגדר "1":

11000000.10101000.00101000.01111110 - 192.168.40.126 - Last valid host in the 192.168.40.0/25 network
11000000.10101000.00101000.11111110 - 192.168.40.254 - Last valid host in the 192.168.40.128/25 network

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

  • מחשבי לקוח - 192.168.40.0/25 - כתובות IP חוקיות: 192.168.40.1 - 192.168.40.126

עכשיו, כדי לשבור את הרשת השנייה עבור השרתים שלנו ומתגים, אנחנו עושים את אותו הדבר.

יש לנו 12 מחשבים שרתים, אבל אנחנו יכולים לקנות עד 6 יותר. בואו לתכנן ב 18, אשר משאיר לנו את הכוח הגבוה הבא של 2 כמו 32. בינארי, 32 הוא "100000", שהוא 6 סיביות ארוכות. יש לנו 7 סיביות של מסיכת רשת משנה שנותרו ב- 192.168.40.128/25, כך שיש לנו מספיק סיביות כדי להמשיך "לשחק". הוספת עוד אחת של מסיכת רשת משנה נותנת לנו שתי רשתות נוספות:

11000000.10101000.00101000.10000000 - 192.168.40.128 network ID
11111111.11111111.11111111.10000000 - Old subnet mask (/25)

11000000.10101000.00101000.10000000 - 192.168.40.128 network ID
11111111.11111111.11111111.11000000 - New subnet mask (/26)
11000000.10101000.00101000.10000001 - 192.168.40.129 - First valid host in the 192.168.40.128/26 network
11000000.10101000.00101000.10111110 - 192.168.40.190 - Last valid host in the 192.168.40.128/26 network

11000000.10101000.00101000.11000000 - 192.168.40.192 network ID
11111111.11111111.11111111.11000000 - New subnet mask (/26)
11000000.10101000.00101000.11000001 - 192.168.40.193 - First valid host in the 192.168.40.192/26 network
11000000.10101000.00101000.11111110 - 192.168.40.254 - Last valid host in the 192.168.40.192/26 network

אז, עכשיו יש לנו לשבור 192.168.40.128/25 לתוך שתי רשתות נוספות, שכל אחד מהם יש 26 סיביות של מסיכת רשת, או סך של 62 אפשרי IDs מארח - 2 ^ (32 - 26) - 2.

כלומר, הן של רשתות אלה יש מספיק כתובות עבור השרתים שלנו בוררים! בוא נרשום הערות:

  • שרתים - 192.168.40.128/26 - כתובות IP תקפות: 192.168.40.129 - 192.168.40.190
  • מתגים - 192.168.40.192/26 - כתובות IP חוקיות: 192.168.40.193 - 192.168.40.254

טכניקה זו נקראת מסיכת רשת משנה בעלת אורך משתנה (VLSM), ואם היא מיושמת כראוי, גורמת ל"נתבי ליבה "להיות טבלאות ניתוב קטנות יותר (באמצעות תהליך הנקרא" סיכום המסלול "). במקרה של ספק שירותי האינטרנט שלנו בדוגמה זו, הם יכולים להיות מודעים לחלוטין לאופן שבו אנחנו כבר subnetted 192.168.40.0/24. אם לנתב שלהם יש חבילה של 192.168.40.206 (אחד מהמתגים שלנו), הם צריכים רק לדעת להעביר אותו לנתב שלנו (מאחר ש -192.168.40.206 תואם למזהה הרשת ולמסיכת רשת המשנה 192.168.40.0/24 בטבלת הניתוב של הנתב ) והנתב שלנו יקבל אותו ליעד. זה שומר על נתיבי המשנה שלנו מתוך טבלאות הניתוב שלהם. (אני מפשט כאן, אבל אתה מקבל את הרעיון.)

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

את unrealism של דוגמאות

העולם הבדיוני בתשובה זו הוא, כמובן, בדיוני. בדרך כלל אתה יכול לעשות רשתות משנה על Ethernet עבר מודרני עם יותר מארחים מאשר 254 (תלוי בפרופיל התנועה). כפי שצוין בהערות, שימוש / 24 רשתות בין נתבים אינו עולה בקנה אחד עם Real Life (tm). זה עושה עבור דוגמאות חמודות, אבל הוא בזבוז של שטח הכתובות. בדרך כלל, / 30 או a / 31 (ראה http://www.faqs.org/rfcs/rfc3021.html לפרטים על איך / 31 של העבודה - הם מעבר להיקף של תשובה זו בטוח) הרשת משמשת על קישורים כי הם בהחלט נקודה לנקודה בין שני נתבים.


137
2017-08-04 15:53



שגיאה קטנה: הקוד מיד לאחר "המארח החוקי האחרון ..." חוזר חזרה לכינוי "מארח חוקי ראשון". אני מניח כי עדיין צריך לומר "האחרון". - JoeCool1986
@ JoeCool1986 - טוב לתפוס. - Evan Anderson
אני הולך להעיר את התשובה הזאת כדי לוודא שתי תשובות נשמרות בסדר. - l46kok
על החלק שבו אתה יוצר שני subnets מ 192.168.40.128 וליצור מזהה רשת של 192.168.40.192, מאיפה הגיע 192? - user6607
@ user6607 רשתות משנה נספרות לאחור (ללא פערים). לדוגמה, תת הרשת הראשונה 0 מיוצג כ 00000000. המשנה השנייה היא 128 לכן 10000000 ואת המשנה השלישית 192 מיוצג כ 11000000, וכו 'פשוט תמשיך לספור לאחור כדי למצוא רשתות משנה חדשות. - Joseph Kern


תת-רשתות

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

בינארי

בינארי הוא בסיס 2 מערכת ספירה. המורכב רק שני מספרים (1 ו 0). ספירת ההכנסות בדרך זו.

1 = 001 ( 0 + 0 + 1 = 1)
2 = 010 ( 0 + 2 + 0 = 2)
3 = 011 ( 0 + 2 + 1 = 3)
4 = 100 ( 4 + 0 + 0 = 4)
5 = 101 ( 4 + 0 + 1 = 5)

אז אם אתה רק לדמיין כי כל אחד הוא בעל מקום עבור ערך (כל ערכי בינארי הם סמכויות של שני)

1     1     1     1     1 = 31
16  + 8  +  4  +  2  +  1 = 31

אז ... 100000 = 32. ו 10000000 = 128. ו 11111111 = 255.

כשאני אומר, "יש לי מסיכת רשת משנה של 255.255.255.0", אני באמת מתכוון, "יש לי מסיכת רשת משנה של 11111111.11111111.11111111.00000000." אנו משתמשים ברשתות משנה כיד קצרה.

התקופות בכתובת, נפרד כל 8 ספרות בינאריות (אוקטט). זו הסיבה IPv4 ידוע כחלל כתובת 32bit (8 * 4).

למה Subnet?

כתובות IPv4 (192.168.1.1) חסרות. תת-רשתות נותנת לנו דרך להגדיל את כמות הרשתות הזמינות (או המארחים). זאת מטעמים מנהליים וטכניים.

כל כתובת IP מחולקת לשתי מנות נפרדות, הרשת והמארח. כברירת מחדל, כתובת C Class (192.168.1.1) משתמשת בשלושת האוקטטים הראשונים (192.168.1) עבור חלק הרשת של הכתובת. ואת octet 4 (1.) כמו חלק המארח.

כברירת מחדל, כתובת IP ומסכת רשת משנה עבור כתובת Class C נראית כך

IP     192.168.1.1 
Subnet 255.255.255.0

בינארי כזה

IP     11000000.10101000.00000001.00000001
Subnet 11111111.11111111.11111111.00000000

תראו שוב את הדוגמה הבינארית. שימו לב איך אמרתי שלוש הראשונות octets משמשים את הרשת? שימו לב איך חלק הרשת הוא כל אלה? זה כל משנה הרשת. בואו נתרחב.

בהתחשב בכך שיש לי אחד octet עבור חלק מארח שלי (בדוגמה לעיל). אני יכול רק פעם 256 המארחים (256 הוא הערך המרבי של octet, סופר מ 0). אבל יש עוד טריק קטן: אתה צריך לחסר 2 כתובות המארח מן אלה זמינים (כיום 256). הכתובת הראשונה בטווח תהיה עבור הרשת (192.168.1.0) והכתובת האחרונה בטווח תהיה השידור (192.168.1.255). אז יש לך באמת 254 כתובות זמינות עבור המארחים ברשת אחת.

מקרה מבחן

נניח שנתתי לך את פיסת הנייר הבאה.

Create 4 networks with 192.168.1.0/24.

בואו נסתכל על זה. / 24 נקרא סימון CIDR. במקום להתייחס 255.255.255.0 אנחנו רק התייחסות סיביות אנחנו צריכים עבור הרשת. במקרה זה אנחנו צריכים 24 סיביות (3 * 8) מכתובת 32bit. כותב את זה בינארי

11111111.11111111.11111111.00000000 = 255.255.255.0
8bits   + 8bits  + 8bits  + 0bits   = 24bits

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

11111111.11111111.11111111.00000000 = 255.255.255.0   = 1 Network OR /24
11111111.11111111.11111111.10000000 = 255.255.255.128 = 2 Networks OR /25
11111111.11111111.11111111.11000000 = 255.255.255.192 = 4 Networks (remember powers of 2!) OR /26

כעת, לאחר שהחלטנו על / 26 נתחיל להקצות מארחים. מתמטיקה פשוטה:

32(bits) - 26(bits) = 6(bits) for host addresses.

יש לנו 6bits להקצות בכל רשת עבור המארחים. זכור כי אנחנו צריכים לחסר 2 עבור כל רשת.

h = host bits    
2^h - 2 = hosts available

2^6 - 2 = 62 hosts 

Finally we have 62 hosts in 4 networks, 192.168.1.0/26

עכשיו אנחנו צריכים להבין לאן הולכים המארחים. חזרה לבינארי!

11111111.11111111.11111111.00,000000 [the comma is the new network/hosts division]

Begin to calculate:

11000000.10101000.00000001.00,000000 = 192.168.1.0 [First IP = Network Adress]
11000000.10101000.00000001.00,000001 = 192.168.1.1 [First Host IP]
11000000.10101000.00000001.00,000010 = 192.168.1.2 [Second Host IP]
11000000.10101000.00000001.00,000011 = 192.168.1.3 [Third Host IP]

And so on ... until ...

11000000.10101000.00000001.00,111110 = 192.168.1.62 [Sixty Second Host IP]
11000000.10101000.00000001.00,111111 = 192.168.1.63 [Last IP = Broadcast Address]

So ... On to the NEXT network ....

11000000.10101000.00000001.01,000000 = 192.168.1.64 [First IP = Network Address]
11000000.10101000.00000001.01,000001 = 192.168.1.65 [First Host IP]
11000000.10101000.00000001.01,000010 = 192.168.1.66 [Second Host IP]

And so on ... until ...

11000000.10101000.00000001.01,111110 = 192.168.1.126 [Sixty Second Host IP]
11000000.10101000.00000001.01,111111 = 192.168.1.127 [Last IP = Broadcast Address]

So ... On to the NEXT network ....

11000000.10101000.00000001.10,000000 = 192.168.1.128 [First IP = Network Address]
11000000.10101000.00000001.10,000001 = 192.168.1.129 [First Host IP]

Etc ...

בדרך זו ניתן לחשב את כל רשת המשנה.

כרטיסי הבר מסכת כרטיס פראי היא מסיכת רשת משנה הפוכה.

11111111.11111111.11111111.11000000 = 255.255.255.192 [Subnet]
00000000.00000000.00000000.00111111 = 0.0.0.63 [Wild Card]

נוסף

Google עבור המונחים 'super-netting' ו- 'VLSM' (מסיכת רשת משנה משתנה) ', עבור נושאים מתקדמים יותר.

אני רואה עכשיו שלקחתי יותר מדי זמן להגיב ... נאנח


73
2017-08-04 15:12



"בהתחשב בעובדה שיש לי אוקטט אחד עבור חלק המארח שלי (בדוגמה לעיל) .אני יכול רק פעם 255 המארחים (255 הוא הערך המרבי של octet). אבל יש עוד טריק קטן: אתה צריך לחסר 2 כתובות המארח (255) .הכתובת הראשונה בטווח תהיה עבור הרשת (192.168.1.0) והכתובת האחרונה בטווח תהיה השידור (192.168.1.255) .לכן יש לך 253 כתובות זמינות עבור המארחים ברשת אחת. "... זה לא נכון. - joeqwerty
ישנם 256 ערכים אפשריים עבור octet: 0 עד 255, עבור סכום כולל של 256. 256 -2 (רשת וכתובות שידור) = 254 כתובות מארח אפשרי. - joeqwerty
אופס. תודה! :-) על ידי אחד, אין לי מושג איך הצלחתי כי הישג מסוים. - Joseph Kern
-1 מצטער, אבל לא היו "כיתות" מאז RFC 1519 בשנת 1993, אף אחד לא צריך לדבר עליהם מחוץ להקשר היסטורי. הם מבלבלים ולגרום להרבה תפיסות מוטעות. - Chris S
כריס אתה כנראה צודק, אבל שיעורים היו עדיין לימד עד תחילת 2000 של CCNA ורוב הקורסים ברמת הקורס. - Joseph Kern


שיעור היסטוריה קצר: במקור, כתובות IPv4 לשידור ליעד יחיד חולקו ל -3 כיתות, כל אחת מהן עם אורך מסכה 'ברירת מחדל' (הנקרא מסיכת רשת משנה)

  • Class A: כל דבר בטווח 1.0.0.0 -> 127.255.255.255. מסכת רשת משנה מסודרת של 255.0.0.0 (/ 8 ב CIDR סימון)
  • Class B: כל דבר בטווח 128.0.0.0 -> 191.255.255.255. מסכת רשת משנה מסודרת של 255.255.0.0 (/ 16 בסימון CIDR)
  • Class C: כל דבר בטווח 192.0.0.0 -> 223.255.255.255. מסכת רשת משנה מסודרת של 255.255.255.0 (/ 24 ב CIDR סימון)

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

עם זאת, ככל שרשתות IP גדלו, התברר כי לגישה זו יש בעיות. כדי לתת שם לשלושה:

בעולם מכובד, כל רשתות המשנה היה כדי לקבל מסכה של / 8, / 16, או / 24. משמעות הדבר היא כי תת הרשת הקטנה ביותר שיכולה להיות מוגדר הוא / 24, אשר אפשרה עבור 254 כתובות המארח (.0 ו .255 שמורים כמו רשת וכתובות שידור, בהתאמה). זה היה בזבזני מאוד, במיוחד על נקודות לנקודה קישורים עם רק שני נתבים המצורפת אליהם.

גם לאחר הגבלה זו היתה רגועה, פרוטוקולי ניתוב מוקדמים יותר (למשל. RIPv1) לא פרסמו את אורך המסכה המשויך לקידומת IP. בהיעדר מסכה ספציפית, הוא ישתמש במסכה של ממשק מחובר ישירות באותה רשת מסווגת, או יחזור להשתמש במסכה הכיתתית. לדוגמה, אם ברצונך להשתמש ברשת 172.16.0.0 עבור קישורים בין נתבים עם 30 / מסיכות, את כל תת-רשתות משנה של 172.16.0.0 - 172.16.255.255 יצטרכו לכלול מסכה של 30 / (16384 רשתות משנה, כל אחת עם 2 כתובות IP ניתנות לשימוש).

טבלאות הניתוב של נתבי האינטרנט החלו לקחת יותר ויותר זיכרון; זה היה / נקרא "התפוצצות שולחן הניתוב". אם ספק היה 16 רציף / 24 רשתות, למשל, הם היו צריכים לפרסם את כל הקידומות 16, ולא סיכום אחד כיסה את כל טווח.

שתיים - חידודים קשורים אפשר לנו לעבור מעבר למגבלות לעיל.

  1. אורך משתנה מסכות משנה (VLSM)
  2. CIDR (ניתוב בין דומיינים ללא מעברים)

VLSM מתייחס ליכולת של פרוטוקול ניתוב לתמוך במסכות רשת משנה שונות בתוך אותה רשת מסווגת. לדוגמה:

192.168.1.0/24

ניתן לפצל את:

192.168.1.0/25
192.168.1.128/26
192.168.1.192/27
192.168.1.224/27

אשר אפשרה שימוש יעיל יותר בחלל הכתובות; subnets יכול להיות בגודל הנכון עבור מספר המארחים / נתבים שיצורפו אליהם.

CIDR לוקח VLSM ומרחיב אותו בדרך אחרת; בנוסף על פיצול רשת מסווגת אחת לרשתות משנה קטנות יותר, CIDR מאפשר הצטברות של רשתות מרובות מסוגים בסיכום יחיד. לדוגמה, רשתות Class B (16) הבאות:

172.16.0.0/16
172.17.0.0/16
172.18.0.0/16
172.19.0.0/16

ניתן לצבור / לסכם עם קידומת אחת:

172.16.0.0/14

במונחים של subnetting: מסיכת רשת משנה היא 32 סיביות. אורך המסכה מציין כמה סיביות מזהות את חלק הרשת של הכתובת. לדוגמה:

10.1.1.0/24
  • מסכת המשנה המסוגננת היא / 8
  • מסיכת הרשת הפנימית בפועל היא / 24
  • 16 סיביות (24-8) כבר "לווה" לשימוש subnetting.

משמעות הדבר היא, בהנחה שכל הרשת 10.0.0.0/8 תת-זוכה ל -24 שניות, יהיו 65536 (2 ^ 16) משנה בתוך טווח זה. (ההנחה היא שהפלטפורמה שבה אתה משתמש תומכת במספרי משנה של 0 ו 255-. ראה את ה- IP של תת-הרשת של Cisco).

נותרו 8 סיביות בחלק 'המארח' של הכתובת. משמעות הדבר היא שיש 256 כתובות IP זמינות (2 ^ 8), מתוכן 2 שמורות (10.1.1.0 היא כתובת הרשת, 10.1.1.255 היא כתובת שידור המשנה המופנית לרשת המשנה). זה משאיר 254 כתובות IP שמיש ברשת משנה זו. ((2 ^ 8) - 2)


31



היו למעשה 5 שיעורים. - dbasnett
נכון, אבל האם אנחנו באמת צריכים להיכנס לשידור לקבוצה שמורה E שמורה עבור "מבוא סובסטינג" השאלה? :) - Murali Suriar
הבאת את ההיסטוריה לשאלת הקדמה ... ואז עזבתי אותה לא שלמה. לא בטוח איזה יותר גרוע. - Chris S


טווחי רשת: רשתות תמיד מופנות על ידי 2 מספרים: אחד כדי לקבוע את הרשת, ועוד כדי לקבוע איזה מחשב (או מארח) הוא ברשת. כמו כל כתובת nertwork הוא 32 סיביות, שני המספרים צריך להתאים אלה 32 סיביות.

מספור הרשת חשוב, כמו זה כי ICANN הידיים כאשר אתה מבקש טווח IP ברשת. אם לא היה לנו את זה, אף אחד לא היה יכול להגיד את ההבדל בין הרשת שלי ו- AT & Ts. לכן, בעוד שמספרים אלה חייבים להיות ייחודיים, אף אחד אחר לא רוצה להקצות מספרים למארחים הנמצאים ברשת שלי. מכאן פיצול - החלק הראשון מנוהל על ידי אנשים ברשת, החלק השני הוא כל שלי לתת לכל מכונות אני רוצה.

מספר הרשת אינו קבוע במספר מסוים של ביטים - לדוגמה, אם היו לי רק 200 מכונות לנהל את עצמי, הייתי שמח לחלוטין עם מספר הרשת שהשתמש 24 סיביות, משאיר אותי עם רק 8 סיביות לעצמי - וזה מספיק עבור עד 255 המארחים. כמו מספר הרשת משתמש 24 סיביות, אנחנו יכולים לקבל הרבה מהם, כלומר, הרבה אנשים יכולים להיות רשתות משלהם.

בעבר זה היה מכונה רשת C בכיתה. (דרגה B בשימוש 16 סיביות עבור מספר הרשת, בכיתה A השתמשו 8 סיביות, אז יש רק כמה רשתות בכיתה קיים).

כיום, האמנה זו שמות נפלה מן האופנה. זה הוחלף עם הרעיון שנקרא CIDR. CIDR מציב במפורש את מספר הביטים עבור המארחים שלך לאחר קו נטוי. אז הדוגמה שלי לעיל (את הכיתה C) מכונה כעת CIDR / 24.

זה נותן לנו קצת יותר גמישות, לפני אם היה לי 300 המארחים לנהל, הייתי צריך רשת B Class! עכשיו, אני יכול פשוט לקבל CIDR, אז יש לי 9 סיביות בשבילי, ו 23 סיביות עבור מספר הרשת. ל- ICANN לא יהיו רשתות כאלה, אבל אם יש לי רשת פנימית, או אם אני משכירה רשת חלקית מספק שירותי אינטרנט, זה מקל על הניהול - במיוחד משום שכל הלקוחות שלהם יכולים לקבל / 29 (לעזוב אותי. 3 סיביות או מקסימום של 8 מכונות) המאפשרת לאנשים רבים יותר לקבל פרוסה קטנה משלהם של כתובות ה- IP הזמינות. עד שאנחנו מקבלים IPv6, זה די חשוב.


עם זאת ... בעוד אני יודע / 24 CIDR הוא המקבילה של רשת Class C הישן, ו / 16 הוא בכיתה ב ו / 8 הוא בכיתה א ... אני עדיין stumped מנסה לחשב / 22 ב הראש שלי. למרבה המזל יש כלים לעשות את זה בשבילי :)

עם זאת - אם אתה יודע / 24 הוא 8 סיביות עבור המארחים (ו 24 סיביות עבור רשת), אז אני יודע / 23 נותן לי קצת תוספת אשר מכפילה את מספר המארחים.


6



-1 מצטער, אבל להזכיר את השיעורים מחוץ "היסטורי" התייחסות אינו הולם בימים אלה. הם לא "נופלים מהאופנה" הם הוצאו רשמית על ידי RFC 1519 בשנת 1993. הם מבלבלים כמו כל H & ll ולגרום חבורה של תפיסות מוטעות. - Chris S
חלק מהשימושים של פרוטוקולי ניתוב דינמיים מסכמים את הגבולות המסודרים, כך שעדיין עוזר להכיר אותם. - Ben


בעוד האמור לעיל נכונה (מצטער, TL, DR), חישוב רשתות משנה עדיין גורם מנהלי רשת רבים הרבה צער. יש למעשה היא דרך קלה מאוד לעשות חישוב המשנה, אתה יכול לעשות את רוב זה בראש שלך, ויש מעט מאוד אתה צריך לשנן. עבור רוב היישומים, זה אפילו לא הכרחי כדי להבין את הייצוג הבינארי, אם כי הוא מועיל עבור הבנה מלאה של subnetting. כאן אני רק לדון IPv4; IPv6 הוא מחוץ לתחום הדיון.

תזכור את זה:

ישנם שלושה דברים עיקריים שיש לזכור: כל רשתות המשנה מבוססות על כוחות של שני, ויש שני מספרי מפתח: 256 ו 32. עוד על כך מאוחר יותר.

ראשית, מאפשר להסתכל על הטבלה המכילה כוחות של 2:

2^0 = 1
2^1 = 2
2^2 = 4
2^3 = 8
2^4 = 16
2^5 = 32
2^6 = 64
2^7 = 128
2^8 = 256

חישוב סמכויות של 2 הוא קל: כל מספר שלם של כוח מכפיל את התוצאה. 1 + 1 = 2, 2 + 2 = 4, 4 + 4 = 8, 8 + 8 = 16, וכן הלאה. המספר הכולל של הכתובות ברשת משנה חייב להיות תמיד כוח של 2.

מאז כל אוקטט של תת רשת IPv4 הולך עד 256, 256 הוא מספר חשוב מאוד


3



תודה. אבל אני עדיין מטושטשת על איך המחשב משתמש מסיכת רשת המשנה. כאשר יישום במחשב מבקש לשלוח נתונים, הוא encapsulates אותו לתוך מנות. האם מסיכת רשת המשנה קובעת את אופן קיומה של מנות? לדוגמה, אם המחשב רצה לשלוח מנות ברשת המקומית, הוא ישתמש מסגרת Ethernet en.wikipedia.org/wiki/Ethernet_frame ואם הוא רוצה מחוץ לרשת הוא ישתמש מנות tcp en.wikipedia.org/wiki/... ? - aquagremlin
בעיקרון, אני לא יודע איך מחשב קובע לאן לשלוח את הנתונים שלה. רשת ה- Ethernet דומה לאוטובוס - היא הולכת לכל מקום. הצבת מנות דרך שקע ה- Ethernet של מחשב היא אירוע כללי - ולכן החבילה עצמה צריכה לקבוע מי יגיב אליה. מנה כי הוא נועד להרים על ידי מכשיר מקומי (מתג או מחשב אחר על lan) יש להיראות שונה מנות כי הוא הולך להיות הרים על ידי נתב. - aquagremlin
זה קורה על שכבה מתחת TCP. לכל התקן יש כתובת חומרה (MAC) המשויכת לכתובת IP בטבלת ה- ARP של כל מכשיר. זה נבנה באמצעות גילוי. כאשר מנות מיועדת למארח ברשת המקומית, הוא מתויג עם MAC עבור התקן היעד. כאשר מנות מיועדת לארח מרוחק, הוא מתויג עם MAC עבור הנתב ברשת המקומית. כאשר הוא עובר דרך הנתב, MAC הוא חשוף ואז שתייגת עם MAC של נתב הופ הבא. רשת המשנה רק מגדירה את היקף הרשת המקומית. (זוהי גרסה פשוטה של ​​<500 תווים). - Jonathan J


אני גם מרגיש שיש atleast להיות אזכור של NATs, כי הם משמשים כל כך נפוץ ברשתות מודרניות במקום רשתות משנה, בגלל התשישות כתובת IPv4, בין היתר. (כמו כן, כאשר הייתי הראשון ללמוד על subnets, הייתי מאוד מבולבל לגבי איך subnetting מתייחס לרשתות שנוצרו על ידי נתבים WiFi).

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

תרגום הכתובת בפועל נעשה בשקיפות ב NAT צמתים המסוגלים, בדרך כלל נתבים. זה יכול להיות של צורות רבות, קונוס מלא, כתובת מוגבלת, נמל מוגבל וכו 'או תערובת של אלה, אשר מכתיב את הקשרים על פני הצומת יכול להיות יזם.

פרטים מלאים ניתן למצוא ב ויקיפדיה, אבל למשל לשקול נתב WiFi עם 2 התקנים המחוברים אליו. IP הציבורי של הנתב הוא 10.9.20.21/24, ואת ה- IP של המכשירים (פרטיים IPs) הם A: 192.168.0.2, B: 192.168.0.3 ואת זה של הנתב R: 192.168.0.1. כך אם A רוצה להתחבר לשרת S: 10.9.24.5/24, (אשר למעשה על רשת משנה שונה w.r.t הנתב כאן):

  1. שולח חבילת IP ל R(אשר יהיה שער ברירת המחדל) עם ה- IP המקור 192.168.0.2, יציאת src (למשל) 14567, ואת כתובת IP היעד: 10.9.24.5 (למרות שהיציאה היא למעשה חלק מכותרת TCP).
  2. הנתב (שהוא NAT מסוגל) ממפה את היציאה 14567 במכשיר A ומשנה את המקור בחבילת ה- IP 10.9.20.21(המהווה את ה- IP הציבורי של הנתב). זאת בניגוד subnetting שתואר לעיל, שבו מנות IP הם למעשה אף פעם לא השתנה.
  3. S מקבל את סדרת מנות TCP (עם כתובת ה- src IP: 10.9.20.21, src נמל: 14567) ולשלוח מנות תגובה עם ערכים אלה בשדות היעד.
  4. R בודק את יציאת היעד, שהיא 14567 ומעביר את החבילה אל A.
  5. A מקבל את מנות התגובה.

במצב האמור, אם B ניסה לפתוח חיבור באותו יציאת מקור (14567), זה יהיה ממופה לנמל אחר על ידי R(והנמל בחבילה היוצאת השתנה) לפני השליחה אל S. כלומר, יהיה גם תרגום פורט במקום רק IP.

שני דברים שיש לשים לב אליהם:

  1. בשל תרגום כתובות זה, לעתים קרובות לא ניתן להתחיל חיבור למכשירים ברשת הפרטית ללא שימוש בטכניקות מיוחדות.
  2. ההגבלה על חיבורי ה- TCP הכוללים מאותו התקן לשרת (65536 = 2 ^ 16) חלה כעת באופן קולקטיבי על כל המכשירים שמאחורי ה- NAT, בטופס ה- NAT שנמצא בשימוש למעלה.

1