OT CLI로 서비스 등록 프로토콜 (SRP) 서버 클라이언트 연결 설정

GitHub에서 소스 보기

OpenThread는 SRP 서버와 클라이언트 기능을 모두 제공하므로 기기가 유니캐스트 패킷으로 전송된 표준 DNS 업데이트를 사용하여 DNS 기반 서비스를 등록할 수 있습니다. 이 기능은 DNS 기반 서비스 검색을 사용 설정합니다.

이 가이드에서는 보다 일반적인 srp serversrp 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 서버를 시작합니다.

    스레드 네트워크를 만들면 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 hostsrp client service는 클라이언트 호스트와 서비스가 클라이언트 노드에 성공적으로 등록되었는지 여부에 대한 상태를 제공합니다.

    • srp server hostsrp server service는 서버 노드의 호스트 및 서비스 상태를 제공합니다.

  4. 서비스를 삭제합니다.

    srp client service remove는 서비스를 삭제하지만 서비스 이름은 유지합니다.

  5. 호스트 및 서비스 이름을 삭제합니다.

    srp client host remove는 호스트 및 등록된 모든 서비스를 삭제합니다.

SRP 서버 및 클라이언트 명령어 사용의 예

이 예에서는 기본 CLI 명령어를 사용하여 스레드 네트워크를 설정하고, SRP 서버와 클라이언트를 시작하고, 서버 상태를 확인하고, 서비스를 삭제합니다. 샘플 데이터는 설명을 위해 사용됩니다.

SRP 서버 시작

  1. SRP 서버 노드를 시작합니다.

    ./output/simulation/bin/ot-cli-ftd 1
    
  2. 스레드 네트워크를 설정한 다음 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. 스레드 네트워크에 가입하고, 클라이언트 호스트 이름과 주소를 설정하고, 서비스를 등록합니다.

    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
    

    위의 예에서 수신 대기하는 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 host 명령어와 srp server service 명령어 모두에 대해 deleted: false가 출력에 표시되는지 확인합니다.

서비스 삭제

  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
    >