1. ভূমিকা
থ্রেড বর্ডার রাউটার কি?
থ্রেড হল একটি আইপি-ভিত্তিক লো-পাওয়ার ওয়্যারলেস মেশ নেটওয়ার্কিং প্রোটোকল যা সুরক্ষিত ডিভাইস-টু-ডিভাইস এবং ডিভাইস-টু-ক্লাউড যোগাযোগ সক্ষম করে। থ্রেড নেটওয়ার্ক ব্যর্থতার একক পয়েন্ট এড়াতে টপোলজি পরিবর্তনের সাথে মানিয়ে নিতে পারে।
একটি থ্রেড বর্ডার রাউটার একটি থ্রেড নেটওয়ার্ককে অন্যান্য IP-ভিত্তিক নেটওয়ার্কের সাথে সংযুক্ত করে, যেমন Wi-Fi বা ইথারনেট। একটি থ্রেড নেটওয়ার্কে অন্যান্য নেটওয়ার্কের সাথে সংযোগ করার জন্য একটি বর্ডার রাউটার প্রয়োজন। একটি থ্রেড বর্ডার রাউটার ন্যূনতমভাবে নিম্নলিখিত ফাংশন সমর্থন করে:
- থ্রেড এবং ওয়াই-ফাই/ইথারনেট নেটওয়ার্কের মধ্যে দ্বিমুখী আইপি সংযোগ।
- mDNS (Wi-Fi/ইথারনেট লিঙ্কে) এবং SRP (থ্রেড নেটওয়ার্কে) এর মাধ্যমে দ্বিমুখী পরিষেবা আবিষ্কার।
- থ্রেড-ওভার-ইনফ্রাস্ট্রাকচার যা আইপি-ভিত্তিক লিঙ্কগুলিতে থ্রেড পার্টিশনগুলিকে একত্রিত করে।
- বহিরাগত থ্রেড কমিশনিং (উদাহরণস্বরূপ, একটি মোবাইল ফোন) প্রমাণীকরণ এবং একটি থ্রেড নেটওয়ার্কে একটি থ্রেড ডিভাইস যোগদান করার জন্য।
Google দ্বারা প্রকাশিত OpenThread Border Router (OTBR) হল থ্রেড বর্ডার রাউটারের একটি ওপেন-সোর্স বাস্তবায়ন।
আপনি কি নির্মাণ করবেন
এই কোডল্যাবে, আপনি একটি থ্রেড বর্ডার রাউটার সেট আপ করতে যাচ্ছেন এবং বর্ডার রাউটারের মাধ্যমে আপনার মোবাইল ফোনটিকে একটি থ্রেড এন্ড ডিভাইসের সাথে সংযুক্ত করতে যাচ্ছেন।
আপনি কি শিখবেন
- কিভাবে OTBR সেট আপ করবেন
- কিভাবে OTBR দিয়ে একটি থ্রেড নেটওয়ার্ক গঠন করবেন
- SRP বৈশিষ্ট্য সহ একটি OpenThread CLI ডিভাইস কীভাবে তৈরি করবেন
- কিভাবে SRP এর সাথে একটি পরিষেবা নিবন্ধন করবেন
- কীভাবে একটি থ্রেড এন্ড ডিভাইস আবিষ্কার করবেন এবং পৌঁছাবেন।
আপনি কি প্রয়োজন হবে
- একটি রাস্পবেরি পাই 3/4 ডিভাইস এবং কমপক্ষে 8 জিবি ক্ষমতা সহ একটি SD কার্ড৷
- 2 নর্ডিক সেমিকন্ডাক্টর nRF52840 ডেভ বোর্ড।
- IPv6 রাউটার বিজ্ঞাপন গার্ড ছাড়া একটি Wi-Fi AP রাউটারে সক্রিয়।
- কমপক্ষে iOS 14 সহ একটি iOS ফোন বা কমপক্ষে Android 8.1 সহ Android ফোন।
2. OTBR সেটআপ করুন
রাস্পবেরি পাই সেটআপ করুন
raspberrypi.org- এর নির্দেশাবলী অনুসরণ করে rpi-imager
টুলের সাহায্যে একটি নতুন রাস্পবেরি পাই ডিভাইস সেট আপ করা সহজ (টুলটিতে সর্বশেষ Raspberry Pi OS ব্যবহার করার পরিবর্তে, 2021-05-07-raspios-buster-armhf ডাউনলোড করুন - নিজের দ্বারা লাইট )। এই কোডল্যাবে মোবাইল ফোনের ধাপগুলি সম্পূর্ণ করতে, আপনাকে রাস্পবেরি পাইকে একটি Wi-Fi AP এর সাথে সংযুক্ত করতে হবে৷ বেতার সংযোগ সেট আপ করতে এই নির্দেশিকা অনুসরণ করুন. SSH এর সাথে রাস্পবেরি পাইতে লগ ইন করা সুবিধাজনক, আপনি এখানে নির্দেশাবলী পেতে পারেন।
OTBR কোড পান
আপনার রাস্পবেরি পাইতে লগ ইন করুন এবং গিটহাব থেকে ot-br-posix
ক্লোন করুন:
$ git clone https://github.com/openthread/ot-br-posix.git --depth 1
OTBR তৈরি এবং ইনস্টল করুন
OTBR এর দুটি স্ক্রিপ্ট রয়েছে যা বুটস্ট্র্যাপ করে এবং থ্রেড বর্ডার রাউটার সেট আপ করে:
$ cd ot-br-posix $ ./script/bootstrap $ INFRA_IF_NAME=wlan0 ./script/setup
OTBR একটি থ্রেড ইন্টারফেস এবং অবকাঠামো নেটওয়ার্ক ইন্টারফেস (যেমন Wi-Fi/ইথারনেট) উভয় ক্ষেত্রেই কাজ করে যা INFRA_IF_NAME
এর সাথে নির্দিষ্ট করা আছে। থ্রেড ইন্টারফেসটি OTBR নিজেই তৈরি করেছে এবং ডিফল্টরূপে wpan0
নামকরণ করা হয়েছে এবং INFRA_IF_NAME
স্পষ্টভাবে উল্লেখ না থাকলে অবকাঠামো ইন্টারফেসের একটি ডিফল্ট মান wlan0
থাকে। যদি আপনার রাস্পবেরি পাই একটি ইথারনেট কেবল দ্বারা সংযুক্ত থাকে, তাহলে ইথারনেট ইন্টারফেসের নাম উল্লেখ করুন (যেমন eth0
):
$ INFRA_IF_NAME=eth0 ./script/setup
OTBR সফলভাবে ইনস্টল করা হয়েছে কিনা তা পরীক্ষা করুন:
$ sudo service otbr-agent status ● otbr-agent.service - Border Router Agent Loaded: loaded (/lib/systemd/system/otbr-agent.service; enabled; vendor preset: enabled) Active: activating (auto-restart) (Result: exit-code) since Mon 2021-03-01 05:43:38 GMT; 2s ago Process: 2444 ExecStart=/usr/sbin/otbr-agent $OTBR_AGENT_OPTS (code=exited, status=2) Main PID: 2444 (code=exited, status=2)
এটি প্রত্যাশিত যে otbr-agent
পরিষেবা সক্রিয় নয়, কারণ এটি চালানোর জন্য একটি RCP
চিপ প্রয়োজন৷
পরিবর্তনগুলি কার্যকর করতে রাস্পবেরি পাই পুনরায় বুট করুন।
RCP ফার্মওয়্যার তৈরি এবং ফ্ল্যাশ করুন
OTBR রেডিও কো-প্রসেসর (RCP) মোডে একটি 15.4 রেডিও চিপ সমর্থন করে। এই মোডে, OpenThread স্ট্যাক হোস্ট সাইডে চলছে এবং IEEE802.15.4 ট্রান্সসিভারের উপর ফ্রেম প্রেরণ/গ্রহণ করে।
একটি nRF52840 RCP ডিভাইস তৈরি এবং ফ্ল্যাশ করতে nRF52840 বোর্ড এবং OpenThread কোডল্যাব সহ একটি থ্রেড নেটওয়ার্ক তৈরি করুন এর ধাপ 4 অনুসরণ করুন:
$ script/build nrf52840 USB_trans
OTBR শুরু করুন এবং স্থিতি যাচাই করুন
আপনার রাস্পবেরি পাইতে nRF52840 বোর্ড সংযুক্ত করুন এবং otbr-agent
পরিষেবা শুরু করুন:
$ sudo service otbr-agent restart
যাচাই করুন যে otbr-agent
পরিষেবা সক্রিয় আছে:
$ sudo service otbr-agent status ● otbr-agent.service - Border Router Agent Loaded: loaded (/lib/systemd/system/otbr-agent.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2021-03-01 05:46:26 GMT; 2s ago Main PID: 2997 (otbr-agent) Tasks: 1 (limit: 4915) CGroup: /system.slice/otbr-agent.service └─2997 /usr/sbin/otbr-agent -I wpan0 -B wlan0 spinel+hdlc+uart:///dev/ttyACM0 Mar 01 05:46:26 raspberrypi otbr-agent[2997]: Stop publishing service Mar 01 05:46:26 raspberrypi otbr-agent[2997]: [adproxy] Stopped Mar 01 05:46:26 raspberrypi otbr-agent[2997]: PSKc is not initialized Mar 01 05:46:26 raspberrypi otbr-agent[2997]: Check if PSKc is initialized: OK Mar 01 05:46:26 raspberrypi otbr-agent[2997]: Initialize OpenThread Border Router Agent: OK Mar 01 05:46:26 raspberrypi otbr-agent[2997]: Border router agent started. Mar 01 05:46:26 raspberrypi otbr-agent[2997]: [INFO]-CORE----: Notifier: StateChanged (0x00038200) [NetData PanId NetName ExtPanId] Mar 01 05:46:26 raspberrypi otbr-agent[2997]: [INFO]-PLAT----: Host netif is down
3. একটি থ্রেড নেটওয়ার্ক গঠন করুন
একটি ot-ctl
কমান্ড আছে যা otbr-agent
পরিষেবা নিয়ন্ত্রণ করতে ব্যবহার করা যেতে পারে। ot-ctl
সমস্ত OpenThread CLI কমান্ড গ্রহণ করে, আরও বিস্তারিত জানার জন্য OpenThread CLI গাইড দেখুন।
OTBR এর সাথে একটি থ্রেড নেটওয়ার্ক গঠন করুন:
$ sudo ot-ctl dataset init new Done $ sudo ot-ctl dataset commit active Done $ sudo ot-ctl ifconfig up Done $ sudo ot-ctl thread start Done
কয়েক সেকেন্ড অপেক্ষা করুন, আমরা দেখতে পাব যে OTBR থ্রেড leader
হিসেবে কাজ করছে এবং থ্রেড নেটওয়ার্ক ডেটাতে একটি off-mesh-routable
(OMR) উপসর্গ রয়েছে:
$ sudo ot-ctl state leader Done $ sudo ot-ctl netdata show Prefixes: Prefixes: fd76:a5d1:fcb0:1707::/64 paos med 4000 Routes: fd49:7770:7fc5:0::/64 s med 4000 Services: 44970 5d c000 s 4000 44970 01 9a04b000000e10 s 4000 Done $ sudo ot-ctl ipaddr fda8:5ce9:df1e:6620:0:ff:fe00:fc11 fda8:5ce9:df1e:6620:0:0:0:fc38 fda8:5ce9:df1e:6620:0:ff:fe00:fc10 fd76:a5d1:fcb0:1707:f3c7:d88c:efd1:24a9 fda8:5ce9:df1e:6620:0:ff:fe00:fc00 fda8:5ce9:df1e:6620:0:ff:fe00:4000 fda8:5ce9:df1e:6620:3593:acfc:10db:1a8d fe80:0:0:0:a6:301c:3e9f:2f5b Done
4. SRP ক্লায়েন্ট এন্ড ডিভাইস সেট আপ করুন
OT CLI তৈরি এবং ফ্ল্যাশ করুন
একটি nRF52840 CLI শেষ ডিভাইস তৈরি এবং ফ্ল্যাশ করতে nRF52840 বোর্ড এবং OpenThread কোডল্যাব সহ একটি থ্রেড নেটওয়ার্ক তৈরি করুন এর ধাপ 5 অনুসরণ করুন।
কিন্তু OT_COMMISSIONER
এবং OT_JOINER
সক্ষম করার পরিবর্তে, CLI নোডের জন্য OT_SRP_CLIENT
এবং OT_ECDSA
বৈশিষ্ট্য প্রয়োজন৷
সুতরাং সম্পূর্ণ বিল্ড আমন্ত্রণটি এইরকম হওয়া উচিত:
$ script/build nrf52840 USB_trans -DOT_SRP_CLIENT=ON -DOT_ECDSA=ON
OTBR নেটওয়ার্কে যোগ দিন
otbr-agent
পরিষেবা দ্বারা তৈরি থ্রেড নেটওয়ার্কে যোগ দিতে, আমাদের OTBR ডিভাইস থেকে সক্রিয় অপারেশনাল ডেটাসেট পেতে হবে। আসুন otbr-agent
কমান্ড লাইনে ফিরে যাই এবং সক্রিয় ডেটাসেট পাই:
$ sudo ot-ctl dataset active -x 0e080000000000010000000300001235060004001fffe002083d3818dc1c8db63f0708fda85ce9df1e662005101d81689e4c0a32f3b4aa112994d29692030f4f70656e5468726561642d35326532010252e204103f23f6b8875d4b05541eeb4f9718d2f40c0302a0ff Done
এসআরপি ক্লায়েন্ট নোড স্ক্রীন সেশনে ফিরে যান এবং সক্রিয় ডেটাসেট সেট করুন:
> dataset set active 0e080000000000010000000300001235060004001fffe002083d3818dc1c8db63f0708fda85ce9df1e662005101d81689e4c0a32f3b4aa112994d29692030f4f70656e5468726561642d35326532010252e204103f23f6b8875d4b05541eeb4f9718d2f40c0302a0ff Done
তারপর, থ্রেড ইন্টারফেস শুরু করুন:
> ifconfig up Done > thread start Done
কয়েক সেকেন্ড অপেক্ষা করুন এবং থ্রেড নেটওয়ার্কে যোগদান সফল হয়েছে কিনা তা যাচাই করুন:
> state child Done > netdata show Prefixes: fd76:a5d1:fcb0:1707::/64 paos med 4000 Routes: fd49:7770:7fc5:0::/64 s med 4000 Services: 44970 5d c000 s 4000 44970 01 9a04b000000e10 s 4000 Done > ipaddr fd76:a5d1:fcb0:1707:d3dc:26d3:f70b:b927 fda8:5ce9:df1e:6620:0:ff:fe00:4001 fda8:5ce9:df1e:6620:ed74:123:cc5d:74ba fe80:0:0:0:d4a9:39a0:abce:b02e Done
নিশ্চিত করুন যে নেটওয়ার্ক ডেটা OTBR-এ মুদ্রিত ডেটার সাথে মেলে৷ আমরা এখন OTBR এর OMR ঠিকানা পিং করতে পারি:
> ping fd76:a5d1:fcb0:1707:f3c7:d88c:efd1:24a9 Done > 16 bytes from fd76:a5d1:fcb0:1707:f3c7:d88c:efd1:24a9: icmp_seq=1 hlim=64 time=49ms
5. শেষ ডিভাইসে পরিষেবাটি প্রকাশ করুন৷
mDNS ব্যাপকভাবে লিংক-লোকালে DNS-SD পরিষেবা প্রকাশের জন্য ব্যবহৃত হয়েছে। কিন্তু মাল্টিকাস্ট বার্তাগুলি খুব বেশি ব্যান্ডউইথ ব্যবহার করে এবং কম পাওয়ার ডিভাইসগুলির জন্য দ্রুত ব্যাটারি নিঃশেষ করে দেয়। থ্রেড ইউনিকাস্ট এসআরপি প্রোটোকল ব্যবহার করে বর্ডার রাউটারের সাথে তাদের পরিষেবা নিবন্ধন করে এবং ওয়াই-ফাই বা ইথারনেট লিঙ্কে পরিষেবার বিজ্ঞাপন দেওয়ার জন্য বর্ডার রাউটারের উপর নির্ভর করে।
আমরা srp client
কমান্ড দিয়ে একটি পরিষেবা নিবন্ধন করতে পারি।
এসআরপি ক্লায়েন্ট নোড স্ক্রিন সেশনে যান এবং এসআরপি ক্লায়েন্টটি স্বয়ংক্রিয়ভাবে শুরু করুন:
> srp client autostart enable Done
Wi-Fi/ইথারনেট লিঙ্কে বিজ্ঞাপন দেওয়া হোস্টনাম সেট করুন:
> srp client host name ot-host Done
Wi-Fi/ইথারনেট লিঙ্কে থাকা একটি ডিভাইসের জন্য একটি থ্রেড এন্ড ডিভাইসে পৌঁছানোর জন্য, শেষ ডিভাইসের OMR ঠিকানার বিজ্ঞাপন দিতে হবে:
> srp client host address fd76:a5d1:fcb0:1707:d3dc:26d3:f70b:b927 Done
শেষে, একটি জাল _ipps._tcp
পরিষেবা নিবন্ধন করুন:
> srp client service add ot-service _ipps._tcp 12345 Done
কয়েক সেকেন্ড অপেক্ষা করুন এবং আমরা নিবন্ধিত পরিষেবা দেখতে সক্ষম হব:
> srp client service instance:"ot-service", name:"_ipps._tcp", state:Registered, port:12345, priority:0, weight:0 Done
আমরা সমস্ত সেটআপের কাজ সম্পন্ন করেছি এবং _ipps._tcp
পরিষেবাটি Wi-Fi/ইথারনেট লিঙ্কে বিজ্ঞাপন দেওয়া উচিত ছিল৷ এটি এখনই শেষ ডিভাইসটি আবিষ্কার করার এবং পৌঁছানোর সময়!
6. পরিষেবাটি আবিষ্কার করুন
একটি মোবাইল ফোন দিয়ে পরিষেবাটি আবিষ্কার করুন
আমরা অ্যান্ড্রয়েড ফোনের সাথে mDNS পরিষেবাগুলি আবিষ্কার করতে পরিষেবা ব্রাউজার অ্যাপ ব্যবহার করি, iOS মোবাইল ডিভাইসগুলির জন্য একটি সমতুল্য অ্যাপও পাওয়া যেতে পারে। অ্যাপটি খুলুন এবং পরিষেবাটি _ipps._tcp
দেখা উচিত।
একটি লিনাক্স হোস্টের সাথে পরিষেবাটি আবিষ্কার করুন
আপনি যদি অন্য লিনাক্স হোস্ট থেকে পরিষেবাটি আবিষ্কার করতে চান তবে আপনি avahi-browse
কমান্ডটি ব্যবহার করতে পারেন।
avahi-daemon
এবং avahi-utils
ইনস্টল করুন:
$ sudo apt-get install -y avahi-daemon avahi-utils
পরিষেবাটি সমাধান করুন:
$ sudo service avahi-daemon start # Ensure the avahi daemon is started. $ avahi-browse -r _ipps._tcp + wlan0 IPv6 ot-service Secure Internet Printer local = wlan0 IPv6 ot-service Secure Internet Printer local hostname = [ot-host.local] address = [fd76:a5d1:fcb0:1707:d3dc:26d3:f70b:b927] port = [12345] txt = [] ...
একটি macOS হোস্টের সাথে পরিষেবাটি আবিষ্কার করুন৷
আপনি পরিষেবাটি সমাধান করতে macOS-এ dns-sd
ব্যবহার করতে পারেন:
$ dns-sd -Z _ipps._tcp local. Browsing for _ipps._tcp.local. DATE: ---Sun 14 Mar 2021--- 21:31:42.125 ...STARTING... ; To direct clients to browse a different domain, substitute that domain in place of '@' lb._dns-sd._udp PTR @ ; In the list of services below, the SRV records will typically reference dot-local Multicast DNS names. ; When transferring this zone file data to your unicast DNS server, you'll need to replace those dot-local ; names with the correct fully-qualified (unicast) domain name of the target host offering the service. _ipps._tcp PTR ot-service._ipps._tcp ot-service._ipps._tcp SRV 0 0 12345 ot-host.local. ; Replace with unicast FQDN of target host ot-service._ipps._tcp TXT "" ...
7. শেষ ডিভাইসটি পিং করুন
মোবাইল ফোন থেকে পিং
উদাহরণ হিসাবে পিক্সেল ফোনটি ধরুন, আমরা পরিষেবা ব্রাউজার অ্যাপে পরিষেবার উদাহরণের বিশদ পৃষ্ঠায় পূর্বে নিবন্ধিত পরিষেবা "ot-service" এর OMR ঠিকানা খুঁজে পেতে পারি।
আমরা এখন অন্য নেটওয়ার্ক বিশ্লেষক অ্যাপ দিয়ে OMR ঠিকানাটি পিং করতে পারি।
দুর্ভাগ্যবশত, নেটওয়ার্ক বিশ্লেষক অ্যাপের অ্যান্ড্রয়েড সংস্করণ পিং ইউটিলিটির জন্য mDNS প্রশ্ন সমর্থন করে না এবং আমরা সরাসরি হোস্টনাম ot-host.local
পিং করতে পারি না (আমরা অ্যাপের iOS সংস্করণের সাথে হোস্টনামটি পিং করতে পারি)।
একটি Linux/macOS হোস্ট থেকে পিং করুন
থ্রেড বর্ডার রাউটার Wi-Fi/ইথারনেট লিঙ্কে প্রিফিক্স (প্রিফিক্স ইনফরমেশন অপশনের মাধ্যমে) এবং রুট (রুট ইনফরমেশন অপশনের মাধ্যমে) বিজ্ঞাপনের জন্য ICMPv6 রাউটার বিজ্ঞাপন (RA) পাঠায়।
লিনাক্স হোস্ট প্রস্তুত করুন
আপনার হোস্টে RA এবং RIO সক্রিয় আছে তা নিশ্চিত করা গুরুত্বপূর্ণ:
-
net.ipv6.conf.wlan0.accept_ra
ip ফরওয়ার্ডিং সক্ষম না থাকলে কমপক্ষে1
এবং অন্যথায়2
হওয়া উচিত। -
net.ipv6.conf.wlan0.accept_ra_rt_info_max_plen
64
এর চেয়ে ছোট হওয়া উচিত নয়।
বেশিরভাগ ডিস্ট্রিবিউশনের জন্য accept_ra
1
এ ডিফল্ট করা হয়েছে। কিন্তু অন্যান্য নেটওয়ার্ক ডেমন থাকতে পারে যা এই বিকল্পটিকে ওভাররাইড করবে (উদাহরণস্বরূপ, রাস্পবেরি পাইতে dhcpcd
0
তে accept_ra
ওভাররাইড করবে)। আপনি এর সাথে accept_ra
মান পরীক্ষা করতে পারেন:
$ sudo sysctl -n net.ipv6.conf.wlan0.accept_ra 0
এবং এর সাথে মান 1
(অথবা 2
ক্ষেত্রে আইপি ফরওয়ার্ডিং সক্ষম করা থাকলে) সেট করুন:
$ sudo sysctl -w net.ipv6.conf.wlan0.accept_ra=1 Net.ipv6.conf.wlan0.accept_ra = 1
বেশিরভাগ লিনাক্স ডিস্ট্রিবিউশনে accept_ra_rt_info_max_plen
বিকল্পটি ডিফল্ট 0
, এটির সাথে 64
এ সেট করুন:
$ sudo sysctl -w net.ipv6.conf.wlan0.accept_ra_rt_info_max_plen=64 net.ipv6.conf.wlan0.accept_ra_rt_info_max_plen = 64
হোস্ট রিবুট করার পরে পরিবর্তনটি হারিয়ে যাবে। উদাহরণস্বরূপ, স্থায়ীভাবে RIO সক্ষম করতে /etc/sysctl.conf
এ নীচের কমান্ডগুলি যুক্ত করুন:
$ net.ipv6.conf.wlan0.accept_ra_rt_info_max_plen = 64
এই কনফিগারেশনগুলি পরিবর্তন করতে অনেক দেরি হতে পারে কারণ OTBR ইতিমধ্যেই RA বার্তা পাঠাচ্ছে এবং দুটি অযাচিত RA বার্তাগুলির মধ্যে ব্যবধান কয়েকশ সেকেন্ড হতে পারে। একটি উপায় হল রাউটার সলিসিটেশন বার্তা পাঠানোর জন্য Wi-Fi AP এর সাথে সংযোগ বিচ্ছিন্ন করা এবং পুনরায় সংযোগ করা যাতে OTBR অনুরোধকৃত RA এর সাথে প্রতিক্রিয়া জানায়। আরেকটি বিকল্প হল বর্ডার রাউটারে বর্ডার রাউটিং ফাংশন পুনরায় চালু করা:
$ sudo ot-ctl br disable Done $ sudo ot-ctl br enable Done
আপনি যদি Wi-Fi পুনরায় সংযোগ করার বা ইথারনেট ইন্টারফেস পুনরায় চালু করার চেষ্টা করেন তবে নিশ্চিত করুন যে আপনার WiFi-/ইথারনেট IPv6 নেটওয়ার্ক পরিচালনার জন্য dhcpcd ব্যবহার করা হচ্ছে না। কারণ ইন্টারফেস পুনরায় চালু করার সময় dhcpcd সর্বদা accept_ra
বিকল্পটিকে ওভাররাইড করে এবং আপনার accept_ra
কনফিগারেশন হারিয়ে যাবে। dhcpcd কনফিগারেশন ফাইলে (যেমন /etc/dhcpcd.conf
) নীচের লাইনগুলিকে স্পষ্টভাবে dhcpcd-এ IPv6 অক্ষম করুন:
noipv6 noipv6rs
পরিবর্তনটি কার্যকর করতে আপনাকে রিবুট করতে হবে।
macOS হোস্ট প্রস্তুত করুন
উভয় accept_ra*
বিকল্পগুলি ডিফল্টরূপে সক্রিয় থাকে, তবে আপনাকে আপনার সিস্টেমকে কমপক্ষে macOS বিগ সুরে আপগ্রেড করতে হবে।
হোস্টনেম বা IPv6 ঠিকানাটি পিং করুন
আমরা এখন ping -6
( macOS এর জন্য ping6
) কমান্ড দিয়ে হোস্টনাম ot-host.local
পিং করতে পারি:
$ ping -6 ot-host.local. PING ot-host.local.(fd76:a5d1:fcb0:1707:d3dc:26d3:f70b:b927 (fd76:a5d1:fcb0:1707:d3dc:26d3:f70b:b927)) 56 data bytes 64 bytes from fd76:a5d1:fcb0:1707:d3dc:26d3:f70b:b927 (fd76:a5d1:fcb0:1707:d3dc:26d3:f70b:b927): icmp_seq=1 ttl=63 time=170 ms 64 bytes from fd76:a5d1:fcb0:1707:d3dc:26d3:f70b:b927 (fd76:a5d1:fcb0:1707:d3dc:26d3:f70b:b927): icmp_seq=2 ttl=63 time=64.2 ms 64 bytes from fd76:a5d1:fcb0:1707:d3dc:26d3:f70b:b927 (fd76:a5d1:fcb0:1707:d3dc:26d3:f70b:b927): icmp_seq=3 ttl=63 time=22.8 ms 64 bytes from fd76:a5d1:fcb0:1707:d3dc:26d3:f70b:b927 (fd76:a5d1:fcb0:1707:d3dc:26d3:f70b:b927): icmp_seq=4 ttl=63 time=37.7 ms 64 bytes from fd76:a5d1:fcb0:1707:d3dc:26d3:f70b:b927 (fd76:a5d1:fcb0:1707:d3dc:26d3:f70b:b927): icmp_seq=5 ttl=63 time=28.7 ms ...
এই কমান্ডটি "Name or service not known"
ত্রুটি সহ Linux হোস্টে ব্যর্থ হতে পারে। কারণ ping
কমান্ডটি ot-host.local.
mDNS প্রশ্ন সহ নাম। /etc/nsswitch.conf
খুলুন এবং hosts
দিয়ে শুরু হওয়া লাইনে mdns6_minimal
যোগ করুন:
hosts: files mdns4_minimal mdns6_minimal dns
অবশ্যই, আপনি সর্বদা সরাসরি IPv6 ঠিকানাটি পিং করতে পারেন:
$ ping -6 fd76:a5d1:fcb0:1707:d3dc:26d3:f70b:b927 PING fd76:a5d1:fcb0:1707:d3dc:26d3:f70b:b927(fd76:a5d1:fcb0:1707:d3dc:26d3:f70b:b927) 56 data bytes 64 bytes from fd76:a5d1:fcb0:1707:d3dc:26d3:f70b:b927: icmp_seq=1 ttl=63 time=32.9 ms 64 bytes from fd76:a5d1:fcb0:1707:d3dc:26d3:f70b:b927: icmp_seq=2 ttl=63 time=27.8 ms 64 bytes from fd76:a5d1:fcb0:1707:d3dc:26d3:f70b:b927: icmp_seq=3 ttl=63 time=29.9 ms 64 bytes from fd76:a5d1:fcb0:1707:d3dc:26d3:f70b:b927: icmp_seq=4 ttl=63 time=73.5 ms 64 bytes from fd76:a5d1:fcb0:1707:d3dc:26d3:f70b:b927: icmp_seq=5 ttl=63 time=26.4 ms ...
8. ডিভাইসটি বন্ধ করুন পরিষেবাটি প্রকাশ করুন
SRP ক্লায়েন্ট নোড থেকে নিবন্ধিত ঠিকানা এবং পরিষেবা সরাতে:
> srp client host remove Done
আপনি এখন _ipps._tcp
পরিষেবাটি আবিষ্কার করতে সক্ষম হবেন না ।
9. অভিনন্দন
অভিনন্দন, আপনি থ্রেড এন্ড ডিভাইসের জন্য দ্বিমুখী আইপি সংযোগ এবং পরিষেবা আবিষ্কারের জন্য একটি থ্রেড বর্ডার রাউটার হিসাবে সফলভাবে OTBR সেট আপ করেছেন।
এরপর কি?
এই কোডল্যাবগুলির কিছু পরীক্ষা করে দেখুন...