थ्रेड बॉर्डर राऊटर - दोतरफ़ा लिंक करने वाला IPv6 कनेक्टिविटी और डीएनएस आधारित सेवा डिस्कवरी

संग्रह की मदद से व्यवस्थित रहें अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.

1. परिचय

699d673d05a55535.png

थ्रेड बॉर्डर राऊटर क्या है?

थ्रेड, आईपी-आधारित कम-पावर वाला वायरलेस मेश नेटवर्किंग प्रोटोकॉल है, जो डिवाइस-से-डिवाइस और डिवाइस-से-क्लाउड संचार को सुरक्षित रूप से सक्षम करता है. किसी एक खराबी की वजह से थ्रेड नेटवर्क, टोपोलॉजी में किए गए बदलाव के मुताबिक हो सकते हैं.

थ्रेड बॉर्डर राऊटर किसी थ्रेड नेटवर्क को वाई-फ़ाई या ईथरनेट जैसे अन्य IP-आधारित नेटवर्क से कनेक्ट करता है. थ्रेड नेटवर्क को अन्य नेटवर्क से कनेक्ट करने के लिए, बॉर्डर राऊटर की ज़रूरत होती है. 'थ्रेड बॉर्डर राऊटर' की मदद से नीचे दिए गए फ़ंक्शन काम करते हैं:

  • Thread और वाई-फ़ाई/ईथरनेट नेटवर्क के बीच दोतरफ़ा आईपी कनेक्टिविटी.
  • mDNS (वाई-फ़ाई/ईथनेट लिंक पर) और SRP (थ्रेड नेटवर्क पर) के ज़रिए दोतरफ़ा सेवा खोजें.
  • थ्रेड-ओवर-इन्फ़्रास्ट्रक्चर, जो थ्रेड आधारित सेगमेंटेशन को आईपी-आधारित लिंक पर मर्ज करता है.
  • थ्रेड नेटवर्क में थ्रेड डिवाइस की पुष्टि करने और उसमें शामिल होने के लिए, बाहरी थ्रेड कमीशन (उदाहरण के लिए, मोबाइल फ़ोन).

Google का जारी किया गया OpenThread Border राऊटर (OTBR) थ्रेड बॉर्डर बॉर्डर राऊटर का ओपन सोर्स इस्तेमाल है.

आप क्या बनाएंगे

इस कोडलैब (कोड बनाना सीखना) में, आप थ्रेड बॉर्डर राऊटर सेट अप करने वाले हैं और बॉर्डर मोबाइल राऊटर के ज़रिए अपने मोबाइल फ़ोन को थ्रेड एंड डिवाइस से कनेक्ट करेंगे.

आप इन चीज़ों के बारे में जानेंगे

  • OTBR सेट अप करने का तरीका
  • OTBR के साथ थ्रेड नेटवर्क कैसे बनाएं
  • SRP सुविधा के साथ OpenThread सीएलआई डिवाइस बनाने का तरीका
  • एसआरपी में सेवा रजिस्टर करने का तरीका
  • 'Thread एंड डिवाइस' को खोजने और उस तक पहुंचने का तरीका.

आपको इनकी ज़रूरत होगी

  • Raspबेरी Pi 3/4 डिवाइस और कम से कम 8 जीबी क्षमता वाला SD कार्ड.
  • दो नॉर्डिक सेमीकंडक्टर nRF52840 डेवलपर बोर्ड.
  • ऐसा वाई-फ़ाई एपी जिसे राऊटर पर IPv6 राऊटर विज्ञापन गार्ड चालू नहीं किया गया है.
  • कम से कम iOS 14 वाला iOS फ़ोन या कम से कम Android 8.1 वाला Android फ़ोन.

2. OTBR सेट अप करें

रसभरी पाई सेट अप करें

rapबेरीpi.org के निर्देशों का पालन करके, rpi-imager टूल से नया Raspबेरी Pi डिवाइस सेट अप करना आसान है (इस टूल में सबसे नया Raspbury Pi OS इस्तेमाल करने के बजाय, डाउनलोड करें साल 2021-05-07-rapios-buster-ar एलिमेंट-लाइट). इस कोडलैब (कोड बनाना सीखना) में मोबाइल फ़ोन चरणों को पूरा करने के लिए, आपको रसभरी पि (एक तरह की मछली) को वाई-फ़ाई एपी से कनेक्ट करना होगा. वायरलेस कनेक्टिविटी सेट अप करने के लिए, इस गाइड का पालन करें. आप एसएसएच की मदद से रसभरी पाई में लॉग इन कर सकते हैं. इसके लिए, आप यहां निर्देश देख सकते हैं.

OTBR कोड पाएं

