כתובות IPv6

הצגת המקור ב-GitHub

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

טווחים

היקפי OT

ברשת שרשור יש שלושה היקפים לטיפול ב-unicast:

  • קישור מקומי - כל הממשקים שניתן להגיע אליהם באמצעות שידור רדיו יחיד
  • Mesh-Local — כל הממשקים זמינים באותה רשת Thread
  • בכל העולם – ניתן לגשת לכל הממשקים מחוץ לרשת Thread

שני ההיקפים הראשונים תואמים לתחיליות שהוקצו על ידי רשת שרשור. ל-Link-Local יש קידומות של fe80::/16, ול-Mesh-Local יש קידומות של fd00::/8.

Unicast

יש מספר כתובות unicast מסוג IPv6 שמזהה מכשיר יחיד בשרשור. לכל פונקציה יש פונקציה שונה, המבוססת על ההיקף ועל התרחיש לדוגמה.

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

איך נוצר ממקם הניתוב

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

טופולוגיה של OT RLOC

כל מזהה נתב של ילד או ילדה תואם להורים שלהם (נתב). כי נתב הוא לא ילד, מספר המזהה של הנתב הוא תמיד 0. הערכים האלה ייחודיים לכל מכשיר ברשת השרשורים, ומשמשים ליצירת RLOC16, שמייצג את 16 הביטים האחרונים ב-RLOC.

לדוגמה, כך מחשבים את ה-RLOC16 בצומת השמאלי העליון (נתב מזהה = 1 ומזהה ילדים = 1):

OT RLOC16

ה-RLOC16 הוא חלק ממזהה הממשק (IID), שתואם ל-64 הביטים האחרונים בכתובת IPv6. ניתן להשתמש במזהי IID מסוימים כדי לזהות סוגים מסוימים של ממשקי Thread. לדוגמה, ה-IDI ל-RLOC מופיע תמיד בטופס הזה:

0000:00ff:fe00:RLOC16

ה-IID, בשילוב עם קידומת Mesh-Local, מוביל ל-RLOC. לדוגמה, באמצעות קידומת Mesh-Local של fde5:8dba:82e1:1::/64, ה-RLOC בצומת של RLOC16 = 0x401 הוא:

OT רלוק

ניתן להשתמש בלוגיקה הזו כדי לקבוע את ה-RLOC לכל הצמתים המודגשים בטופולוגיה שלמעלה.

טופולוגיה של OT עם כתובת

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

לדוגמה, ייתכן שהצומת 0x400 יוסר מרשת השרשורים. צמתים 0x401 ו-0x402 יוצרים קישורים חדשים לנתבים שונים, ולכן כל אחד מהם מוקצה ל-RLOC16 ול-RLOC חדש:

טופולוגיה של OT אחרי שינוי

סוגי כתובות של שידור חד-פעמי

ה-RLOC הוא רק אחת מכתובות ה-IPv6 ה-IPv6 הללו. קטגוריה נוספת של כתובות נקראת Endpoint Identifies (EIDs), שמזהים ממשק ייחודי של Thread בתוך חלוקת רשת של Thread. מזהי EID אינם תלויים בטופולוגיה של רשת השרשורים.

סוגי יוניסקס נפוצים מפורטים בהמשך.

מספר EID שמזהה ממשק שרשור שניתן להגיע אליו דרך שידור רדיו יחיד.
דוגמהfe80::54db:881c:3845:57f4
מזהה (IDI)על סמך 802.15.4 כתובת מורחבת
היקףקישור מקומי
לפרטים
  • משמש לגילוי שכנים, הגדרת קישורים והחלפת מידע לגבי ניתוב
  • לא כתובת לניתוב
  • תמיד יש קידומת של fe80::/16

Mesh-Local EID (ML-EID)

מספר EID שמזהה ממשק שרשור, ללא קשר לטופולוגיה של הרשת. משתמשים באפשרות הזו כדי להגיע לממשק שרשור באותה קטגוריה. נקרא גם כתובת מקומית ייחודית (ULA).
דוגמהfde5:8dba:82e1:1:416:993c:8399:35ab
מזהה (IDI)באקראי, נבחר לאחר סיום ההזמנה
היקףרשת מקומית
לפרטים
  • לא משתנה כאשר הטופולוגיה משתנה
  • לשימוש על ידי אפליקציות
  • יש תמיד קידומת fd00::/8

