<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 任务:
-
在您创建 Thread 网络后,
srp server enable
会启用 SRP 服务器。 -
srp client host name
设置客户端要使用的主机名。srp client host address (set)
用于启用自动主机客户端地址模式或 用于明确设置主机客户端地址列表。srp client service add
添加具有给定实例名称 service 的服务 包括名称和端口号srp client autostart enable
用于启用自动启动模式。您也可以手动 通过运行srp client start
启动客户端。
-
srp client host
和srp client service
可提供有关 客户端主机和服务已成功在客户端节点上注册。srp server host
和srp server service
提供主机和服务状态 在服务器节点上运行
移除服务。
srp client service remove
可移除服务,但保留服务名称。-
srp client host remove
会移除主机和所有已注册的服务。
SRP 服务器和客户端命令用法示例
这些示例使用基本的 CLI 命令来设置 Thread 网络, SRP 服务器和客户端、验证服务器状态以及移除服务。示例数据 仅作说明之用。
启动 SRP 服务器
启动 SRP 服务器节点:
./output/simulation/bin/ot-cli-ftd 1
设置 Thread 网络,然后运行
srp server enable
命令来启用 SRP 服务器:dataset init new
Donedataset
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 Donedataset commit active
Doneifconfig up
Donethread start
Donestate
leader Doneipaddr
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 Donesrp server enable
Done
启动 SRP 客户端
启动 SRP 客户端节点:
./output/simulation/bin/ot-cli-ftd 2
加入 Thread 网络,设置客户端主机名和地址,然后 注册服务:
dataset networkkey 7fcbae4153cc2955c28440c15d4d4219
Donedataset commit active
Doneifconfig up
Donethread start
Donestate
child Doneipaddr
fded:5114:8263:1fe1:0:ff:fe00:c001 fded:5114:8263:1fe1:44f9:cc06:4a2d:534 fe80:0:0:0:38dd:fdf7:5fd:24e Donesrp client host name my-host
Donesrp client host address fded:5114:8263:1fe1:44f9:cc06:4a2d:534
Donesrp client service add my-service _ipps._tcp 12345
Donesrp client autostart enable
Done如上所示,使用
srp client autostart enable
命令启用 自动启动模式客户端会监控网络数据以发现 可用的 SRP 服务器 会自动启动如果手动启动客户端,请运行以下命令,并添加 SRP 地址和端口:
srp client start fded:5114:8263:1fe1:68bc:ec03:c1ad:9325 49154
Done在上述示例中,监听 UDP 端口的 SRP 服务器为
c002(49154)
。
验证服务状态
检查主机和服务是否已成功在客户端节点上注册:
srp client host
name:"my-host", state:Registered, addrs:[fded:5114:8263:1fe1:44f9:cc06:4a2d:534] Donesrp client service
instance:"my-service", name:"_ipps._tcp", state:Registered, port:12345, priority:0, weight:0 Done确保输出针对主机和服务命令显示
state:Registered
, 如以上示例所示。检查服务器节点上的主机和服务:
srp server host
my-host.default.service.arpa. deleted: false addresses: [fded:5114:8263:1fe1:44f9:cc06:4a2d:534] Donesrp 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 host
的deleted: false
和srp server service
命令,如上例所示。
移除服务
通过客户端节点移除服务:
srp client service remove my-service _ipps._tcp
Done通过服务器节点确认服务已移除:
srp server service
my-service._ipps._tcp.default.service.arpa. deleted: true Done服务条目列在输出中,因为服务名称为 未移除。
移除主机名和服务名称
移除主机及其所有已注册的服务:
srp client host remove 1
Done在服务器节点上确认未列出任何主机或服务条目:
srp server host
Donesrp server service
Done >