양식 스레드 네트워크

GitHub에서 소스 보기

Thread 네트워크를 형성하고 인터넷 연결을 테스트합니다.

`ot-ctl` 세션 시작

ot-ctl는 OpenThread CLI 명령어를 노출합니다. 자세한 내용은 OpenThread CLI 가이드를 참고하세요.

Docker를 사용하는 경우 다음과 같이 ot-ctl 세션을 시작합니다.

docker exec -it otbr ot-ctl

네이티브 호스트를 사용하는 경우 다음과 같이 ot-ctl 세션을 시작합니다.

sudo ot-ctl

스레드 네트워크 형성

  1. 새 네트워크 구성을 생성합니다.

    dataset init new
    Done
    
  2. 새 네트워크 구성을 확인합니다.

    dataset
    Active Timestamp: 1
    Channel: 15
    Wake-up Channel: 16
    Channel Mask: 0x07fff800
    Ext PAN ID: 39758ec8144b07fb
    Mesh Local Prefix: fdf1:f1ad:d079:7dc0::/64
    Network Key: f366cec7a446bab978d90d27abe38f23
    Network Name: OpenThread-5938
    PAN ID: 0x5938
    PSKc: 3ca67c969efb0d0c74a4d8ee923b576c
    Security Policy: 672 onrc 0
    Done
    
  3. 비휘발성 저장소의 활성 운영 데이터 세트에 새 데이터 세트를 커밋합니다.

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

    ifconfig up
    Done
    thread start
    Done
    
  5. ot-ctl 세션이 아닌 Linux 호스트 콘솔에서 ifconfig를 사용하여 새 스레드 네트워크 인터페이스를 봅니다.

    ifconfig wpan0
    wpan0: flags=4305  mtu 1280
            inet6 fe80::3c98:89e8:ddec:bda7  prefixlen 64  scopeid 0x20
            inet6 fd4d:b3e5:9738:3193:0:ff:fe00:fc00  prefixlen 64  scopeid 0x0
            inet6 fd4d:b3e5:9738:3193:0:ff:fe00:f800  prefixlen 64  scopeid 0x0
            inet6 fd4d:b3e5:9738:3193:39c4:ee02:ca9e:2b1d  prefixlen 64  scopeid 0x0
            unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 500  (UNSPEC)
            RX packets 16  bytes 1947 (1.9 KiB)
            RX errors 0  dropped 3  overruns 0  frame 0
            TX packets 7  bytes 1152 (1.1 KiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    

두 번째 스레드 노드 표시

OTBR이 작동하는 상태에서 스레드 네트워크에 독립형 스레드 노드를 추가하고 인터넷에 연결되어 있는지 테스트합니다.

Nordic nRF52840 플랫폼 빌드 및 플래싱에 관한 자세한 안내는 nRF52840 보드 및 OpenThread Codelab으로 Thread 네트워크 빌드를 참고하세요.

  1. 빌드 및 플래시 후 새 터미널 창에서 screen를 사용하여 CLI에 액세스합니다. 예를 들어 기기가 /dev/ttyACM1 포트에 장착된 경우 다음과 같이 표시됩니다.

    screen /dev/ttyACM1 115200
    

  2. Enter 키를 눌러 > OpenThread CLI 프롬프트를 표시합니다.

두 번째 노드를 스레드 네트워크에 조인

두 번째 Thread 노드에 OpenThread CLI를 사용하여 노드를 OTBR에서 만든 Thread 네트워크에 조인합니다.

  1. OTBR의 최소 필수 값을 사용하여 노드의 Thread 네트워크 사용자 인증 정보를 업데이트합니다.

    dataset networkkey f366cec7a446bab978d90d27abe38f23
    Done
    dataset commit active
    Done
    

  2. Thread 인터페이스를 표시하고 Thread를 시작합니다.

    ifconfig up
    Done
    thread start
    Done
    

  3. 노드가 OTBR 스레드 네트워크에 자동으로 조인됩니다. 2분 이내에 상태가 router가 됩니다.

    state
    router
    

공개 주소 핑

이 시점에서 독립형 스레드 노드에서 공개 IPv4 주소를 핑할 수 있습니다. Thread는 IPv6만 사용하므로 공개 IPv4 주소는 Thread 네트워크의 NAT64 접두사와 결합하여 자동으로 IPv6로 변환됩니다.

  1. Thread 네트워크에서 NAT64 접두사를 보려면 다음 단계를 따르세요.

    netdata show
    Prefixes:
    fd3e:d39b:d91:1::/64 paros low 1800
    Routes:
    ::/0 s med 1800
    fd3e:d39b:d91:2:0:0::/96 sn low 1800
    Services:
    Contexts:
    fd3e:d39b:d91:1::/64 1 c
    Commissioning:
    12156 - - -
    
    여기서 fd3e:d39b:d91:2:0:0::/96는 스레드 네트워크의 NAT64 접두사입니다.

  2. 독립형 스레드 노드의 CLI에서 IPv4 주소를 핑하여 인터넷 연결을 테스트합니다.

    ping 8.8.8.8
    Pinging synthesized IPv6 address: fd3e:d39b:d91:2:0:0:808:808
    16 bytes from fd3e:d39b:d91:2:0:0:808:808: icmp_seq=1 hlim=113 time=73ms
    1 packets transmitted, 1 packets received. Packet loss = 0.0%. Round-trip min/avg/max = 73/73.0/73 ms.
    Done
    

완료되었습니다. 이제 두 번째 Thread 노드는 OTBR을 통해 인터넷과 통신할 수 있습니다.