Hiển thị và quản lý dữ liệu mạng bằng OT CLI

Xem nguồn trên GitHub

Dữ liệu mạng luồng chứa thông tin về Bộ định tuyến biên và các máy chủ khác có sẵn trong Mạng luồng. Bộ định tuyến biên và thiết bị cung cấp dịch vụ đăng ký thông tin với Trưởng nhóm. Người lãnh đạo thu thập và sắp xếp cấu trúc thông tin này trong Dữ liệu mạng luồng và phân phối thông tin đó cho tất cả các thiết bị trong Mạng luồng.

Bộ định tuyến biên (Border Router) có thể đăng ký các tiền tố được gán cho mạng Luồng (thread) và các tiền tố mà các bộ định tuyến đó cung cấp. Các dịch vụ có thể đăng ký mọi thông tin liên quan đến chính dịch vụ đó.

Thông tin dịch vụ và bộ định tuyến biên có thể ổn định hoặc tạm thời. Dữ liệu mạng luồng ổn định được phân phối cho tất cả thiết bị, bao gồm cả Thiết bị ở giai đoạn ngủ (SED). Dữ liệu mạng tạm thời được phân phối cho tất cả các nút ngoại trừ SED.

Lệnh dữ liệu mạng

Để xem danh sách các lệnh netdata, hãy nhập help:

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

Lệnh full

Các lệnh full báo cáo trạng thái gắn cờ hoặc đặt lại theo dõi cờ xem lệnh gọi lại "đầy dữ liệu thực" đã được gọi hay chưa.

Lệnh này yêu cầu OPENTHREAD_CONFIG_BORDER_ROUTER_SIGNAL_NETWORK_DATA_FULL.

Lệnh lengthmaxlength

Lệnh length nhận độ dài hiện tại của Dữ liệu mạng luồng, được báo cáo dưới dạng số byte. Các lệnh maxlength lấy độ dài tối đa quan sát được hoặc đặt lại độ dài tối đa đã theo dõi.

Lệnh publish

Nhà xuất bản dữ liệu mạng cung cấp cơ chế để giới hạn số lượng các mục tương tự Dịch vụ và Tiền tố (Tiền tố trên lưới hoặc Tuyến đường bên ngoài) trong Dữ liệu mạng bằng cách theo dõi dữ liệu mạng và quản lý khi thêm hoặc xóa các mục nhập.

Nhà xuất bản yêu cầu OPENTHREAD_CONFIG_NETDATA_PUBLISHER_ENABLE.

Mạng biểu mẫu và định cấu hình tiền tố

  1. Tạo cấu hình mạng mới.

    dataset init new
    Done
    
  2. Hiển thị cấu hình mạng.

    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. Gửi tập dữ liệu mới đến Tập dữ liệu hoạt động đang hoạt động trong bộ nhớ không biến đổi.

    dataset commit active
    Done
    
  4. Bật giao diện Thread

    ifconfig up
    Done
    thread start
    Done
    
  5. Hiển thị các địa chỉ IPv6 được gán cho giao diện 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. Đăng ký một tiền tố IPv6 đã chỉ định cho mạng Thread.

    prefix add fd00:dead:beef:cafe::/64 paros med
    Done
    netdata register
    Done
    
  7. Hiển thị dữ liệu mạng chuỗi.

    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
    

    Tiền tố và tuyến đường bao gồm mối liên kết đối số và giá trị RLOC.

    Bản ghi dịch vụ bao gồm các giá trị otServiceConfig, bao gồm mEnterpriseNumber, mServiceData, otServerConfig::mServerDatas để biểu thị otServerConfig::mStable. RLOC cũng được thêm vào cuối bản ghi.

  8. Hiển thị độ dài hiện tại (tính bằng byte) của Dữ liệu mạng luồng của Phân vùng.

    netdata length
    23
    Done
    
  9. Hiển thị các địa chỉ IPv6 được gán cho giao diện Thread, bao gồm cả tiền tố đã thêm.

    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
    

Đính kèm vào mạng hiện có

Chỉ cần Khóa mạng để thiết bị kết nối với mạng Chuỗi.

Mặc dù không bắt buộc, nhưng việc chỉ định kênh sẽ tránh được việc phải tìm kiếm trên nhiều kênh, giúp cải thiện cả độ trễ và hiệu quả của quy trình đính kèm.

Sau khi một thiết bị đính kèm thành công vào một mạng Thread, thiết bị sẽ truy xuất Tập dữ liệu hoạt động hoàn chỉnh.

  1. Tạo Tập dữ liệu hoạt động một phần.

    dataset networkkey dfd34f0f05cad978ec4e32b0413038ff
    Done
    dataset commit active
    Done
    
  2. Bật giao diện Thread.

    ifconfig up
    Done
    thread start
    Done
    
  3. Sau khi kết nối với mạng hiện có, hãy hiển thị Dữ liệu mạng theo chuỗi.

    netdata show
    Prefixes:
    fd00:dead:beef:cafe::/64 paros med dc00
    Routes:
    Services:
    Done
    
  4. Hiển thị độ dài hiện tại (tính bằng byte) của Dữ liệu mạng luồng của Phân vùng.

    netdata length
    23
    Done
    
  5. Hiển thị các địa chỉ IPv6 được gán cho giao diện 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
    

Gỡ lỗi và chẩn đoán

Dữ liệu mạng có kích thước giới hạn là 254 byte. Nếu Bộ định tuyến biên tiếp thêm các mục (ví dụ: tiền tố, tuyến đường hoặc mục nhập dịch vụ) vào Dữ liệu mạng, thì bộ định tuyến đó có thể đầy. Khi trường hợp này xảy ra, trình hướng dẫn Border Router sẽ thêm hoặc từ chối các yêu cầu mới. Thủ lĩnh không nhất thiết báo hiệu việc từ chối cho Bộ định tuyến biên, vì vậy, Bộ định tuyến biên có thể không nhận ra ngay rằng Dữ liệu mạng đang đầy. Tuy nhiên, có một phương thức có sẵn để phát hiện khi Dữ liệu mạng đang đầy.

Phương thức phát hiện được triển khai trên cả Bộ định tuyến biên và biến định tuyến, sử dụng cơ chế API gọi lại và cho phép người dùng nhận thông báo khi Dữ liệu mạng đầy. Lệnh gọi lại có thể dùng để thực hiện hành động, chẳng hạn như xoá các tiền tố cũ hoặc các mục nhập dịch vụ. Các lệnh netdata full được sử dụng cho cờ để theo dõi xem lệnh gọi lại "full data data" đã được gọi hay chưa. Các lệnh này có thể báo cáo trạng thái của cờ hoặc đặt lại.

Đối với các trường hợp sử dụng Thread thông thường, khó có thể xảy ra trường hợp Dữ liệu mạng bị đầy, ngay cả trong trường hợp có nhiều Bộ định tuyến biên và tất cả đều đang thêm tiền tố tuyến.

Về mặt kỹ thuật, dữ liệu mạng có thể bị đầy, nhưng thường là do định cấu hình sai hoặc có sự cố trên Bộ định tuyến biên. Các lệnh netdata lengthnetdata maxlength có thể giúp gỡ lỗi đầy đủ cho Dữ liệu mạng. length lấy độ dài hiện tại của Dữ liệu mạng, được báo cáo dưới dạng byte và maxlength nhận được độ dài tối đa đã quan sát được, đồng thời cũng có thể đặt lại độ dài tối đa đã theo dõi.