अपने Raspbury Pi में लॉग इन करें और GitHub से 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, Thread इंटरफ़ेस और इंफ़्रास्ट्रक्चर नेटवर्क इंटरफ़ेस (जैसे वाई-फ़ाई/ईथरनेट) दोनों पर काम करता है जो INFRA_IF_NAME के साथ दिया गया है. थ्रेड इंटरफ़ेस को OTBR खुद बनाता है और डिफ़ॉल्ट रूप से wpan0 को उसका नाम देता है. अगर INFRA_IF_NAME के बारे में साफ़ तौर पर नहीं बताया गया है, तो इंफ़्रास्ट्रक्चर इंटरफ़ेस का डिफ़ॉल्ट मान wlan0 होता है. अगर आपका Raspbury Pi किसी ईथरनेट केबल से कनेक्ट है, तो ईथरनेट इंटरफ़ेस का नाम (जैसे कि 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 चिप की ज़रूरत है.

बदलाव करने के लिए, Raspबेरी Pi को फिर से चालू करें.

RCP फ़र्मवेयर बनाएं और फ़्लैश करें

OTBR, रेडियो को-प्रोसेसर (RCP) मोड में 15.4 रेडियो चिप पर काम करता है. इस मोड में, OpenThread स्टैक होस्ट साइड पर चल रहा है. यह IEEE802.15.4 ट्रांससीवर पर फ़्रेम भेजता/पाता है.

फॉलो करेंचौथे चरण मेंnRF52840 बोर्ड और OpenThread के साथ थ्रेड नेटवर्क बनाएं कोडलैब (कोड बनाना सीखना) एक nRF52840 RCP डिवाइस बनाने और फ़्लैश करने के लिए:

$ script/build nrf52840 USB_trans

OTBR शुरू करें और स्थिति की पुष्टि करें

अपने Raspबेरी पीआई से 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 Client एंड डिवाइस सेट अप करें

OTI सीएलआई बनाएं और फ़्लैश करें

फॉलो करेंकदम 5 में सेnRF52840 बोर्ड और OpenThread के साथ थ्रेड नेटवर्क बनाएं कोडलैब (कोड बनाना सीखना) एक nRF52840 CLI असली डिवाइस बनाने और फ़्लैश करने के लिए.

हालांकि, OT_COMMISSIONER और OT_JOINER को चालू करने के बजाय, सीएलआई नोड को 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

SRP क्लाइंट नोड स्क्रीन सेशन पर लौटें और चालू डेटासेट सेट करें:

> dataset set active 0e080000000000010000000300001235060004001fffe002083d3818dc1c8db63f0708fda85ce9df1e662005101d81689e4c0a32f3b4aa112994d29692030f4f70656e5468726561642d35326532010252e204103f23f6b8875d4b05541eeb4f9718d2f40c0302a0ff
Done

इसके बाद, थ्रेड इंटरफ़ेस शुरू करें:

> ifconfig up
Done
> thread start
Done

कुछ सेकंड इंतज़ार करें और पुष्टि करें कि Thread नेटवर्क में शामिल हो रहा है या नहीं:

> 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 का बड़े पैमाने पर लिंक-लोकल पर डीएनएस-एसडी सेवा प्रकाशित करने के लिए इस्तेमाल किया जा रहा है. लेकिन मल्टीकास्ट मैसेज बहुत ज़्यादा बैंडविड्थ का इस्तेमाल करते हैं और इससे कम पावर वाले डिवाइस की बैटरी जल्दी खत्म हो जाएगी. बॉर्डर बॉर्डर राऊटर के साथ अपनी सेवाओं को रजिस्टर करने के लिए, थ्रेड Uncast SRP प्रोटोकॉल का इस्तेमाल करता है और वाई-फ़ाई या ईथरनेट लिंक पर सेवाओं का विज्ञापन करने के लिए, बॉर्डर राऊटर की मदद लेता है.

हम srp client निर्देश का इस्तेमाल करके किसी सेवा को रजिस्टर कर सकते हैं.

SRP क्लाइंट नोड स्क्रीन सेशन पर जाएं और SRP क्लाइंट को अपने-आप शुरू करें:

> srp client autostart enable
Done

वह होस्टनाम सेट करें जिसका विज्ञापन वाई-फ़ाई/ईथरनेट लिंक पर किया जाएगा:

> srp client host name ot-host
Done

थ्रेड के आखिरी डिवाइस तक पहुंचने के लिए, वाई-फ़ाई/ईथनेट लिंक पर मौजूद डिवाइस के लिए, असली डिवाइस के ओएमआर पते का विज्ञापन दिखाना ज़रूरी है:

> 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 सेवा का विज्ञापन वाई-फ़ाई/ईथनेट लिंक पर दिया जाना चाहिए था. यह समय है डिवाइस का पता लगाने और उस तक पहुंचने का!

6. सेवा के बारे में जानें

मोबाइल फ़ोन से सेवा खोजें

54a136a8940897cc.png

हम फ़ोन ब्राउज़र ऐप्लिकेशन का इस्तेमाल करके, Android फ़ोन पर mDNS की सेवाएं खोजते हैं. iOS मोबाइल डिवाइस पर भी बराबर ऐप्लिकेशन देखा जा सकता है. ऐप्लिकेशन खोलें और सेवा _ipps._tcp पहले दिखाई देगी.

Linux होस्ट वाली सेवा चुनना

अगर आप किसी दूसरे Linux होस्ट से सेवा पाना चाहते हैं, तो 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. डिवाइस को पिंग करें

मोबाइल फ़ोन से पिंग करना

उदाहरण के तौर पर, Pixel फ़ोन को इस्तेमाल करने पर, हम सेवा ब्राउज़र ऐप्लिकेशन में सेवा के इंस्टेंस की जानकारी वाले पेज पर, पहले से रजिस्टर की गई सेवा "ot-service" का OMR पता देख सकते हैं.

bb992962e68d250b.png 888daa1df1e1a9bf.png

अब हम किसी दूसरे नेटवर्क विश्लेषक ऐप्लिकेशन के साथ ओएमआर पते को पिंग कर सकते हैं.

माफ़ करें, नेटवर्क एनालाइज़र ऐप्लिकेशन का Android वर्शन, पिंग सुविधा के लिए mDNS क्वेरी पर काम नहीं करता और हम होस्टनाम को पिंग नहीं कर सकतेot-host.local सीधे (हम ऐप्लिकेशन के iOS वर्शन वाले होस्टनाम को पिंग कर सकते हैं).

Linux/macOS होस्ट से पिंग करें

थ्रेड के बॉर्डर राऊटर, वाई-फ़ाई/ईथनेट लिंक पर प्रीफ़िक्स (रूट की जानकारी के विकल्प के ज़रिए) और रूट का प्रचार करने के लिए, ICMPv6 राऊटर विज्ञापन (RA) भेजता है.

Linux होस्ट तैयार करना

यह पक्का करना ज़रूरी है कि आपके होस्ट पर आरए और RIO चालू है:

  1. अगर आईपी फ़ॉरवर्ड करने की सुविधा चालू नहीं है, तो net.ipv6.conf.wlan0.accept_ra कम से कम 1 होना चाहिए. अगर ऐसा नहीं है, तो 2 होना चाहिए.
  2. net.ipv6.conf.wlan0.accept_ra_rt_info_max_plen का मान 64 से कम नहीं होना चाहिए.

ज़्यादातर डिस्ट्रिब्यूशन के लिए accept_ra को डिफ़ॉल्ट के तौर पर 1 पर सेट किया जाता है. हालांकि, हो सकता है कि कुछ और नेटवर्क डेमो डीन, इस विकल्प को बदल दें (उदाहरण के लिए, dhcpcd Raspबेरी Pi को accept_ra से 0 में बदल देगा). आप 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

Linux के ज़्यादातर वितरणों पर 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 संदेशों के बीच का अंतराल कुछ सौ सेकंड हो सकता है. राऊटर का अनुरोध भेजने के लिए, वाई-फ़ाई एपी से डिसकनेक्ट करके फिर से कनेक्ट करें. ऐसा करने पर, ओटीबीआर अनुरोध किए गए आरएएस के साथ जवाब देगा. दूसरा विकल्प यह है कि बॉर्डर राऊटर पर बॉर्डर रूटिंग फ़ंक्शन फिर से शुरू किया जाए:

$ sudo ot-ctl br disable
Done
$ sudo ot-ctl br enable
Done

अगर आप वाई-फ़ाई को फिर से कनेक्ट करने या ईथरनेट इंटरफ़ेस को रीस्टार्ट करने की कोशिश कर रहे हैं, तो पक्का करें कि dcpcd का इस्तेमाल आपके वाई-फ़ाई/ईथरनेट IPv6 नेटवर्क को मैनेज करने के लिए नहीं किया गया है. क्योंकि dcpcd हमेशा ओवरराइड करता हैaccept_ra इंटरफ़ेस को हर बार रीस्टार्ट किए जाने पर विकल्प औरaccept_ra कॉन्फ़िगरेशन खो जाएगा. dcpcd कॉन्फ़िगरेशन फ़ाइल (जैसे /etc/dhcpcd.conf) में नीचे दी गई पंक्ति में जोड़ें, ताकि dcpcd में IPv6 को साफ़ तौर पर बंद किया जा सके:

noipv6
noipv6rs

बदलाव को लागू करने के लिए, आपको फिर से चालू करना होगा.

macOS होस्ट तैयार करें

दोनों accept_ra* विकल्प डिफ़ॉल्ट रूप से चालू होते हैं, लेकिन आपको अपने सिस्टम को कम से कम macOS Big Sur को अपग्रेड करना होगा.

होस्टनाम या IPv6 पता पिंग करें

अब हम ping -6 निर्देश के साथ होस्टनाम ot-host.local (पिंग के लिए ping6) को पिंग कर सकते हैं:

$ 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 निर्देश से, mDNS क्वेरी वाले ot-host.local. नाम को ठीक नहीं किया जा रहा है. /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 client host remove
Done

अब आपको _ipps._tcp की सेवा नहीं मिलेगी .

9. बधाई हो

बधाई हो, आपने थ्रेड बॉर्डर राऊटर के रूप में OTBR को सही तरीके से सेट अप कर लिया है, ताकि थ्रेड खत्म होने वाले डिवाइस के लिए दोतरफ़ा आईपी आईपी कनेक्टिविटी और सेवा खोज दी जा सके.

आगे क्या करना है?

इनमें से कुछ कोडलैब देखें...

रेफ़रंस के लिए दस्तावेज़