Skonfiguruj połączenie między serwerem-klientem (SRP) za pomocą interfejsu OT CLI

Wyświetl źródło na GitHubie

OpenThread zapewnia funkcje zarówno serwera SRP, jak i klienta, dzięki czemu urządzenia mogą rejestrować usługi oparte na DNS przy użyciu standardowego aktualizacji DNS wysyłanej jako pakiety unicast. Ta funkcja umożliwia wykrywanie usług opartych na DNS.

W tym przewodniku znajdziesz podstawowe zadania, które korzystają z bardziej typowych poleceń srp server i srp client.

Polecenia serwera SRP

Aby wyświetlić listę poleceń srp server, wpisz help:

srp server help
addrmode
auto
disable
domain
enable
help
host
lease
seqnum
service
state
Done

Polecenia klienta SRP

Aby wyświetlić listę poleceń srp client, wpisz help:

srp client help
autostart
callback
help
host
keyleaseinterval
leaseinterval
service
start
state
stop
ttl
Done

Dokumentacja poleceń interfejsu wiersza poleceń

Opisy i składnię wszystkich poleceń znajdziesz w dokumentacji poleceń interfejsu wiersza poleceń. Polecenia serwera SRP rozpoczynają się alfabetycznie od słowa srpserver (enable,disable) (włącz, wyłącz). Polecenia klienta SRP rozpoczynają się alfabetycznie od srp klienta autostart (get).

Ćwiczenie z programowania routera obramowania wątków

Ćwiczenia z programowania OpenThread Border Router zawierają informacje o konfigurowaniu urządzenia końcowego klienta SRP.

Omówienie niektórych podstawowych poleceń SRP

Polecenia serwera SRP i klienta mogą być używane w sekwencji do wykonywania typowych zadań SRP:

  1. Uruchom serwer SRP.

    srp server enable włącza serwer SRP po utworzeniu sieci Thread.

  2. Uruchom klienta SRP.

    • srp client host name ustawia nazwę hosta, która ma być używana przez klienta.

    • srp client host address (set) włącza tryb adresu klienta automatycznego hosta lub jednoznacznie ustawia listę adresów klienta hosta.

    • srp client service add dodaje usługę o podanej nazwie instancji, nazwie usługi i numerze portu.

    • srp client autostart enable włącza tryb automatycznego uruchamiania. Możesz też ręcznie uruchomić klienta, uruchamiając polecenie srp client start.

  3. Sprawdzanie stanu usługi.

    • srp client host i srp client service podają stan informujący o tym, czy host i usługa klienta zostały zarejestrowane w węźle klienta.

    • srp server host i srp server service podają stan hosta i usługi w węźle serwera.

  4. usunąć usługę;

    srp client service remove usuwa usługę, ale zachowuje nazwę usługi.

  5. Usuń nazwy hostów i usług.

    srp client host remove usuwa hosta i wszystkie zarejestrowane usługi.

Przykłady użycia poleceń serwera SRP i klienta

W tych przykładach używane są podstawowe polecenia interfejsu wiersza poleceń, które pozwalają skonfigurować sieć Thread, uruchomić serwer SRP i klienta, sprawdzić stan serwera oraz usunąć usługę. Przykładowe dane mają charakter poglądowy.

Uruchamianie serwera SRP

  1. Uruchom węzeł serwera SRP:

    ./output/simulation/bin/ot-cli-ftd 1
    
  2. Skonfiguruj sieć typu Thread, a następnie włącz serwer SRP, uruchamiając polecenie srp server enable:

    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
    

Uruchamianie klienta SRP

  1. Uruchom węzeł klienta SRP:

    ./output/simulation/bin/ot-cli-ftd 2
    
  2. Dołącz do sieci Thread, ustaw nazwę hosta i adres klienta oraz zarejestruj usługę:

    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
    

    Jak pokazano powyżej, użyj polecenia srp client autostart enable, aby włączyć tryb automatycznego uruchamiania w kliencie. Klient monitoruje dane sieciowe, aby wykryć dostępne serwery SRP w sieci Thread, a potem automatycznie się uruchamia.

  3. Jeśli ręcznie uruchamiasz klienta, wykonaj te czynności, uwzględniając adres SRP i port:

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

    W przykładzie powyżej serwer SRP nasłuchujący port UDP to c002(49154).

Sprawdzanie stanu usługi

  1. Sprawdź, czy host i usługa zostały prawidłowo zarejestrowane w węźle klienta:

    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
    

    Upewnij się, że w przypadku poleceń hosta i usługi w danych wyjściowych wyświetla się wartość state:Registered, jak w przykładzie powyżej.

  2. Sprawdź hosta i usługę w węźle serwera:

    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
    

    Upewnij się, że w danych wyjściowych zarówno w przypadku poleceń srp server host, jak i srp server service pojawia się wartość deleted: false, jak w przykładzie powyżej.

Usuń usługę

  1. Usuń usługę za pomocą węzła klienta:

    srp client service remove my-service _ipps._tcp
    Done
    
  2. Sprawdź w węźle serwera, czy usługa została usunięta:

    srp server service
    my-service._ipps._tcp.default.service.arpa.
    deleted: true
    Done
    

    Wpis o usłudze wyświetla się w danych wyjściowych, ponieważ nazwa usługi nie została usunięta.

Usuń nazwy hosta i usługi

  1. Usuń hosta i wszystkie jego zarejestrowane usługi:

    srp client host remove 1
    Done
    
  2. Sprawdź w węźle serwera, czy na liście nie ma żadnych wpisów dotyczących hosta ani usługi:

    srp server host
    Done
    srp server service
    Done
    >