Ver el código fuente en GitHub
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 newDonedatasetActive 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 Donedataset commit activeDoneifconfig upDonethread startDone
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:
factoryresetifconfig upDonejoiner start J01NMEDone
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:
statechild Done ...staterouter Done