Cómo crear una red de Thread

Ver código fuente en GitHub

Forma una red Thread y prueba su conectividad a Internet.

Inicia una sesión de "ot-ctl".

ot-ctl expone los comandos de la CLI de OpenThread. Consulta la guía de la CLI de OpenThread para obtener más detalles.

Si usas Docker, inicia una sesión de ot-ctl de la siguiente manera:

docker exec -it otbr ot-ctl

Si usas un host nativo, inicia una sesión de ot-ctl de la siguiente manera:

sudo ot-ctl

Cómo crear una red de Thread

  1. Genera una nueva configuración de red.

    dataset init new
    Done
    
  2. Consulta la nueva configuración de red.

    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. Confirma el conjunto de datos nuevo en el conjunto de datos operativos activos en el almacenamiento no volátil.

    dataset commit active
    Done
    
  4. Habilita la interfaz de Thread.

    ifconfig up
    Done
    thread start
    Done
    
  5. En la consola del host de Linux (no dentro de una sesión de ot-ctl), usa ifconfig para ver la nueva interfaz de red de Thread:

    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
    

Cómo mostrar un segundo nodo de Thread

Con el OTBR en funcionamiento, agrega un nodo Thread independiente a la red de Thread y prueba que tenga conectividad a Internet.

Consulta el codelab Cómo compilar una red Thread con placas nRF52840 y OpenThread para obtener instrucciones detalladas sobre cómo compilar y actualizar la plataforma nRF52840 de Nordic.

  1. Después de compilar y escribir en la memoria flash, usa screen en una ventana de terminal nueva para acceder a la CLI. Por ejemplo, si el dispositivo está activado en el puerto /dev/ttyACM1, haz lo siguiente:

    screen /dev/ttyACM1 115200
    

  2. Presiona la tecla Intro para abrir el mensaje de la CLI de > OpenThread.

Cómo unir el segundo nodo a la red Thread

Con la CLI de OpenThread para tu segundo nodo Thread, únete al nodo a la red de Thread que creó OTBR.

  1. Actualiza las credenciales de red de Thread del nodo con los valores mínimos requeridos de OTBR:

    dataset networkkey f366cec7a446bab978d90d27abe38f23
    Done
    dataset commit active
    Done
    

  2. Abre la interfaz de Thread y comienza a usarla:

    ifconfig up
    Done
    thread start
    Done
    

  3. El nodo debería unirse a la red Thread de OTBR automáticamente. En dos minutos, su estado debería ser router:

    state
    router
    

Cómo hacer ping a una dirección pública

En este punto, deberías poder hacer ping a una dirección IPv4 pública desde el nodo de Thread independiente. Dado que Thread solo usa IPv6, la dirección IPv4 pública se convertirá automáticamente a IPv6 combinándose con el prefijo NAT64 en la red de Thread.

  1. Para ver el prefijo NAT64 en la red Thread, haz lo siguiente:

    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 - - -
    
    Aquí, fd3e:d39b:d91:2:0:0::/96 es el prefijo NAT64 en la red Thread.

  2. Haz ping a una dirección IPv4 desde la CLI del nodo Thread independiente para probar su conectividad a Internet:

    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
    

¡Listo! El segundo nodo Thread ahora puede comunicarse con Internet a través de OTBR.