অন-মেশ কমিশনিং, অন-মেশ কমিশনিং

গিটহাবে উৎস দেখুন

কমিশনার এবং যোগদানকারী

কমিশনিংয়ের জন্য কমিশনার ভূমিকা সহ একটি ডিভাইস এবং যোগদানকারী ভূমিকা সহ একটি ডিভাইসের প্রয়োজন হয়। কমিশনার হলো একটি বিদ্যমান থ্রেড নেটওয়ার্কের একটি থ্রেড ডিভাইস, অথবা থ্রেড নেটওয়ার্কের বাইরের এমন একটি ডিভাইস (যেমন একটি মোবাইল ফোন) যা কমিশনারের ভূমিকা পালন করে। যোগদানকারী হলো সেই ডিভাইস যা থ্রেড নেটওয়ার্কে যোগদান করতে ইচ্ছুক।

একটি থ্রেড কমিশনার নেটওয়ার্কে কোনো ডিভাইসকে প্রমাণীকরণের জন্য ব্যবহৃত হয়। এটি নেটওয়ার্ক কী-এর মতো থ্রেড নেটওয়ার্ক ক্রেডেনশিয়াল হস্তান্তর করে না বা সেগুলোর দখল নেয় না।

এই নির্দেশিকাটি কোনো বাহ্যিক কমিশনার বা বর্ডার রাউটার ছাড়াই বেসিক, অন-মেশ কমিশনিং নিয়ে আলোচনা করে। কীভাবে একটি বাহ্যিক কমিশনার ব্যবহার করতে হয় তা জানতে, এক্সটার্নাল থ্রেড কমিশনিং দেখুন।

ভার্চুয়াল ডিভাইস ব্যবহার করে কমিশনিং-এর একটি উদাহরণের জন্য ওপেনথ্রেড সিমুলেশন কোডল্যাব দেখুন।

ভূমিকাগুলি সক্ষম করুন

কমিশনার এবং জয়নার রোলগুলো সক্রিয় করতে, নিম্নলিখিত cmake অপশনগুলো ব্যবহার করুন:

বিকল্প বর্ণনা
-DOT_COMMISSIONER=ON কমিশনারের ভূমিকা সক্ষম করে
-DOT_JOINER=ON যোগদানকারী ভূমিকা সক্ষম করে

উদাহরণস্বরূপ, শুধুমাত্র জয়নার হিসেবে ব্যবহারের জন্য CC2538 উদাহরণ প্ল্যাটফর্মটি তৈরি করতে:

./script/build -DOT_JOINER=ON

প্রতিটি বাইনারি কাঙ্ক্ষিত ডিভাইসে ফ্ল্যাশ করুন। একটি ডিভাইস কমিশনার এবং অন্যটি জয়নার হিসেবে কাজ করে।

সমর্থিত প্ল্যাটফর্মগুলো বিল্ড ও ফ্ল্যাশ করার নির্দিষ্ট নির্দেশাবলী প্রতিটি প্ল্যাটফর্মের ওপেনথ্রেড রিপোজিটরিতে পাওয়া যাবে। রিপোজিটরিটি খুঁজে পেতে ওপেনথ্রেড গিটহাব অর্গানাইজেশন দেখুন।

একটি নেটওয়ার্ক তৈরি করুন

কমিশনার হিসেবে কাজ করা ডিভাইসটিতে একটি নেটওয়ার্ক তৈরি করুন:

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

