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:
-
srp server enable
habilita el servidor de SRP una vez que creaste la red de Thread. -
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 ejecutassrp client start
.
Verifica el estado del servicio.
srp client host
ysrp 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
ysrp server service
proporcionan el estado del host y del servicio en el nodo del servidor.
-
srp client service remove
quita un servicio, pero conserva su nombre. 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
Inicia el nodo del servidor de SRP:
./output/simulation/bin/ot-cli-ftd 1
Configura una red Thread y, luego, habilita el servidor de SRP ejecutando el comando
srp server enable
:dataset init new
Donedataset
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 Donedataset commit active
Doneifconfig up
Donethread start
Donestate
leader Doneipaddr
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 Donesrp server enable
Done
Inicia el cliente de SRP
Inicia el nodo cliente de SRP:
./output/simulation/bin/ot-cli-ftd 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
Donedataset commit active
Doneifconfig up
Donethread start
Donestate
child Doneipaddr
fded:5114:8263:1fe1:0:ff:fe00:c001 fded:5114:8263:1fe1:44f9:cc06:4a2d:534 fe80:0:0:0:38dd:fdf7:5fd:24e Donesrp client host name my-host
Donesrp client host address fded:5114:8263:1fe1:44f9:cc06:4a2d:534
Donesrp client service add my-service _ipps._tcp 12345
Donesrp client autostart enable
DoneComo 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.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
DoneEn el ejemplo anterior, el servidor de SRP que escucha el puerto UDP es
c002(49154)
.
Verifica el estado del servicio
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] Donesrp client service
instance:"my-service", name:"_ipps._tcp", state:Registered, port:12345, priority:0, weight:0 DoneAsegúrate de que el resultado muestre
state:Registered
para los comandos del host y del servicio, como en el ejemplo anterior.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] Donesrp 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] DoneAsegúrate de que el resultado muestre
deleted: false
para los comandossrp server host
ysrp server service
, como en el ejemplo anterior.
Quita el servicio
Quita el servicio a través del nodo cliente:
srp client service remove my-service _ipps._tcp
DoneConfirma a través del nodo del servidor que se quitó el servicio:
srp server service
my-service._ipps._tcp.default.service.arpa. deleted: true DoneLa entrada de servicio aparece en el resultado porque no se quita el nombre del servicio.
Quita los nombres de host y de servicio
Quita el host y todos sus servicios registrados:
srp client host remove 1
DoneConfirma en el nodo del servidor que no se muestren entradas de host o servicio:
srp server host
Donesrp server service
Done >