Configura la conectividad del cliente del servidor del Protocolo de registro de servicio (SRP) con OT CLI

Ver el código fuente en GitHub

OpenThread ofrece funcionalidad de cliente y de servidor de SRP, lo que permite que los dispositivos registren servicios basados en DNS mediante la actualización de DNS estándar enviada como paquetes unicast. Esta funcionalidad habilita el descubrimiento de servicios basados en DNS.

En esta guía, se proporcionan tareas básicas en las que se usan algunos de los comandos srp server y srp client más comunes.

Comandos del servidor de SRP

Para obtener una lista de comandos srp server, escribe help:

srp server help
addrmode
auto
disable
domain
enable
help
host
lease
seqnum
service
state
Done

Comandos del cliente de SRP

Para obtener una lista de comandos srp client, escribe help:

srp client help
autostart
callback
help
host
keyleaseinterval
leaseinterval
service
start
state
stop
ttl
Done

Referencia de comandos de la CLI

Para conocer las descripciones y la sintaxis de todos los comandos, consulta la Referencia de comandos de la CLI. Los comandos del servidor de SRP comienzan en orden alfabético con srp server (enable,disable). Los comandos del cliente de SRP comienzan en orden alfabético con srp client autostart (get).

Codelab del router de borde de Thread

En el codelab del router de borde de OpenThread, se incluye información para configurar el dispositivo final del cliente de SRP.

Descripciones generales de algunos comandos de SRP básicos

Los comandos del servidor y del cliente de SRP se pueden usar en secuencia para realizar tareas típicas de SRP:

  1. Inicia el servidor de SRP.

    srp server enable habilita el servidor de SRP una vez que creaste la red de Thread.

  2. Inicia el cliente de SRP.

    • srp client host name establece el nombre de host que usará el cliente.

    • srp client host address (set) habilita el modo de dirección de cliente de host automático o establece de forma explícita la lista de direcciones de cliente host.

    • srp client service add agrega un servicio con un nombre de instancia, un nombre de servicio y un número de puerto determinados.

    • srp client autostart enable habilita el modo de inicio automático. También puedes iniciar el cliente de forma manual si ejecutas srp client start.

  3. Verifica el estado del servicio.

    • srp client host y srp client service proporcionan el estado sobre si el host y el servicio del cliente se registraron de forma correcta en el nodo cliente.

    • srp server host y srp server service proporcionan el estado del host y del servicio en el nodo del servidor.

  4. Quita el servicio.

    srp client service remove quita un servicio, pero conserva su nombre.

  5. Quita los nombres de host y de servicio.

    srp client host remove quita el host y todos los servicios registrados.

Ejemplos de uso de comandos del cliente y el servidor de SRP

En estos ejemplos, se usan comandos básicos de la CLI para configurar una red de Thread, iniciar el servidor y el cliente de SRP, verificar el estado del servidor y quitar un servicio. Los datos de muestra se utilizan con fines ilustrativos.

Inicia el servidor de SRP

  1. Inicia el nodo del servidor de SRP:

    ./output/simulation/bin/ot-cli-ftd 1
    
  2. Configura una red Thread y, luego, habilita el servidor de SRP ejecutando el comando srp server enable:

    dataset init new
    Done
    dataset
    Active Timestamp: 1
    Channel: 22
    Channel Mask: 0x07fff800
    Ext PAN ID: 8d6ed7a05a28fb3b
    Mesh Local Prefix: fded:5114:8263:1fe1::/64
    Network Key: 7fcbae4153cc2955c28440c15d4d4219
    Network Name: OpenThread-f7af
    PAN ID: 0xf7af
    PSKc: b658e40f174e3a11be149b302ef07a0f
    Security Policy: 672, onrc
    Done
    dataset commit active
    Done
    ifconfig up
    Done
    thread start
    Done
    state
    leader
    Done
    ipaddr
    fded:5114:8263:1fe1:0:ff:fe00:fc00
    fded:5114:8263:1fe1:0:ff:fe00:c000
    fded:5114:8263:1fe1:68bc:ec03:c1ad:9325
    fe80:0:0:0:a8cd:6e23:df3d:4193
    Done
    srp server enable
    Done
    

Inicia el cliente de SRP

  1. Inicia el nodo cliente de SRP:

    ./output/simulation/bin/ot-cli-ftd 2
    
  2. Únete a la red de Thread, configura el nombre de host del cliente y la dirección, y registra un servicio:

    dataset networkkey 7fcbae4153cc2955c28440c15d4d4219
    Done
    dataset commit active
    Done
    ifconfig up
    Done
    thread start
    Done
    state
    child
    Done
    ipaddr
    fded:5114:8263:1fe1:0:ff:fe00:c001
    fded:5114:8263:1fe1:44f9:cc06:4a2d:534
    fe80:0:0:0:38dd:fdf7:5fd:24e
    Done
    srp client host name my-host
    Done
    srp client host address fded:5114:8263:1fe1:44f9:cc06:4a2d:534
    Done
    srp client service add my-service _ipps._tcp 12345
    Done
    srp client autostart enable
    Done
    

    Como se muestra arriba, usa el comando srp client autostart enable para habilitar el modo de inicio automático en el cliente. El cliente supervisa los datos de red para descubrir los servidores de SRP disponibles dentro de la red de Thread y, luego, el cliente se inicia automáticamente.

  3. Si inicias el cliente de forma manual, ejecuta lo siguiente y, además, incluye la dirección y el puerto de SRP:

    srp client start fded:5114:8263:1fe1:68bc:ec03:c1ad:9325 49154
    Done
    

    En el ejemplo anterior, el servidor de SRP que escucha el puerto UDP es c002(49154).

Verifica el estado del servicio

  1. Verifica si el host y el servicio se registraron correctamente en el nodo cliente:

    srp client host
    name:"my-host", state:Registered, addrs:[fded:5114:8263:1fe1:44f9:cc06:4a2d:534]
    Done
    srp client service
    instance:"my-service", name:"_ipps._tcp", state:Registered, port:12345, priority:0, weight:0
    Done
    

    Asegúrate de que el resultado muestre state:Registered para los comandos del host y del servicio, como en el ejemplo anterior.

  2. Verifica el host y el servicio en el nodo del servidor:

    srp server host
    my-host.default.service.arpa.
    deleted: false 
    addresses: [fded:5114:8263:1fe1:44f9:cc06:4a2d:534]
    Done
    srp server service
    my-service._ipps._tcp.default.service.arpa.
    deleted: false
    port: 12345
    priority: 0
    weight: 0
    ttl: 7200
    lease: 7200
    key-lease: 1209600
    TXT: []
    host: my-host.default.service.arpa.
    addresses: [fded:5114:8263:1fe1:44f9:cc06:4a2d:534]
    Done
    

    Asegúrate de que el resultado muestre deleted: false para los comandos srp server host y srp server service, como en el ejemplo anterior.

Quita el servicio

  1. Quita el servicio a través del nodo cliente:

    srp client service remove my-service _ipps._tcp
    Done
    
  2. Confirma a través del nodo del servidor que se quitó el servicio:

    srp server service
    my-service._ipps._tcp.default.service.arpa.
    deleted: true
    Done
    

    La entrada de servicio aparece en el resultado porque no se quita el nombre del servicio.

Quita los nombres de host y de servicio

  1. Quita el host y todos sus servicios registrados:

    srp client host remove 1
    Done
    
  2. Confirma en el nodo del servidor que no se muestren entradas de host o servicio:

    srp server host
    Done
    srp server service
    Done
    >