Посмотреть исходный код на 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 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 Client:
./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
, чтобы включить режим автозапуска на клиенте. Клиент отслеживает сетевые данные, чтобы обнаружить доступные серверы SRP в сети Thread, после чего клиент автоматически запускается.Если вы запускаете клиент вручную, выполните следующую команду и укажите адрес и порт SRP:
srp client start fded:5114:8263:1fe1:68bc:ec03:c1ad:9325 49154
DoneUDP-порт прослушивающего сервера 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Убедитесь, что выходные данные показывают
deleted: false
как дляsrp server host
, так и для командsrp server service
, как в примере выше.
Удалить услугу
Удаляем сервис через клиентский узел:
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 >