Configura la connettività server-client SRP (Service Registration Protocol) con OT CLI

Visualizza il codice sorgente su GitHub

OpenThread offre funzionalità sia server SRP che client, consentendo ai dispositivi di registrare servizi basati su DNS utilizzando l'aggiornamento DNS standard inviato come pacchetti unicast. Questa funzionalità consente il rilevamento dei servizi basato su DNS.

Questa guida fornisce attività di base che utilizzano alcuni dei comandi srp server e srp client più comuni.

Comandi SRP del server

Per un elenco di comandi srp server, digita help:

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

Comandi client SRP

Per un elenco di comandi srp client, digita help:

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

Riferimento per i comandi dell'interfaccia a riga di comando

Per le descrizioni e la sintassi di tutti i comandi, consulta la documentazione sui comandi dell'interfaccia a riga di comando. I comandi del server SRP iniziano in ordine alfabetico con srp server (enable,disable). I comandi del client SRP iniziano in ordine alfabetico con srp client autostart (get).

Codelab sul router di confine Thread

Il codelab sul router di confine OpenThread include informazioni su come configurare il dispositivo client SRP.

Panoramiche di alcuni comandi SRP di base

I comandi del server e del client SRP possono essere utilizzati in sequenza per eseguire le tipiche attività SRP:

  1. Avvia il server SRP.

    srp server enable attiva il server SRP dopo che hai creato la rete Thread.

  2. Avvia il client SRP.

    • srp client host name imposta il nome host che deve essere utilizzato dal client.

    • srp client host address (set) attiva la modalità di indirizzo client dell'host automatico o imposta esplicitamente l'elenco degli indirizzi client host.

    • srp client service add aggiunge un servizio con un nome istanza, un nome di servizio e un numero di porta specifici.

    • srp client autostart enable attiva la modalità di avvio automatico. Puoi anche avviare il client manualmente eseguendo srp client start.

  3. Verifica lo stato del servizio.

    • srp client host e srp client service indicano se l'host e il servizio client sono stati registrati correttamente sul nodo client.

    • srp server host e srp server service forniscono lo stato di host e servizio sul nodo server.

  4. Rimuovere il servizio.

    srp client service remove rimuove un servizio, ma ne conserva il nome.

  5. Rimuovi i nomi host e dei servizi.

    srp client host remove rimuove l'host e tutti i servizi registrati.

Esempi di utilizzo dei comandi SRP per server e client

Questi esempi utilizzano i comandi di interfaccia a riga di comando di base per configurare una rete Thread, avviare il server e il client SRP, verificare lo stato del server e rimuovere un servizio. I dati di esempio vengono utilizzati a scopo illustrativo.

Avvia il server SRP

  1. Avvia il nodo del server SRP:

    ./output/simulation/bin/ot-cli-ftd 1
    
  2. Configura una rete Thread, quindi abilita il server SRP eseguendo il 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
    

Avvia il client SRP

  1. Avvia il nodo client SRP:

    ./output/simulation/bin/ot-cli-ftd 2
    
  2. Unisciti alla rete Thread, imposta il nome e l'indirizzo dell'host del client e registra un servizio:

    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
    

    Come mostrato sopra, utilizza il comando srp client autostart enable per abilitare la modalità di avvio automatico sul client. Il client monitora i dati di rete per trovare i server SRP disponibili all'interno della rete Thread, quindi si avvia automaticamente.

  3. Se avvii manualmente il client, esegui il comando seguente e includi l'indirizzo e la porta SRP:

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

    Nell'esempio precedente, la porta UDP di ascolto del server SRP è c002(49154).

Verificare lo stato del servizio

  1. Verifica se l'host e il servizio sono stati registrati correttamente sul nodo client:

    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
    

    Assicurati che l'output mostri state:Registered sia per i comandi dell'host che del servizio, come nell'esempio precedente.

  2. Controlla l'host e il servizio sul nodo server:

    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
    

    Assicurati che l'output mostri deleted: false per entrambi i comandi srp server host e srp server service, come nell'esempio precedente.

Rimuovi il servizio

  1. Rimuovi il servizio tramite il nodo client:

    srp client service remove my-service _ipps._tcp
    Done
    
  2. Verifica tramite il nodo del server che il servizio sia stato rimosso:

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

    La voce di servizio è elencata nell'output perché il nome del servizio non viene rimosso.

Rimuovi i nomi host e dei servizi

  1. Rimuovi l'host e tutti i relativi servizi registrati:

    srp client host remove 1
    Done
    
  2. Verifica sul nodo del server che non siano elencate voci di host o servizio:

    srp server host
    Done
    srp server service
    Done
    >