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

Visualizza il codice sorgente su GitHub

OpenThread offre funzionalità sia server che client SRP, consentendo ai dispositivi per registrare i servizi basati su DNS utilizzando lo standard DNS Update inviato come unicast e pacchetti. Questa funzionalità consente l'individuazione dei servizi basata su DNS.

Questa guida fornisce attività di base che utilizzano alcune delle srp server più comuni e srp client.

Comandi server SRP

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 ai comandi dell'interfaccia a riga di comando

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

Codelab sul router di confine Thread

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

Panoramiche di alcuni comandi SRP di base

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

  1. Avvia il server SRP.

    srp server enable attiva il server SRP dopo aver 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à host automatico dell'indirizzo client oppure che imposta esplicitamente l'elenco degli indirizzi client dell'host.

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

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

  3. Verifica lo stato del servizio.

    • srp client host e srp client service indicano lo stato che indica se l'host e il servizio del client sono stati registrati correttamente sul nodo client.

    • srp server host e srp server service forniscono lo stato dell'host e del servizio sul nodo server.

  4. Rimuovere il servizio.

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

  5. Rimuovi i nomi dell'host e del servizio.

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

Esempi di utilizzo dei comandi client e del server SRP

Questi esempi utilizzano i comandi dell'interfaccia a riga di comando di base per configurare una rete Thread, il server e il client SRP, verificare lo stato del server e rimuovere un servizio. Dati di esempio vengono utilizzati a fini illustrativi.

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 host e l'indirizzo 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 avvio automatico sul client. Il client monitora i dati di rete per individuare server SRP disponibili all'interno della rete Thread, il client si avvia automaticamente.

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

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

    La porta UDP di ascolto del server SRP è c002(49154) nell'esempio precedente.

Verifica lo stato del servizio

  1. Controlla 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 per i comandi host e di servizio, come nell'esempio precedente.

  2. Controlla l'host e il servizio sul nodo del 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 sia per 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 service è elencata nell'output perché il nome del servizio è non rimosso.

Rimuovi i nomi di host e servizio

  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 di servizio:

    srp server host
    Done
    srp server service
    Done
    >