Comisiones en la malla

Ver código fuente en GitHub

Delegada y encargada

La puesta en marcha requiere un dispositivo con la función de comisionado y un dispositivo con la función de unión. El Comisionado es un dispositivo Thread en una red Thread existente o un dispositivo externo a la red Thread (como un teléfono celular) que realiza la función de Comisión. Joiner es el dispositivo que desea unirse a la red de Thread.

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

En esta guía, se abarca la puesta en marcha básica en la malla sin un comisionado externo o un router de borde. Para aprender a usar un comisionado externo, consulta Comisionación de subprocesos externos.

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

Habilitar funciones

Para habilitar las funciones de Comisionado y Unión, use 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, para compilar la plataforma de ejemplo CC2538 a fin de usarla solo como una unión:

./script/build -DOT_JOINER=ON

Escribe en la memoria flash cada objeto binario en el dispositivo deseado. Un dispositivo funciona como el Comisionado, el otro como el Unión.

Puedes encontrar instrucciones específicas sobre cómo compilar y actualizar las 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 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 un líder de subprocesos:

state
leader
Done

Inicie el rol de comisionado

En ese mismo dispositivo, inicia la función de comisionado:

commissioner start
Done

Usa el comodín * para permitir que cualquier unión con la credencial de unión especificada se comprometa en la red. Se usa la credencial de unión (junto con el ID de PAN extendido y el nombre de la red) a fin de generar la clave compartida previamente para el dispositivo (PSKd). La PSKd se usa para autenticar un dispositivo durante la comisión de los subprocesos. La credencial de Joiner debe ser única para cada dispositivo.

commissioner joiner add * J01NME
Done

Restringir a una unión específica

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

En el dispositivo que funciona como serpiente, obtenga la EUI-64:

eui64
2f57d222545271f1
Done

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

commissioner joiner add 2f57d222545271f1 J01NME
Done

Inicia el rol de unión

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

factoryreset
ifconfig up
Done
joiner start J01NME
Done

Espera unos segundos para recibir la confirmación:

Join success!

El dispositivo de unión se autenticó correctamente con el comisionado y recibió las credenciales de la red Thread.

Ahora inicie Thread en el dispositivo de unión:

thread start
Done

Valida la autenticación

Verifique el estado en el dispositivo de unión para validar que se haya unido a la red. En dos minutos, el estado pasa del elemento secundario al router:

state
child
Done
...
state
router
Done