Configurer la connectivité serveur-client du protocole d'enregistrement de service (SRP) avec la CLI OT

Consulter la source sur GitHub

OpenThread offre à la fois une fonctionnalité de serveur et de client SRP, permettant aux appareils d'enregistrer des services basés sur DNS à l'aide de la mise à jour DNS standard envoyée sous forme de paquets unicast. Cette fonctionnalité active la détection de services basée sur DNS.

Ce guide fournit des tâches de base qui utilisent certaines des commandes srp server et srp client les plus courantes.

Commandes du serveur SRP

Pour obtenir la liste des commandes srp server, saisissez help :

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

Commandes du client SRP

Pour obtenir la liste des commandes srp client, saisissez help :

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

Documentation de référence sur les commandes CLI

Pour obtenir la description et la syntaxe de toutes les commandes, reportez-vous à la documentation de référence sur les commandes CLI. Les commandes du serveur SRP commencent par ordre alphabétique (srp server (enable,disable). Les commandes du client SRP commencent par ordre alphabétique : srp client autostart (get).

Atelier de programmation sur le routeur de bordure Thread

L'atelier de programmation sur le routeur de bordure OpenThread fournit des informations sur la configuration de l'appareil final du client SRP.

Présentation de certaines commandes SRP de base

Les commandes du serveur et du client SRP peuvent être utilisées dans l'ordre pour effectuer des tâches SRP classiques:

  1. Démarrez le serveur SRP.

    srp server enable active le serveur SRP une fois que vous avez créé le réseau Thread.

  2. Démarrez le client SRP.

    • srp client host name définit le nom d'hôte que le client doit utiliser.

    • srp client host address (set) active le mode d'adresse du client hôte automatique ou définit explicitement la liste des adresses du client hôte.

    • srp client service add ajoute un service avec un nom d'instance, un nom de service et un numéro de port donnés.

    • srp client autostart enable active le mode de démarrage automatique. Vous pouvez également démarrer le client manuellement en exécutant srp client start.

  3. Vérifiez l'état du service.

    • srp client host et srp client service indiquent l'état indiquant si l'hôte et le service client ont bien été enregistrés sur le nœud client.

    • srp server host et srp server service fournissent l'état de l'hôte et du service sur le nœud de serveur.

  4. Supprimez le service.

    srp client service remove supprime un service, mais conserve son nom.

  5. Supprimez les noms d'hôte et de service.

    srp client host remove supprime l'hôte et tous les services enregistrés.

Exemples d'utilisation du serveur SRP et des commandes client

Ces exemples utilisent des commandes CLI de base pour configurer un réseau Thread, démarrer le serveur et le client SRP, vérifier l'état du serveur et supprimer un service. Les exemples de données sont utilisés à titre d'illustration uniquement.

Démarrer le serveur SRP

  1. Démarrez le nœud de serveur SRP:

    ./output/simulation/bin/ot-cli-ftd 1
    
  2. Configurez un réseau Thread, puis activez le serveur SRP en exécutant la commande 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
    

Démarrer le client SRP

  1. Démarrez le nœud du client SRP:

    ./output/simulation/bin/ot-cli-ftd 2
    
  2. Rejoignez le réseau Thread, définissez le nom et l'adresse de l'hôte du client, puis enregistrez un service:

    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
    

    Comme indiqué ci-dessus, utilisez la commande srp client autostart enable pour activer le mode de démarrage automatique sur le client. Le client surveille les données réseau pour détecter les serveurs SRP disponibles dans le réseau Thread, puis démarre automatiquement.

  3. Si vous démarrez manuellement le client, exécutez la commande suivante, et incluez l'adresse et le port SRP:

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

    Dans l'exemple ci-dessus, le port UDP d'écoute du serveur SRP est c002(49154).

Vérifier l'état du service

  1. Vérifiez si l'hôte et le service ont bien été enregistrés sur le nœud 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
    

    Assurez-vous que le résultat affiche state:Registered pour les commandes d'hôte et de service, comme dans l'exemple ci-dessus.

  2. Vérifiez l'hôte et le service sur le nœud du serveur:

    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
    

    Assurez-vous que le résultat affiche deleted: false pour les commandes srp server host et srp server service, comme dans l'exemple ci-dessus.

Supprimer le service

  1. Supprimez le service via le nœud client:

    srp client service remove my-service _ipps._tcp
    Done
    
  2. Via le nœud de serveur, vérifiez que le service a bien été supprimé:

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

    L'entrée de service figure dans la sortie, car le nom du service n'est pas supprimé.

Supprimer les noms d'hôte et de service

  1. Supprimez l'hôte et tous ses services enregistrés:

    srp client host remove 1
    Done
    
  2. Vérifiez sur le nœud du serveur qu'aucune entrée d'hôte ou de service n'est listée:

    srp server host
    Done
    srp server service
    Done
    >