নির্দিষ্ট জয়নার ক্রেডেনশিয়াল সহ যেকোনো জয়নারকে নেটওয়ার্কে কমিশন করার অনুমতি দিতে * ওয়াইল্ডকার্ডটি ব্যবহার করুন। ডিভাইসের জন্য প্রি-শেয়ার্ড কী (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!

জয়নার ডিভাইসটি কমিশনারের কাছে সফলভাবে নিজেকে প্রমাণ করেছে এবং থ্রেড নেটওয়ার্কের ক্রেডেনশিয়াল পেয়েছে।

এখন যোগদানকারী ডিভাইসে থ্রেড শুরু করুন:

thread start
Done

প্রমাণীকরণ যাচাই করুন

জয়নার ডিভাইসটি নেটওয়ার্কে যুক্ত হয়েছে কিনা তা যাচাই করতে এর অবস্থা পরীক্ষা করুন। দুই মিনিটের মধ্যে, অবস্থাটি চাইল্ড থেকে রাউটারে পরিবর্তিত হয়:

state
child
Done
...
state
router
Done
,

গিটহাবে উৎস দেখুন

কমিশনার এবং যোগদানকারী

কমিশনিংয়ের জন্য কমিশনার ভূমিকা সহ একটি ডিভাইস এবং যোগদানকারী ভূমিকা সহ একটি ডিভাইসের প্রয়োজন হয়। কমিশনার হলো একটি বিদ্যমান থ্রেড নেটওয়ার্কের একটি থ্রেড ডিভাইস, অথবা থ্রেড নেটওয়ার্কের বাইরের এমন একটি ডিভাইস (যেমন একটি মোবাইল ফোন) যা কমিশনারের ভূমিকা পালন করে। যোগদানকারী হলো সেই ডিভাইস যা থ্রেড নেটওয়ার্কে যোগদান করতে ইচ্ছুক।

একটি থ্রেড কমিশনার নেটওয়ার্কে কোনো ডিভাইসকে প্রমাণীকরণের জন্য ব্যবহৃত হয়। এটি নেটওয়ার্ক কী-এর মতো থ্রেড নেটওয়ার্ক ক্রেডেনশিয়াল হস্তান্তর করে না বা সেগুলোর দখল নেয় না।

এই নির্দেশিকাটি কোনো বাহ্যিক কমিশনার বা বর্ডার রাউটার ছাড়াই বেসিক, অন-মেশ কমিশনিং নিয়ে আলোচনা করে। কীভাবে একটি বাহ্যিক কমিশনার ব্যবহার করতে হয় তা জানতে, এক্সটার্নাল থ্রেড কমিশনিং দেখুন।

ভার্চুয়াল ডিভাইস ব্যবহার করে কমিশনিং-এর একটি উদাহরণের জন্য ওপেনথ্রেড সিমুলেশন কোডল্যাব দেখুন।

ভূমিকাগুলি সক্ষম করুন

কমিশনার এবং জয়নার রোলগুলো সক্রিয় করতে, নিম্নলিখিত cmake অপশনগুলো ব্যবহার করুন:

বিকল্প বর্ণনা
-DOT_COMMISSIONER=ON কমিশনারের ভূমিকা সক্ষম করে
-DOT_JOINER=ON যোগদানকারী ভূমিকা সক্ষম করে

উদাহরণস্বরূপ, শুধুমাত্র জয়নার হিসেবে ব্যবহারের জন্য CC2538 উদাহরণ প্ল্যাটফর্মটি তৈরি করতে:

./script/build -DOT_JOINER=ON

প্রতিটি বাইনারি কাঙ্ক্ষিত ডিভাইসে ফ্ল্যাশ করুন। একটি ডিভাইস কমিশনার এবং অন্যটি জয়নার হিসেবে কাজ করে।

সমর্থিত প্ল্যাটফর্মগুলো বিল্ড ও ফ্ল্যাশ করার নির্দিষ্ট নির্দেশাবলী প্রতিটি প্ল্যাটফর্মের ওপেনথ্রেড রিপোজিটরিতে পাওয়া যাবে। রিপোজিটরিটি খুঁজে পেতে ওপেনথ্রেড গিটহাব অর্গানাইজেশন দেখুন।

একটি নেটওয়ার্ক তৈরি করুন

কমিশনার হিসেবে কাজ করা ডিভাইসটিতে একটি নেটওয়ার্ক তৈরি করুন:

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

নির্দিষ্ট জয়নার ক্রেডেনশিয়াল সহ যেকোনো জয়নারকে নেটওয়ার্কে কমিশন করার অনুমতি দিতে * ওয়াইল্ডকার্ডটি ব্যবহার করুন। ডিভাইসের জন্য প্রি-শেয়ার্ড কী (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!

জয়নার ডিভাইসটি কমিশনারের কাছে সফলভাবে নিজেকে প্রমাণ করেছে এবং থ্রেড নেটওয়ার্কের ক্রেডেনশিয়াল পেয়েছে।

এখন যোগদানকারী ডিভাইসে থ্রেড শুরু করুন:

thread start
Done

প্রমাণীকরণ যাচাই করুন

জয়নার ডিভাইসটি নেটওয়ার্কে যুক্ত হয়েছে কিনা তা যাচাই করতে এর অবস্থা পরীক্ষা করুন। দুই মিনিটের মধ্যে, অবস্থাটি চাইল্ড থেকে রাউটারে পরিবর্তিত হয়:

state
child
Done
...
state
router
Done