ממקם ניתוב (RLOC)

מזהה ממשק של שרשור, על סמך המיקום שלו בטופולוגיה של הרשת.
דוגמהfde5:8dba:82e1:1::ff:fe00:1001
מזהה (IDI)0000:00ff:fe00:RLOC16
היקףרשת מקומית
לפרטים
  • נוצרת לאחר חיבור של מכשיר לרשת
  • לשליחת טריגרים של IPv6 ברשת Thread
  • משתנה בהתאם לטופולוגיה
  • בדרך כלל לא משמש אפליקציות

Anycater Locat (ALOC)

מזהה ממשק Thread באמצעות חיפוש RLOC, כאשר RLOC של יעד לא ידוע.
דוגמהfde5:8dba:82e1:1::ff:fe00:fc01
מזהה (IDI)0000:00ff:fe00:fcXX
היקףרשת מקומית
לפרטים
  • fcXX = יעד ALOC, שמחפשים את ה-RLOC המתאים
  • בדרך כלל לא משמש אפליקציות

כתובת Global Unicast (GUA)

מספר EID שמזהה ממשק Thread בהיקף גלובלי, מעבר לרשת שרשור.
דוגמה2000::54db:881c:3845:57f4
מזהה (IDI)
  • SLAAC – מוקצה באופן אקראי על ידי המכשיר עצמו
  • DHCP — הוקצה על ידי שרת DHCPv6
  • ידני – מוקצה לפי שכבת האפליקציה
היקףכללי
לפרטים
  • כתובת IPv6 ציבורית
  • תמיד יש קידומת של 2000::/3

שידור לקבוצה

שידור לקבוצה משמש להעברת מידע למספר מכשירים בו-זמנית. ברשת Thread, כתובות ספציפיות נשמרות לשימוש בשידורים מרובים עם קבוצות שונות של מכשירים, בהתאם להיקף.

כתובת IPv6 ההיקף נשלחה אל
ff02::1 קישור מקומי כל אירועי ה-FTD ומכשירי ה-MED
ff02::2 קישור מקומי כל ה-FTD
ff03::1 רשת מקומית כל אירועי ה-FTD ומכשירי ה-MED
ff03::2 רשת מקומית כל ה-FTD

