הצגה וניהול של מערכי נתונים עם OT CLI

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

הפרמטרים להגדרה של רשת Thread מנוהלים באמצעות אובייקטים פעילים של מערך נתונים תפעולי ואובייקטים בהמתנה. ה-CLI OT כולל פקודות לקבלת מערכי נתונים של מערכי נתונים פעילים ובהמתנה להגדרה.

אזהרה – הגבלות לשימוש בסביבת ייצור!

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

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

ברשתות של Thread בסביבת ייצור, השיטה הנכונה לכתוב או לשנות מערכי נתונים תפעוליים היא באמצעות נציב (Commissioner) שמבצע עמלה. אסור לשנות בשום צורה את מערכי הנתונים התפעוליים במכשירי ייצור שהם לא Commiter פעיל, והם חלק מרשת של Thread.

מערך נתונים תפעולי פעיל

מערך הנתונים התפעולי הפעיל כולל פרמטרים שנמצאים כרגע בשימוש ברשת Thread שלמה. מערך הנתונים התפעולי הפעיל מכיל:

  • חותמת זמן פעילה
  • ערוץ
  • מסכת ערוץ
  • מזהה PAN מורחב
  • קידומת רשת-מקומית
  • שם הרשת
  • מזהה PAN
  • PSKc
  • מדיניות האבטחה

כדי להגדיר בקלות מכשיר כך שיהיה חלק מלא ברשת ה-Thread, תוכלו להשתמש בפקודה dataset active -x כדי לקבל TLV בקידוד הקסדצימלי, ובפקודה מערך נתונים פעיל כדי להגדיר את מערך הנתונים במכשיר חדש.

במכשיר קיים, מחפשים את רכיב ה-TLV בקידוד הקסדצימלי:

dataset active -x
0e080000000000010000000300001035060004001fffe00208e227ac6a7f24052f0708fdb753eb517cb4d3051062b2442a928d9ea3b947a1618fc4085a030f4f70656e5468726561642d393837330102987304105330d857354330133c05e1fd7ae81a910c0402a0f7f8
Done

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

dataset set active 0e080000000000010000000300001035060004001fffe00208e227ac6a7f24052f0708fdb753eb517cb4d3051062b2442a928d9ea3b947a1618fc4085a030f4f70656e5468726561642d393837330102987304105330d857354330133c05e1fd7ae81a910c0402a0f7f8
Done

מערך נתונים תפעולי בהמתנה

מערך הנתונים התפעולי בהמתנה משמש להעברת שינויים במערך הנתונים התפעולי הפעיל לפני שהם נכנסים לתוקף. מערך הנתונים Pending Operationsal Dataset מכיל את כל הפרמטרים ממערך הנתונים התפעולי הפעיל, בנוסף לפרמטרים הבאים:

  • השהיית טיימר
  • חותמת זמן של המתנה

תחילת העבודה

כדי לנהל מערכי נתונים משורת הפקודה, צריך להשלים את הסימולציה של Codelab באמצעות Docker ולעיין ב-CLI Command Reference.

כניסה לדף Simulation Codelab

כניסה למאמר בנושא פקודות ב-CLI

כדי להציג את רשימת הפקודות של dataset, מקלידים help:

dataset help
help
active
activetimestamp
channel
channelmask
clear
commit
delay
extpanid
init
meshlocalprefix
mgmtgetcommand
mgmtsetcommand
networkkey
networkname
panid
pending
pendingtimestamp
pskc
securitypolicy
Done

מיפויים של ארגומנטים

מדיניות האבטחה

פקודות של מדיניות האבטחה משתמשות במיפויי ארגומנטים כדי לקבל ולהגדיר חברים ב-otSecurityPolicy. לדוגמה, dataset active:

dataset active
Active Timestamp: 1
Channel: 13
Channel Mask: 0x07fff800
Ext PAN ID: d63e8e3e495ebbc3
Mesh Local Prefix: fd3d:b50b:f96d:722d::/64
Network Key: dfd34f0f05cad978ec4e32b0413038ff
Network Name: OpenThread-8f28
PAN ID: 0x8f28
PSKc: c23a76e98f1a6483639b1ac1271e2e27
Security Policy: 0, onrcb
Done

בדוגמה הזו, Security Policy: 0 מציין mRotationTime.

הנה רשימה של כל הארגומנטים של ה-CLI של מדיניות האבטחה והחבר otSecurityPolicy המתאים לכל ארגומנט:

גם בפקודות get ו-set של dataset securitypolicy נעשה שימוש באותם מיפויי ארגומנטים, לדוגמה, הגדרת securitypolicy והעברת o, n, r ו-c:

dataset securitypolicy 672 onrc
Done

רכיבי מערך הנתונים ופקודות mgmt

יחד עם פרמטרים אחרים, mgmtgetcommand ו-mgmtsetcommand למערכי נתונים פעילים ובהמתנה מאפשרים לקבל ולהגדיר כל שילוב של otOperationalDatasetComponents:

  • activetimestamp
  • pendingtimestamp
  • networkkey
  • networkname
  • extpanid
  • localprefix
  • delaytimer
  • panid
  • channel
  • securitypolicy

עבור המאפיין mgmtgetcommand, אפשר לציין את הרכיבים האלה בכל סדר שתרצו לקבל את הערכים התואמים. לחלופין, אפשר גם להעביר את -x כדי להשתמש במחרוזת הקסדצימלית שמטופלת כייצוג של רצף בייטים של TLV. אלה יכולים להיות ספקי TLV ספציפיים לספק, שאולי תרצו להוסיף בנוסף לפרמטרים אחרים.

mgmtgetcommand מאפשר גם לציין את כתובת ה-IPv6 של ה-Leader. אחרת, נעשה שימוש ב-ALOC המוביל.

dataset mgmtgetcommand {active|pending} [address leader-address] [dataset-components] [-x tlv-list]

לדוגמה, כדי לקבל activetimestamp ו-securitypolicy, משתמשים בארגומנטים הבאים:

dataset mgmtgetcommand active address fdde:ad00:beef:0:558:f56b:d688:799 activetimestamp securitypolicy
Done

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

dataset mgmtgetcommand {active|pending} [dataset-components] [-x tlv-list]

כדי להגדיר את activetimestamp ואת securitypolicy, משתמשים בארגומנטים הבאים:

dataset mgmtsetcommand active activetimestamp 123 securitypolicy 1 onrc
Done