Посмотреть исходный код на 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 (включить, отключить) . Команды клиента SRP начинаются в алфавитном порядке с автозапуска клиента srp (get) .
Кодовая лаборатория Thread Border Router
Лаборатория кода OpenThread Border Router содержит информацию о том, как настроить конечное устройство клиента SRP.
Обзоры некоторых основных команд SRP
Команды сервера и клиента SRP можно использовать последовательно для выполнения типичных задач SRP:
- 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
- Настройте сеть потоков, затем включите сервер SRP, выполнив команду - srp server enable:- dataset init newDone- datasetActive 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 activeDone- ifconfig upDone- thread startDone- stateleader Done- ipaddrfded: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 enableDone
Запустите клиент SRP
- Запустите узел SRP Client: - ./output/simulation/bin/ot-cli-ftd 2
- Присоединитесь к сети Thread, задайте имя и адрес хоста клиента и зарегистрируйте службу: - dataset networkkey 7fcbae4153cc2955c28440c15d4d4219Done- dataset commit activeDone- ifconfig upDone- thread startDone- statechild Done- ipaddrfded: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-hostDone- srp client host address fded:5114:8263:1fe1:44f9:cc06:4a2d:534Done- srp client service add my-service _ipps._tcp 12345Done- srp client autostart enableDone- Как показано выше, используйте команду - srp client autostart enable, чтобы включить режим автозапуска на клиенте. Клиент отслеживает сетевые данные, чтобы обнаружить доступные серверы SRP в сети Thread, после чего клиент автоматически запускается.
- Если вы запускаете клиент вручную, выполните следующую команду и укажите адрес и порт SRP: - srp client start fded:5114:8263:1fe1:68bc:ec03:c1ad:9325 49154Done- UDP-порт прослушивающего сервера SRP — - c002(49154)в приведенном выше примере.
Проверьте статус услуги
- Проверьте, успешно ли зарегистрированы хост и служба на клиентском узле: - srp client hostname:"my-host", state:Registered, addrs:[fded:5114:8263:1fe1:44f9:cc06:4a2d:534] Done- srp client serviceinstance:"my-service", name:"_ipps._tcp", state:Registered, port:12345, priority:0, weight:0 Done- Убедитесь, что выходные данные показывают - state:Registeredкак для команд хоста, так и для команд службы, как в приведенном выше примере.
- Проверьте хост и сервис на узле сервера: - srp server hostmy-host.default.service.arpa. deleted: false addresses: [fded:5114:8263:1fe1:44f9:cc06:4a2d:534] Done- srp server servicemy-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- Убедитесь, что выходные данные показывают - deleted: falseкак для- srp server host, так и для команд- srp server service, как в примере выше.
Удалить услугу
- Удаляем сервис через клиентский узел: - srp client service remove my-service _ipps._tcpDone
- Подтвердите через узел сервера, что служба удалена: - srp server servicemy-service._ipps._tcp.default.service.arpa. deleted: true Done- Запись службы указана в выходных данных, поскольку имя службы не удаляется. 
Удалить имена хоста и службы
- Удалите хост и все зарегистрированные на нем службы: - srp client host remove 1Done
- Убедитесь, что на узле сервера отсутствуют записи хоста или службы: - srp server hostDone- srp server serviceDone >