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

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

مفوض ونجار

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

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

يشمل هذا الدليل التكليف الأساسي والمتداخل بدون الاستعانة بمفوض خارجي أو جهاز توجيه الحدود. لمعرفة كيفية استخدام مفوض خارجي، راجع التفويض الخارجي لسلسلة المحادثات.

وللحصول على مثال على التفويض باستخدام الأجهزة الافتراضية، يمكنك الاطّلاع على درس تطبيقي حول الترميز في 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

التقييد على رابط معين

لحصر التفويض على جهاز ضم معيّن، استخدِم المَعلمة 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!

تمت مصادقة الجهاز المشترك بنجاح مع المفوّض وتلقى بيانات اعتماد شبكة Thread.

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

thread start
Done

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

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

state
child
Done
...
state
router
Done