SRP-Server-Client-Konnektivität (Service Registration Protocol) mit der OT-Befehlszeile einrichten

Quelle auf GitHub ansehen

OpenThread bietet sowohl SRP-Server- als auch Client-Funktionen, sodass Geräte DNS-basierte Dienste mithilfe des standardmäßigen DNS-Updates registrieren können, das als Unicast-Pakete gesendet wird. Diese Funktion aktiviert die DNS-basierte Diensterkennung.

Dieser Leitfaden enthält grundlegende Aufgaben, die einige der gebräuchlicheren srp server- und srp client-Befehle verwenden.

SRP-Serverbefehle

Geben Sie help ein, um eine Liste von srp server-Befehlen aufzurufen:

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

SRP-Clientbefehle

Geben Sie help ein, um eine Liste von srp client-Befehlen aufzurufen:

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

Befehlsreferenz für die Befehlszeile

Beschreibungen und Informationen zur Syntax aller Befehle finden Sie in der Befehlsreferenz für die Befehlszeile. Die Befehle des SRP-Servers beginnen alphabetisch mit srp server (enable,disable). Die Befehle des SRP-Clients beginnen alphabetisch mit srp client autostart (get).

Codelab zu Thread-Border-Routern

Das Codelab zu OpenThread-Border-Routern enthält Informationen zum Einrichten des SRP-Client-Endgeräts.

Übersicht über einige grundlegende SRP-Befehle

SRP-Server- und -Client-Befehle können nacheinander verwendet werden, um typische SRP-Aufgaben auszuführen:

  1. Starten Sie den SRP-Server.

    srp server enable aktiviert den SRP-Server, sobald Sie das Thread-Netzwerk erstellt haben.

  2. Starten Sie den SRP-Client.

    • srp client host name legt den Hostnamen fest, der vom Client verwendet werden soll.

    • srp client host address (set) aktiviert entweder den Modus für die automatische Hostadresse oder legt die Liste der Hostclientadressen explizit fest.

    • srp client service add fügt einen Dienst mit einem bestimmten Instanznamen, Dienstnamen und einer Portnummer hinzu.

    • srp client autostart enable aktiviert den Auto-Start-Modus. Sie können den Client auch manuell starten, indem Sie srp client start ausführen.

  3. Prüfen Sie den Dienststatus.

    • srp client host und srp client service geben den Status an, ob der Clienthost und der Dienst erfolgreich auf dem Clientknoten registriert wurden.

    • srp server host und srp server service stellen den Host- und Dienststatus auf dem Serverknoten bereit.

  4. Entfernen Sie den Dienst.

    srp client service remove entfernt einen Dienst, behält aber den Dienstnamen bei.

  5. Entfernen Sie den Host und die Dienstnamen.

    srp client host remove entfernt den Host und alle registrierten Dienste.

Beispiele für die Verwendung von SRP-Server- und Clientbefehlen

In diesen Beispielen werden grundlegende Befehlszeilenbefehle verwendet, um ein Thread-Netzwerk einzurichten, den SRP-Server und -Client zu starten, den Serverstatus zu prüfen und einen Dienst zu entfernen. Zur Veranschaulichung werden Beispieldaten verwendet.

SRP-Server starten

  1. Starten Sie den SRP-Serverknoten:

    ./output/simulation/bin/ot-cli-ftd 1
    
  2. Richten Sie ein Thread-Netzwerk ein und aktivieren Sie dann den SRP-Server mit dem Befehl 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
    

SRP-Client starten

  1. Starten Sie den SRP-Clientknoten:

    ./output/simulation/bin/ot-cli-ftd 2
    
  2. Treten Sie dem Thread-Netzwerk bei, legen Sie den Namen und die Adresse des Clienthosts fest und registrieren Sie einen Dienst:

    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
    

    Verwenden Sie wie oben gezeigt den Befehl srp client autostart enable, um den Autostartmodus auf dem Client zu aktivieren. Der Client überwacht die Netzwerkdaten, um verfügbare SRP-Server im Thread-Netzwerk zu finden, und startet sich dann automatisch selbst.

  3. Wenn Sie den Client manuell starten, führen Sie den folgenden Befehl aus und geben Sie die SRP-Adresse und den Port an:

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

    Der SRP-Server, der den UDP-Port überwacht, ist im obigen Beispiel c002(49154).

Dienststatus prüfen

  1. Prüfen Sie, ob der Host und der Dienst erfolgreich auf dem Clientknoten registriert wurden:

    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
    

    Achten Sie darauf, dass die Ausgabe state:Registered sowohl für Host- als auch für Dienstbefehle anzeigt, wie im obigen Beispiel.

  2. Prüfen Sie den Host und den Dienst auf dem Serverknoten:

    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
    

    Achten Sie darauf, dass die Ausgabe deleted: false für die Befehle srp server host und srp server service anzeigt, wie im Beispiel oben.

Dienst entfernen

  1. Entfernen Sie den Dienst über den Clientknoten:

    srp client service remove my-service _ipps._tcp
    Done
    
  2. Bestätigen Sie über den Serverknoten, dass der Dienst entfernt wurde:

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

    Der Diensteintrag wird in der Ausgabe aufgeführt, da der Name des Dienstes nicht entfernt wird.

Host- und Dienstnamen entfernen

  1. Entfernen Sie den Host und alle registrierten Dienste:

    srp client host remove 1
    Done
    
  2. Prüfen Sie auf dem Serverknoten, dass keine Host- oder Diensteinträge aufgeführt sind:

    srp server host
    Done
    srp server service
    Done
    >