Mesh-Netzwerk-Inbetriebnahme

Quelle auf GitHub ansehen

Kommissar und Stellvertretender

Für die Inbetriebnahme ist ein Gerät mit der Rolle „Kommentator“ und ein Gerät mit der Rolle „Joiner“ erforderlich. Das Kommissar ist entweder ein Thread-Gerät in einem vorhandenen Thread-Netzwerk oder ein Gerät außerhalb des Thread-Netzwerks (z. B. ein Smartphone), das die Kommissionsrolle ausübt. Der Joiner ist das Gerät, das mit dem Thread-Netzwerk verbunden werden soll.

Thread Commissioner (Authentifizierung) wird verwendet, um ein Gerät im Netzwerk zu authentifizieren. Es werden keine Thread-Netzwerkanmeldedaten wie der Netzwerkschlüssel übertragen.

In diesem Leitfaden wird die Inbetriebnahme des Mesh-Netzwerks mit Mesh-Technologie ohne einen externen Kommissar oder Border Router behandelt. Informationen zur Verwendung eines externen Kommissars finden Sie unter Externe Thread-Inbetriebnahme.

Ein Beispiel für die Inbetriebnahme mit virtuellen Geräten finden Sie im OpenThread-Simulations-Codelab.

Rollen aktivieren

Verwenden Sie die folgenden cmake-Optionen, um die Rollen „Kommission“ und „Joiner“ zu aktivieren:

Option Beschreibung
-DOT_COMMISSIONER=ON Aktiviert die Rolle „Kommissar“
-DOT_JOINER=ON Aktiviert die Rolle „Joiner“

So erstellen Sie beispielsweise die Beispielplattform CC2538, die nur als Joiner verwendet wird:

./script/build -DOT_JOINER=ON

Verwenden Sie für jedes Binärprogramm das gewünschte Gerät. Ein Gerät fungiert als Kommissar, das andere als Joiner.

Spezifische Anweisungen zum Erstellen und Flashen von unterstützten Plattformen finden Sie im OpenThread-Repository der einzelnen Plattformen. Informationen dazu, wie Sie das Repository finden, finden Sie auf der GitHub-Website zu OpenThread.

Netzwerk erstellen

Erstellen Sie auf dem Gerät, das als Beauftragter fungiert, ein Netzwerk:

dataset init new
Done
dataset
Active Timestamp: 1
Channel: 13
Channel Mask: 07fff800
Ext PAN ID: d63e8e3e495ebbc3
Mesh Local Prefix: fd3d:b50b:f96d:722d/64
Network Key: dfd34f0f05cad978ec4e32b0413038ff
Network Name: OpenThread-8f28
PAN ID: 0x8f28
PSKc: c23a76e98f1a6483639b1ac1271e2e27
Security Policy: 0, onrcb
Done
dataset commit active
Done
ifconfig up
Done
thread start
Done

Warten Sie einige Sekunden und prüfen Sie, ob das Gerät ein Thread-Leader ist:

state
leader
Done

Rolle „Kommissionsmitglied“ starten

Starten Sie auf demselben Gerät die Rolle „Kommissar“:

commissioner start
Done

Verwenden Sie den Platzhalter *, damit jeder Joiner mit den angegebenen Joiner-Anmeldedaten auf das Netzwerk übertragen werden kann. Die Joiner-Anmeldedaten werden zusammen mit der erweiterten PAN-ID und dem Netzwerknamen verwendet, um den vorinstallierten Schlüssel für das Gerät (PSKd) zu generieren. Der PSKd wird dann zur Authentifizierung eines Geräts während der Thread-Inbetriebnahme verwendet. Die Anmeldedaten für den Joiner müssen für jedes Gerät eindeutig sein.

commissioner joiner add * J01NME
Done

Auf einen bestimmten Joiner beschränken

Wenn Sie die Inbetriebnahme auf ein bestimmtes Joiner-Gerät beschränken möchten, verwenden Sie den Parameter eui64. Dies ist der vom Gerät zugewiesene IEEE EUI-64-Parameter.

Rufen Sie auf dem Gerät, das als Joiner verwendet wird, den EUI-64 auf:

eui64
2f57d222545271f1
Done

Verwenden Sie diesen Wert anstelle des Platzhalters * im Befehl commissioner joiner auf dem Gerät des Kommissars:

commissioner joiner add 2f57d222545271f1 J01NME
Done

Join-Rolle starten

Führen Sie auf dem Gerät, das als Joiner verwendet wird, das Gerät auf die Werkseinstellungen zurück und aktivieren Sie dann die Rolle „Joiner“ mit denselben Anmeldedaten für den Joiner:

factoryreset
ifconfig up
Done
joiner start J01NME
Done

Warten Sie einige Sekunden, bis die Bestätigung abgeschlossen ist:

Join success!

Das Joiner-Gerät hat sich erfolgreich beim Kommissar authentifiziert und die Anmeldedaten für das Thread-Netzwerk erhalten.

Starten Sie Thread jetzt auf dem Joiner-Gerät:

thread start
Done

Authentifizierung validieren

Prüfen Sie den Status des Joiner-Geräts, um zu prüfen, ob es dem Netzwerk beigetreten ist. Innerhalb von zwei Minuten wechselt der Status vom untergeordneten zum Router:

state
child
Done
...
state
router
Done