הצגה וניהול של נתוני רשת באמצעות OT CLI

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

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

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

נתב הגבולות ופרטי השירות יכולים להיות יציבים או זמניים. נתוני הרשת היציבים של הפרוטוקול מופצים לכל המכשירים, כולל מכשירי Sleepy End Ends (SEDY). נתוני רשת זמניים מופצים לכל הצמתים מלבד SED.

פקודות של נתוני רשת

כדי לקבל רשימה של פקודות netdata, יש להקליד help:

netdata help
help
full
length
maxlength
publish
register
show
steeringdata
unpublish
Done

full פקודות

הפקודות full מדווחות על סטטוס הדגל או מחזירות את המעקב אחר הסימון אם הקריאה החוזרת "נתונים מלאים נטו" הופעלה.

הפקודה הזו מחייבת OpenTHREAD_CONFIG_BORDER_ROUTER_SIGNAL_NETWORK_DATA_FULL.

הפקודות length ו-maxlength

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

publish פקודות

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

בעל התוכן הדיגיטלי דורש OPENTHREAD_CONFIG_NETDATA_PUBLISHER_ENABLE.

יצירת רשת והגדרת קידומת

  1. יצירת הגדרת רשת חדשה.

    dataset init new
    Done
    
  2. הצגה של תצורת הרשת.

    dataset
    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
    
  3. שומרים את מערך הנתונים החדש על מערך הנתונים התפעולי הפעיל בתנודתיות.

    dataset commit active
    Done
    
  4. הפעלת הממשק של Thread

    ifconfig up
    Done
    thread start
    Done
    
  5. הצגת כתובות IPv6 שהוקצו לממשק Thread.

    ipaddr
    fd3d:b50b:f96d:722d:0:ff:fe00:fc00
    fd3d:b50b:f96d:722d:0:ff:fe00:dc00
    fd3d:b50b:f96d:722d:393c:462d:e8d2:db32
    fe80:0:0:0:a40b:197f:593d:ca61
    Done
    
  6. רישום קידומת IPv6 שהוקצהת לרשת ה-Thread.

    prefix add fd00:dead:beef:cafe::/64 paros med
    Done
    netdata register
    Done
    
  7. הצגת נתוני הרשת של Thread.

    netdata show
    Prefixes:
    fd00:dead:beef:cafe::/64 paros med dc00
    Routes:
    fd49:7770:7fc5:0::/64 s med 4000
    Services:
    44970 5d c000 s 4000
    44970 01 9a04b000000e10 s 4000
    Done
    

    הקידומות והמסלולים כוללים מיפויי ארגומנטים והערך RLOC.

    רשומות השירות כוללות ערכי otServiceConfig, כולל mEnterpriseNumber, mServiceData, otServerConfig::mServerData ו-s כדי לציין otServerConfig::mStable. ה-RLOC מצורף גם לסוף הרשומה.

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

    netdata length
    23
    Done
    
  9. הצגת כתובות IPv6 שהוקצו לממשק Thread, כולל הקידומת שנוספה.

    ipaddr
    fd00:dead:beef:cafe:4da8:5234:4aa2:4cfa
    fd3d:b50b:f96d:722d:0:ff:fe00:fc00
    fd3d:b50b:f96d:722d:0:ff:fe00:dc00
    fd3d:b50b:f96d:722d:393c:462d:e8d2:db32
    fe80:0:0:0:a40b:197f:593d:ca61
    Done
    

צירוף לרשת קיימת

רק מפתח הרשת נדרש כדי לחבר מכשיר לרשת Thread.

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

אחרי שהמכשיר מחובר לרשת Thread, המכשיר מאחזר את מערך הנתונים התפעולי השלם המלא.

  1. יצירת קבוצת נתונים תפעולית חלקית פעילה.

    dataset networkkey dfd34f0f05cad978ec4e32b0413038ff
    Done
    dataset commit active
    Done
    
  2. הפעלת הממשק של Thread.

    ifconfig up
    Done
    thread start
    Done
    
  3. לאחר החיבור לרשת הקיימת, יש להציג את נתוני Thread Network.

    netdata show
    Prefixes:
    fd00:dead:beef:cafe::/64 paros med dc00
    Routes:
    Services:
    Done
    
  4. הצגת האורך הנוכחי, במספר הבייטים, של נתוני הרשת של החלוקה למחיצות.

    netdata length
    23
    Done
    
  5. הצגת כתובות IPv6 שהוקצו לממשק Thread.

    ipaddr
    fd00:dead:beef:cafe:4da8:5234:4aa2:4cfa
    fd3d:b50b:f96d:722d:0:ff:fe00:fc00
    fd3d:b50b:f96d:722d:0:ff:fe00:dc00
    fd3d:b50b:f96d:722d:393c:462d:e8d2:db32
    fe80:0:0:0:a40b:197f:593d:ca61
    Done
    

ניפוי באגים ואבחון

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

שיטת הזיהוי שמוטמעת גם ב-Border Routs וגם במנהיגים מבוססת על מנגנון ה-API של הקריאה החוזרת (callback) ומאפשרת למשתמשים לקבל הודעה כשנתוני הרשת מלאים. אפשר להשתמש בקריאה החוזרת כדי לבצע פעולה, כמו הסרת תחיליות לא עדכניות או רשומות שירות. הפקודות netdata full משמשות לסימון שמסמן אם הופעלה הקריאה החוזרת "נתונים מלאים". הפקודות האלה יכולות לדווח על סטטוס הדגל או לאפס אותו.

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

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