نمایش و مدیریت داده های شبکه با OT CLI

مشاهده منبع در GitHub

Thread Network Data حاوی اطلاعاتی درباره Border Routers و سایر سرورهای موجود در شبکه Thread است. مسیریاب‌های مرزی و دستگاه‌های ارائه‌دهنده خدمات، اطلاعات خود را در لیدر ثبت می‌کنند. Leader این اطلاعات را در داده‌های شبکه Thread جمع‌آوری و ساختار می‌دهد و اطلاعات را در تمام دستگاه‌های شبکه Thread توزیع می‌کند.

مسیریاب های مرزی ممکن است پیشوندهای اختصاص داده شده به شبکه Thread و پیشوندهایی را که مسیرهایی را برای آنها ارائه می دهند، ثبت کنند. خدمات ممکن است هر گونه اطلاعات مربوط به خود سرویس را ثبت کند.

اطلاعات سرویس و روتر مرزی می تواند پایدار یا موقت باشد. داده های شبکه Thread پایدار در همه دستگاه ها، از جمله دستگاه های Sleepy End Devices (SED) توزیع می شود. داده های موقت شبکه به همه گره ها به جز 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 Network Data را که به صورت تعداد بایت گزارش می شود را دریافت می کند. دستورات 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. نمایش داده های شبکه موضوعی

    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 Data را نمایش دهید.

    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 بایت است. اگر مسیریاب‌های مرزی مدخل‌هایی (مثلاً پیشوندها، مسیرها یا ورودی‌های سرویس) را به داده‌های شبکه اضافه کنند، می‌تواند پر شود. هنگامی که این اتفاق می افتد، درخواست های جدید از یک مسیریاب مرزی برای افزودن موارد جدید توسط رهبر رد یا نادیده گرفته می شود. رهبر لزوماً رد شدن را به مسیریاب مرزی نشان نمی دهد، بنابراین مسیریاب مرزی ممکن است بلافاصله متوجه نشود که داده های شبکه در حال پر شدن است. با این حال، روشی برای تشخیص پر شدن داده های شبکه وجود دارد.

روش تشخیص، که هم در مسیریاب‌های مرزی و هم بر روی لیدر پیاده‌سازی شده است، از مکانیزم Callback API استفاده می‌کند و به کاربران این امکان را می‌دهد که در صورت پر شدن داده‌های شبکه مطلع شوند. پاسخ تماس را می توان برای انجام اقداماتی مانند حذف پیشوندهای قدیمی یا ورودی های سرویس استفاده کرد. دستورات netdata full برای پرچمی استفاده می‌شود که ردیابی می‌کند که آیا فراخوانی "net data full" فراخوانی شده است یا خیر. این دستورات می توانند وضعیت پرچم را گزارش کنند یا آن را بازنشانی کنند.

برای موارد استفاده معمول از Thread، بعید است که داده های شبکه کامل شوند، حتی در سناریویی که تعداد زیادی روتر مرزی وجود دارد و همه آنها پیشوندهای مسیر را اضافه می کنند.

از نظر فنی امکان پر شدن داده های شبکه وجود دارد، اما این اغلب به دلیل پیکربندی نادرست یا مشکل در مسیریاب مرزی است. دستورات netdata length و netdata maxlength می توانند به رفع اشکال کامل خطاهای Network Data کمک کنند. length طول فعلی داده های شبکه را دریافت می کند که به صورت بایت گزارش می شود و maxlength طول حداکثر طول مشاهده شده را دریافت می کند و همچنین می تواند حداکثر طول ردیابی شده را بازنشانی کند.

،

مشاهده منبع در GitHub

Thread Network Data حاوی اطلاعاتی درباره Border Routers و سایر سرورهای موجود در شبکه Thread است. مسیریاب‌های مرزی و دستگاه‌های ارائه‌دهنده خدمات، اطلاعات خود را در لیدر ثبت می‌کنند. Leader این اطلاعات را در داده‌های شبکه Thread جمع‌آوری و ساختار می‌دهد و اطلاعات را در تمام دستگاه‌های شبکه Thread توزیع می‌کند.

مسیریاب های مرزی ممکن است پیشوندهای اختصاص داده شده به شبکه Thread و پیشوندهایی را که مسیرهایی را برای آنها ارائه می دهند، ثبت کنند. خدمات ممکن است هر گونه اطلاعات مربوط به خود سرویس را ثبت کند.

اطلاعات سرویس و روتر مرزی می تواند پایدار یا موقت باشد. داده های شبکه Thread پایدار در همه دستگاه ها، از جمله دستگاه های Sleepy End Devices (SED) توزیع می شود. داده های موقت شبکه به همه گره ها به جز 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 Network Data را که به صورت تعداد بایت گزارش می شود را دریافت می کند. دستورات 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. نمایش داده های شبکه موضوعی

    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 Data را نمایش دهید.

    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 بایت است. اگر مسیریاب‌های مرزی مدخل‌هایی (مثلاً پیشوندها، مسیرها یا ورودی‌های سرویس) را به داده‌های شبکه اضافه کنند، می‌تواند پر شود. هنگامی که این اتفاق می افتد، درخواست های جدید از یک مسیریاب مرزی برای افزودن موارد جدید توسط رهبر رد یا نادیده گرفته می شود. رهبر لزوماً رد شدن را به مسیریاب مرزی نشان نمی دهد، بنابراین مسیریاب مرزی ممکن است بلافاصله متوجه نشود که داده های شبکه در حال پر شدن است. با این حال، روشی برای تشخیص پر شدن داده های شبکه وجود دارد.

روش تشخیص، که هم در مسیریاب‌های مرزی و هم بر روی لیدر پیاده‌سازی شده است، از مکانیزم Callback API استفاده می‌کند و به کاربران این امکان را می‌دهد که در صورت پر شدن داده‌های شبکه مطلع شوند. پاسخ تماس را می توان برای انجام اقداماتی مانند حذف پیشوندهای قدیمی یا ورودی های سرویس استفاده کرد. دستورات netdata full برای پرچمی استفاده می‌شود که ردیابی می‌کند که آیا فراخوانی "net data full" فراخوانی شده است یا خیر. این دستورات می توانند وضعیت پرچم را گزارش کنند یا آن را بازنشانی کنند.

برای موارد استفاده معمول از Thread، بعید است که داده های شبکه کامل شوند، حتی در سناریویی که تعداد زیادی روتر مرزی وجود دارد و همه آنها پیشوندهای مسیر را اضافه می کنند.

از نظر فنی امکان پر شدن داده های شبکه وجود دارد، اما این اغلب به دلیل پیکربندی نادرست یا مشکل در مسیریاب مرزی است. دستورات netdata length و netdata maxlength می توانند به رفع اشکال کامل خطاهای Network Data کمک کنند. length طول فعلی داده های شبکه را دریافت می کند که به صورت بایت گزارش می شود و maxlength طول حداکثر طول مشاهده شده را دریافت می کند و همچنین می تواند حداکثر طول ردیابی شده را بازنشانی کند.