Посмотреть исходный код на 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 newDonedatasetActive 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 activeDoneifconfig upDonethread startDonestateleader Doneipaddrfded: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 enableDone
Запустите клиент SRP
Запустите узел SRP Client:
./output/simulation/bin/ot-cli-ftd 2Присоединитесь к сети Thread, задайте имя и адрес хоста клиента и зарегистрируйте службу:
dataset networkkey 7fcbae4153cc2955c28440c15d4d4219Donedataset commit activeDoneifconfig upDonethread startDonestatechild Doneipaddrfded: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-hostDonesrp client host address fded:5114:8263:1fe1:44f9:cc06:4a2d:534Donesrp client service add my-service _ipps._tcp 12345Donesrp client autostart enableDoneКак показано выше, используйте команду
srp client autostart enable, чтобы включить режим автозапуска на клиенте. Клиент отслеживает сетевые данные, чтобы обнаружить доступные серверы SRP в сети Thread, после чего клиент автоматически запускается.Если вы запускаете клиент вручную, выполните следующую команду и укажите адрес и порт SRP:
srp client start fded:5114:8263:1fe1:68bc:ec03:c1ad:9325 49154DoneUDP-порт прослушивающего сервера SRP —
c002(49154)в приведенном выше примере.
Проверьте статус услуги
Проверьте, успешно ли зарегистрированы хост и служба на клиентском узле:
srp client hostname:"my-host", state:Registered, addrs:[fded:5114:8263:1fe1:44f9:cc06:4a2d:534] Donesrp 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] Donesrp 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 hostDonesrp server serviceDone >