OT CLI로 네트워크 데이터 표시 및 관리

GitHub에서 소스 보기

스레드 네트워크 데이터에는 스레드 라우터에서 사용할 수 있는 보더 라우터와 기타 서버에 관한 정보가 포함됩니다. 보더 라우터와 서비스를 제공하는 기기는 리더에 정보를 등록합니다. 리더는 스레드 네트워크 데이터 내에서 이 정보를 수집하고 구조화하여 스레드 네트워크의 모든 기기에 정보를 배포합니다.

경계 라우터는 스레드 네트워크에 할당된 프리픽스와 경로를 제공하는 프리픽스를 등록할 수 있습니다. 서비스는 서비스 자체와 관련된 모든 정보를 등록할 수 있습니다.

보더 라우터와 서비스 정보는 안정적이거나 일시적일 수 있습니다. 안정적인 스레드 네트워크 데이터는 Sleeped End Devices (SED)를 비롯한 모든 기기에 배포됩니다. 임시 네트워크 데이터는 SED를 제외한 모든 노드에 분산됩니다.

네트워크 데이터 명령어

netdata 명령어 목록을 보려면 help를 입력합니다.

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

full 명령어

full 명령어는 플래그 상태를 보고하거나 'net data full' 콜백이 호출되었는지를 추적하는 플래그의 리스팅을 처리합니다.

이 명령어에는 OPENSpanner_CONFIG_BORDER_ROUTER_SIGNAL_NETWORK_DATA_FULL이 필요합니다.

lengthmaxlength 명령어

length 명령어는 스레드 네트워크 데이터의 현재 길이를 가져와 바이트 수로 보고합니다. maxlength 명령어는 관찰된 최대 길이를 가져오거나 추적된 최대 길이를 재설정합니다.

publish 명령어

네트워크 데이터 게시자는 네트워크 데이터를 모니터링하고 항목을 추가 또는 삭제할 시점을 관리하여 스레드 네트워크 데이터에서 유사한 서비스 및 접두어 (On-Mesh 접두사 또는 외부 경로) 항목의 수를 제한하는 메커니즘을 제공합니다.

게시자에게는 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. 스레드 인터페이스 사용 설정

    ifconfig up
    Done
    thread start
    Done
    
  5. 스레드 인터페이스에 할당된 IPv6 주소를 표시합니다.

    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 프리픽스를 등록합니다.

    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 값이 포함됩니다.

    서비스 레코드에는 otServerConfig::mStable를 나타내는 mEnterpriseNumber, mServiceData, otServerConfig::mServerData, s를 비롯한 otServiceConfig 값이 포함됩니다. RLOC도 레코드 끝에 추가됩니다.

  8. Partition의 Thread Network 데이터의 현재 길이를 바이트 수로 표시합니다.

    netdata length
    23
    Done
    
  9. 추가된 프리픽스를 포함하여 스레드 인터페이스에 할당된 IPv6 주소를 표시합니다.

    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
    

기존 네트워크에 연결

스레드 네트워크에 기기를 연결하려면 네트워크 키만 있으면 됩니다.

필수 사항은 아니지만 채널을 지정하면 여러 채널에서 검색할 필요가 없으므로 연결 프로세스의 지연 시간과 효율성이 모두 향상됩니다.

기기가 성공적으로 스레드 네트워크에 연결되면 전체 활성 작업 데이터 세트를 가져옵니다.

  1. 부분 운영 운영 데이터 세트를 만듭니다.

    dataset networkkey dfd34f0f05cad978ec4e32b0413038ff
    Done
    dataset commit active
    Done
    
  2. 스레드 인터페이스를 사용 설정합니다.

    ifconfig up
    Done
    thread start
    Done
    
  3. 기존 네트워크에 연결한 후 스레드 네트워크 데이터를 표시합니다.

    netdata show
    Prefixes:
    fd00:dead:beef:cafe::/64 paros med dc00
    Routes:
    Services:
    Done
    
  4. Partition의 Thread Network 데이터의 현재 길이를 바이트 수로 표시합니다.

    netdata length
    23
    Done
    
  5. 스레드 인터페이스에 할당된 IPv6 주소를 표시합니다.

    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바이트로 제한됩니다. 보더 라우터가 계속 네트워크 데이터에 항목 (예: 프리픽스, 경로 또는 서비스 항목)을 추가하면 가득 찰 수 있습니다. 이 경우 보더 라우터에서 새 항목 추가를 요청하는 새 요청이 거부되거나 무시됩니다. 리더가 거부를 경계 라우터에 알릴 필요는 없으므로, 보더 라우터는 네트워크 데이터가 가득 찼다는 것을 즉시 인식하지 못할 수 있습니다. 그러나 네트워크 데이터가 가득 찼을 때 이를 감지하는 메서드가 있습니다.

보더 라우터와 리더 모두에 구현된 감지 메서드는 콜백 API 메커니즘을 사용하며 네트워크 데이터가 가득 찼을 때 사용자에게 알림을 보낼 수 있습니다. 콜백은 비활성 프리픽스 또는 서비스 항목 삭제와 같은 작업을 하는 데 사용할 수 있습니다. netdata full 명령어는 'net data full' 콜백이 호출되었는지 추적하는 플래그에 사용됩니다. 이러한 명령어는 플래그 상태를 보고하거나 재설정할 수 있습니다.

일반적인 스레드 사용 사례에서는 보더 라우터가 많고 모두 경로 프리픽스를 추가하는 경우에도 네트워크 데이터가 가득 찰 가능성이 낮습니다.

기술적으로는 네트워크 데이터가 가득 차는 경우가 있지만, 이는 주로 잘못된 구성 또는 Border Router의 문제로 인해 발생합니다. netdata lengthnetdata maxlength 명령어는 네트워크 데이터의 전체 오류를 디버그하는 데 도움이 될 수 있습니다. length는 네트워크 데이터의 현재 길이를 바이트로 보고하고 maxlength는 관찰된 최대 길이를 가져오며 추적된 최대 길이를 재설정할 수도 있습니다.