使用 OT CLI 設定服務註冊通訊協定 (SRP) 伺服器與用戶端連線

前往 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 伺服器 (啟用、停用)。 SRP 用戶端指令會按照字母順序使用 srp 用戶端 autostart (get)

Thread 邊界路由器程式碼研究室

OpenThread 邊界路由器程式碼研究室 內含設定 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 會新增具有指定執行個體名稱的服務,即服務 名稱和通訊埠編號

    • srp client autostart enable 可啟用自動啟動模式。您也可以 執行 srp client start 來啟動用戶端。

  3. 驗證服務狀態

    • srp client host」和「srp client service」會提供狀態資訊,指出 用戶端主機和服務已成功登錄到用戶端節點。

    • srp server host」和「srp 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 指令啟用 用戶端的自動開始模式。用戶端會監控網路資料,以找出 Thread 網路中可用的 SRP 伺服器,接著是 並自動啟動

  3. 如果手動啟動用戶端,請執行下列指令,並加入 SRP 位址和通訊埠:

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

    在上述範例中,SRP 伺服器監聽 UDP 通訊埠的是 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
    >