Comisiones en la malla

Ver el código fuente en GitHub

Comisionado y Joiner

La asignación requiere un dispositivo con el rol de Commissioner y otro con el rol de Joiner. El Commissioner es un dispositivo Thread en una red Thread existente o un dispositivo externo a la red Thread (como un teléfono celular) que realiza el rol de Commissioner. El Joiner es el dispositivo que desea unirse a la red Thread.

Se usa un Commissioner de Thread para autenticar un dispositivo en la red. No transfiere ni posee credenciales de red Thread, como la clave de red.

En esta guía, se aborda la asignación básica en la malla sin un Commissioner externo ni un router de borde. Para obtener información sobre cómo usar un Commissioner externo, consulta External Thread Commissioning.

Para ver un ejemplo de asignación con dispositivos virtuales, consulta el Codelab de simulación de OpenThread.

Habilita los roles

Para habilitar los roles de Commissioner y Joiner, usa las siguientes opciones de cmake:

Opción Descripción
-DOT_COMMISSIONER=ON Habilita el rol de Commissioner
-DOT_JOINER=ON Habilita el rol de Joiner

Por ejemplo, para compilar la plataforma de ejemplo CC2538 para usarla solo como Joiner, haz lo siguiente:

./script/build -DOT_JOINER=ON

Escribe cada objeto binario en la memoria flash del dispositivo deseado. Un dispositivo funciona como Commissioner y el otro como Joiner.

Puedes encontrar instrucciones específicas para compilar y transferir plataformas compatibles en el repositorio de OpenThread de cada plataforma. Consulta la organización de OpenThread en GitHub para encontrar el repositorio.

Crea una red

Crea una red en el dispositivo que actúa como Commissioner:

dataset init new
Done
dataset
Active Timestamp: 1
Channel: 13
Channel Mask: 07fff800
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
dataset commit active
Done
ifconfig up
Done
thread start
Done

Espera unos segundos y verifica que el dispositivo se haya convertido en un líder de Thread:

state
leader
Done

Inicia el rol de Commissioner

En ese mismo dispositivo, inicia el rol de Commissioner:

commissioner start
Done

Usa el comodín * para permitir que cualquier Joiner con la credencial de Joiner especificada se asigne a la red. La credencial de Joiner se usa (junto con el ID de PAN extendido y el nombre de red) para generar la clave precompartida para el dispositivo (PSKd). Luego, la PSKd se usa para autenticar un dispositivo durante la asignación de Thread. La credencial de Joiner debe ser única para cada dispositivo.

commissioner joiner add * J01NME
Done

Restringe a un Joiner específico

Para restringir la asignación a un dispositivo Joiner específico, usa el parámetro eui64, que es el IEEE EUI-64 asignado de fábrica del dispositivo.

En el dispositivo que funciona como Joiner, obtén el EUI-64:

eui64
2f57d222545271f1
Done

Usa ese valor en lugar del comodín * en el comando commissioner joiner en el dispositivo Commissioner:

commissioner joiner add 2f57d222545271f1 J01NME
Done

Inicia el rol de Joiner

En el dispositivo que funciona como Joiner, restablece la configuración de fábrica y, luego, habilita el rol de Joiner con la misma credencial de Joiner especificada en el Commissioner:

factoryreset
ifconfig up
Done
joiner start J01NME
Done

Espera unos segundos para confirmar:

Join success!

El dispositivo Joiner se autenticó correctamente con el Commissioner y recibió credenciales de red Thread.

Ahora inicia Thread en el dispositivo Joiner:

thread start
Done

Valida la autenticación

Verifica el estado en el dispositivo Joiner para validar que se haya unido a la red. En dos minutos, el estado pasa de secundario a router:

state
child
Done
...
state
router
Done