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

Ver código fuente en GitHub

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

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

Comandos del servidor 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 obtener descripciones y sintaxis de todos los comandos, consulta la Referencia de comandos de la CLI. Los comandos del servidor de SRP comienzan alfabéticamente con srp server (enable,disable). Los comandos del cliente de SRP comienzan alfabéticamente con srp client autostart (get):

Codelab del router de borde de Thread

Codelab del router de borde de OpenThread incluye información para configurar el dispositivo final del cliente de SRP.

Descripciones generales de algunos comandos básicos de SRP

Los comandos del servidor y del cliente de SRP pueden utilizarse 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 creas la red 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 manera explícita la lista de direcciones de clientes del host.

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

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

  3. Verifica el estado del servicio.

    • srp client host y srp client service indican el estado El host y el servicio del cliente se registraron correctamente en el nodo del 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 de clientes y servidores SRP

Estos ejemplos usan comandos básicos de la CLI para configurar una red Thread, comienza el servidor y el cliente de SRP, verificar el estado del servidor y quitar un servicio. Datos de muestra se usa 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 con 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 del cliente de SRP:

    ./output/simulation/bin/ot-cli-ftd 2
    
  2. Únete a la red de Thread, establece el nombre y la dirección de host del cliente. registrar 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 mostró anteriormente, usa el comando srp client autostart enable para habilitar modo de inicio automático en el cliente. El cliente supervisa los datos de red para detectar servidores SRP disponibles en la red de Thread, el cliente automáticamente.

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

    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 de 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 de host y de 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 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. Mediante el nodo del servidor, confirma que se haya quitado el servicio:

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

    La entrada Service aparece en la salida porque el nombre del Service no se quitó.

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 haya entradas de host ni de servicio:

    srp server host
    Done
    srp server service
    Done
    >