Comisiones en la malla

Ver código fuente en GitHub

Comisionado y carpintero

La comisión requiere un dispositivo con la función de comisionado y un dispositivo con el rol de Unión. El Comisionado es un dispositivo Thread en un una red de Thread existente o un dispositivo externo a ella (como teléfono celular) que desempeñe la función de comisionado. El Unión es el dispositivo que quieras unirte a la red Thread.

Se usa un comisionado de Thread para autenticar un dispositivo en la red. Sí no transfieran credenciales de la red de Thread, como las de la red, ni estén en posesión de ellas .

En esta guía, se abordan las comisiones básicas en malla sin un comisionado externo o router de borde. Para obtener información sobre cómo utilizar un comisionado externo, consulta la sección Recursos Puesta en servicio de subprocesos.

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

Habilitar roles

Para habilitar las funciones de comisionado y Joiner, usa las siguientes opciones de CMake:

Opción Descripción
-DOT_COMMISSIONER=ON Habilita la función de comisionado
-DOT_JOINER=ON Habilita la función de Unión

Por ejemplo, si deseas compilar la plataforma de ejemplo de 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. Uno de ellos cumple la función de Comisionado, el otro como Joiner.

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

Crea una red

Crea una red en el dispositivo que actúe como comisionado:

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 líder de subprocesos:

state
leader
Done

Comienza el rol de comisionado

En ese mismo dispositivo, inicia el rol Commissioner:

commissioner start
Done

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

commissioner joiner add * J01NME
Done

Restringir a un Unión específica

Para restringir la puesta en marcha a un dispositivo de Joiner específico, usa eui64 que es el valor de IEEE EUI-64 asignado de fábrica del dispositivo.

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

eui64
2f57d222545271f1
Done

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

commissioner joiner add 2f57d222545271f1 J01NME
Done

Iniciar el rol de Unión

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

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 recibiste credenciales de Thread Network.

Ahora, inicia Thread en el dispositivo Joiner:

thread start
Done

Valida la autenticación

Comprueba el estado en el dispositivo Joiner para validar que se haya unido al en cada red. En un plazo de dos minutos, el estado pasa del elemento secundario al router:

state
child
Done
...
state
router
Done