التفويض على الإنترنت

عرض المصدر على GitHub

المفوَّض والمنضِم

يتطلب تفعيل الخدمة جهازًا واحدًا لديه دور "المفوّض" وجهازًا واحدًا لديه دور "المشارِك". يكون المفوّض إما جهاز Thread في شبكة Thread حالية، أو جهازًا خارجيًا عن شبكة Thread (مثل هاتف جوّال) يؤدي دور المفوّض. Joiner هو الجهاز الذي يريد الانضمام إلى شبكة Thread.

يُستخدَم مفوّض Thread لمصادقة جهاز على الشبكة. ولا يتم نقل بيانات اعتماد شبكة Thread أو امتلاكها، مثل مفتاح الشبكة.

يتناول هذا الدليل عملية الإعداد الأساسية على الشبكة بدون استخدام "مفوّض" خارجي أو "موجه حدودي". للتعرّف على كيفية استخدام مفوّض خارجي، يُرجى الاطّلاع على مقالة تفويض مناقشة خارجي.

للاطّلاع على مثال على عملية الإعداد باستخدام الأجهزة الافتراضية، يمكنك الاطّلاع على Codelab محاكاة OpenThread.

تفعيل الأدوار

لتفعيل دورَي "المفوّض" و"المشارِك"، استخدِم خيارات cmake التالية:

Option الوصف
-DOT_COMMISSIONER=ON تفعيل دور "المفوّض"
-DOT_JOINER=ON تفعيل دور "المشارِك"

على سبيل المثال، لإنشاء منصة CC2538 كمثال للاستخدام كأداة الانضمام فقط:

./script/build -DOT_JOINER=ON

فلاش كل ملف ثنائي على الجهاز المطلوب يعمل أحد الجهازَين كمفوّض، ويستخدم الآخر كجهاز ربط.

يمكن العثور على تعليمات محدّدة حول إنشاء المنصات المتوافقة وفلاشها في مستودع OpenThread لكل منصة. يمكنك الاطّلاع على مؤسسة OpenThread على GitHub للعثور على المستودع.

إنشاء شبكة

أنشئ شبكة على الجهاز الذي يعمل كمفوّض:

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

انتظِر بضع ثوانٍ وتأكَّد من أنّ الجهاز أصبح قائد سلسلة المحادثات:

state
leader
Done

بدء دور "المفوّض"

على الجهاز نفسه، ابدأ دور "المفوّض":

commissioner start
Done

استخدِم العنصر البديل * للسماح لأيّ "مشترِك" لديه بيانات اعتماد "المشترِك" المحدّدة بالحصول على عمولة في الشبكة. يتم استخدام بيانات اعتماد المُشارِك (بالإضافة إلى معرّف PAN الموسّع واسم الشبكة) لإنشاء المفتاح المشترَك مسبقًا للجهاز (PSKd). يتم بعد ذلك استخدام PSKd لمصادقة الجهاز أثناء تفويض سلسلة التعليمات. يجب أن تكون "بيانات اعتماد الانضمام" فريدة لكل جهاز.

commissioner joiner add * J01NME
Done

حصرها بمستخدم معيّن

لتقييد عملية الإعداد على جهاز Joiner معيّن، استخدِم المَعلمة eui64 ، وهي معرّف IEEE EUI-64 الذي تمّ تعيينه للجهاز من المصنع.

على الجهاز الذي يعمل كجهاز ربط، احصل على معرّف EUI-64:

eui64
2f57d222545271f1
Done

استخدِم هذه القيمة بدلاً من حرف البدل * في الأمر commissioner joiner على جهاز المفوّض:

commissioner joiner add 2f57d222545271f1 J01NME
Done

بدء دور "الانضمام"

على الجهاز الذي يعمل كجهاز "مُدرِج"، عليك إعادة ضبطه على الإعدادات الأصلية، ثم تفعيل دور "المُدرِج" باستخدام بيانات اعتماد "المُدرِج" نفسها المحدّدة في "المفوّض":

factoryreset
ifconfig up
Done
joiner start J01NME
Done

يُرجى الانتظار بضع ثوانٍ للتأكيد:

Join success!

نجح جهاز Joiner في مصادقة نفسه مع المفوض وتلقى بيانات اعتماد Thread Network.

بدء سلسلة المحادثات الآن على جهاز الانضمام:

thread start
Done

التحقّق من المصادقة

تحقق من الحالة على جهاز Joiner للتحقق من أنه انضم إلى الشبكة. خلال دقيقتين، تنتقل الحالة من جهاز الطفل إلى جهاز التوجيه:

state
child
Done
...
state
router
Done