ייתכן שתבחינו בכך שמכשירי שינה ישנים (SED) אינם נכללים כנמענים בטבלה של מספר שידורי בכורה. במקום זאת, Thread מגדיר את כתובת ה-IPv של ריבוי שידורים חד-פעמיים בהיקף מקומי-קישור בהיקף מקומי, עבור שרשור של כל השרשורים, כולל SED. כתובות ה-ריבוי שידורים משתנות בהתאם לרשת השרשורים, מאחר שהיא מבוססת על הקידומת unicast-Mesh-Local (ראו RFC 3306{/1} למידע נוסף על כתובות IPv6 המבוססות על unicast-prefix.

היקפים שרירותיים, מעבר לאלה שכבר רשומים, נתמכים גם למכשירי Thread.

Anycast

Anycast משמש לניתוב תנועה לממשק Thread כאשר RLOC של יעד לא ידוע. ממקם Anycast (ALOC) מזהה את המיקום של ממשקים מרובים במחיצת שרשור. 16 הביטים האחרונים של ALOC, נקראים ALOC, הם בפורמט 0xfcXX, שמייצג את סוג ה-ALOC.

לדוגמה, ALOC16 בין 0xfc01 ל-0xfc0f שמור לנציגי DHCPv6. אם ה-DHCPv6 סוכן RLOC לא ידוע (אולי כי הטופולוגיה של הרשת השתנתה), אפשר לשלוח הודעה ל-ALOC של סוכן DHCPv6 כדי להשיג את ה-RLOC.

השרשור מגדיר את ערכי ה-ALOC16 הבאים:

ALOC16 סוג
0xfc00 המוביל/ה
0xfc010xfc0f סוכן DHCPv6
0xfc100xfc2f שירות
0xfc300xfc37 קומישינר
0xfc400xfc4e סוכן סמוי
0xfc38 - 0xfc3f
0xfc4f עד 0xfcff
שמורה

תקציר

מה למדתם:

  • רשת שרשור מורכבת משלושה היקפים: Link-Local, Mesh-Local ו-Global
  • במכשיר Thread יש כתובות IPv6 מרובות של unicast
    • RLOC מייצג את מיקום המכשיר ברשת שרשור
    • ML-EID הוא ייחודי למכשיר Thread בתוך מחיצה ויש להשתמש בו באפליקציות.
  • השרשור משתמש בשידור לקבוצה כדי להעביר נתונים לקבוצות של צמתים ונתבים
  • השרשור משתמש ב-Anycast כאשר ה-RLOC של יעד לא ידוע

לקבלת מידע נוסף על כתובות IPv6 של Thread, יש לעיין בסעיפים 5.2 ו-5.3 במפרט השרשור.

בדיקת ההבנה

באילו שלושה היקפים נעשה שימוש לטיפול ב-unicast ברשת שרשור?
פרטי
תשובה לא נכונה.
ממשק-מקומי
תשובה לא נכונה.
קישור מקומי
נכון.
אתר-מקומי
תשובה לא נכונה.
רשת מקומית
נכון.
כללי
נכון.
מה המשמעות של מכשיר עם מזהה צאצא של 0?
המכשיר הוא 'ילד'.
תשובה לא נכונה.
המכשיר הוא REED.
סגירה, אבל שגויה.
המכשיר הוא נתב.
נכון. לנתב תמיד יש מזהה צאצא של 0.
מצלמה, שהיא צומת ברשת Thread, מקבלת מצלמת RLOC16 חדשה ו-RLOC חדש. אילו מהאירועים הבאים גרמו לכך?
מישהו הוריד מרחוק תמונות מהמצלמה.
תשובה לא נכונה. לאירוע הזה לא תהיה השפעה על רשת Thread.
נתב התנתק מהרשת.
נכון. כאשר נתב מוסר רשת, הטופולוגיה של הרשת משתנה, וכתוצאה מכך המכשיר מקדם את עצמו לנתב ולקבל RLOC חדש.
המצלמה נכנסה למצב שינה, וזה שינה את הטופולוגיה של הרשת.
תשובה לא נכונה. מעבר למצב שינה לא בהכרח יגרום למכשיר לקבל כתובת רשת חדשה.
מכשיר ברשת שרשור נרשם לכתובת ff03::2 של שידור לקבוצה. מה זה אומר על המכשיר?
זהו מכשיר קצה מינימלי (MED).
תשובה לא נכונה.
זהו מכשיר קצה מלא (FED).
תשובה לא נכונה. (רמז: יכול להיות שמדובר בFED).
זהו מכשיר בעל שרשור מינימלי (MTD).
תשובה לא נכונה.
זהו מכשיר עם שרשור מלא (FTD).
נכון. רק מכשירים המחולקים לשרשורים מלאים מנויים לכתובת השידור לקבוצה ff03::2. הם עושים זאת בהיקף של Mesh-Local.
באילו סוגי כתובות וניתובים משתמשים בשרשור כדי להעביר נתונים לקבוצות של צמתים ונתבים?
חד-פעמי
תשובה לא נכונה.
Anycast
תשובה לא נכונה.
מולטיקאסט
נכון.
שידור
תשובה לא נכונה.
באילו סוגי כתובות וניתובים משתמשים במכשיר עם שרשור כשה-RLOC של הנמען שאליו מתייחסת ההודעה לא ידוע?
חד-פעמי
תשובה לא נכונה.
Anycast
נכון. Anycast מאפשר למכשיר להגיע לצומת שה-RLOC שלו לא ידוע, על ידי התייחסות ל-ALOC של המכשיר.
מולטיקאסט
תשובה לא נכונה.
שידור
תשובה לא נכונה.