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 伺服器 (enable、disable) 字母開頭。SRP 用戶端指令會以 srp Client autostart (get) 開頭。
Thread 邊界路由器程式碼研究室
OpenThread 邊界路由器程式碼研究室提供如何設定 SRP 用戶端終端裝置的相關資訊。
一些基本的 SRP 指令總覽
SRP 伺服器和用戶端指令可以依序使用,以執行一般 SRP 工作:
-
建立 Thread 網路後,
srp server enable
會啟用 SRP 伺服器。 -
srp client host name
會設定用戶端要使用的主機名稱。srp client host address (set)
可以啟用自動主機用戶端位址模式,或明確設定主機用戶端位址清單。srp client service add
會新增具有指定執行個體名稱、服務名稱和通訊埠編號的服務。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
指令在用戶端啟用自動啟動模式。用戶端會監控網路資料,找出 Thread 網路中的可用 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
和srp server service
指令的輸出內容顯示deleted: false
,如上例所示。
移除服務
透過用戶端節點移除服務:
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 >