使用 OT CLI 设置服务注册协议 (SRP) 服务器-客户端连接

<ph type="x-smartling-placeholder"></ph> 在 GitHub 上查看源代码

OpenThread 同时提供 SRP 服务器和客户端功能,使设备能够 使用以单播形式发送的标准 DNS 更新来注册基于 DNS 的服务 数据包。此功能将启用基于 DNS 的服务发现。

本指南介绍了一些使用较常见的 srp server 实现的基本任务。 和 srp client 命令。

SRP 服务器命令

如需查看 srp server 命令的列表,请输入 help

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

SRP 客户端命令

如需查看 srp client 命令的列表,请输入 help

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

CLI 命令参考

有关所有命令的说明和语法,请参阅 CLI 命令参考。 SRP 服务器命令按字母顺序开头为 srp server (enable,disable)。 SRP 客户端命令按字母顺序开头为 srp client autostart (get)

线程边界路由器 Codelab

OpenThread 边界路由器 Codelab 包含有关如何设置 SRP 客户端终端设备的信息。

一些基本 SRP 命令概览

您可以按顺序使用 SRP 服务器和客户端命令来执行典型的 SRP 任务:

  1. 启动 SRP 服务器

    在您创建 Thread 网络后,srp server enable 会启用 SRP 服务器。

  2. 启动 SRP 客户端

    • srp client host name 设置客户端要使用的主机名。

    • srp client host address (set) 用于启用自动主机客户端地址模式或 用于明确设置主机客户端地址列表。

    • srp client service add 添加具有给定实例名称 service 的服务 包括名称和端口号

    • srp client autostart enable 用于启用自动启动模式。您也可以手动 通过运行 srp client start 启动客户端。

  3. 验证服务状态

    • srp client hostsrp client service 可提供有关 客户端主机和服务已成功在客户端节点上注册。

    • srp server hostsrp server service 提供主机和服务状态 在服务器节点上运行

  4. 移除服务

    srp client service remove 可移除服务,但保留服务名称。

  5. 移除主机名和服务名称

    srp client host remove 会移除主机和所有已注册的服务。

SRP 服务器和客户端命令用法示例

这些示例使用基本的 CLI 命令来设置 Thread 网络, SRP 服务器和客户端、验证服务器状态以及移除服务。示例数据 仅作说明之用。

启动 SRP 服务器

  1. 启动 SRP 服务器节点:

    ./output/simulation/bin/ot-cli-ftd 1
    
  2. 设置 Thread 网络,然后运行 srp server enable 命令来启用 SRP 服务器:

    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 客户端

  1. 启动 SRP 客户端节点:

    ./output/simulation/bin/ot-cli-ftd 2
    
  2. 加入 Thread 网络,设置客户端主机名和地址,然后 注册服务:

    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
    

    如上所示,使用 srp client autostart enable 命令启用 自动启动模式客户端会监控网络数据以发现 可用的 SRP 服务器 会自动启动

  3. 如果手动启动客户端,请运行以下命令,并添加 SRP 地址和端口:

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

    在上述示例中,监听 UDP 端口的 SRP 服务器为 c002(49154)

验证服务状态

  1. 检查主机和服务是否已成功在客户端节点上注册:

    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
    

    确保输出针对主机和服务命令显示 state:Registered, 如以上示例所示。

  2. 检查服务器节点上的主机和服务:

    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
    

    确保输出结果中同时显示 srp server hostdeleted: falsesrp server service 命令,如上例所示。

移除服务

  1. 通过客户端节点移除服务:

    srp client service remove my-service _ipps._tcp
    Done
    
  2. 通过服务器节点确认服务已移除:

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

    服务条目列在输出中,因为服务名称为 未移除。

移除主机名和服务名称

  1. 移除主机及其所有已注册的服务:

    srp client host remove 1
    Done
    
  2. 在服务器节点上确认未列出任何主机或服务条目:

    srp server host
    Done
    srp server service
    Done
    >