جهاز توجيه حدود سلسلة المحادثات - الاتصال ببروتوكول IPv6 الثنائي واكتشاف الخدمة المستندة إلى نظام أسماء النطاقات

1- المقدمة

699d673d05a55535.png

ما هو جهاز توجيه حدود سلسلة المحادثات؟

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

يربط جهاز توجيه سلسلة محادثات شبكة بين سلسلة محادثات بشبكات أخرى تستند إلى عنوان IP، مثل شبكة Wi-Fi أو إيثرنت. تتطلب شبكة Thread استخدام جهاز توجيه الحدود للاتصال بشبكات أخرى. إنّ جهاز توجيه حدود سلسلة المحادثات يتيح الحد الأدنى من الوظائف التالية:

  • اتصال IP ثنائي الاتجاه بين شبكات Thread وWi-Fi/إيثرنت
  • اكتشاف الخدمة ثنائي الاتجاه عبر mDNS (على شبكة Wi-Fi/Ethernet) وSRP (على شبكة Thread).
  • البنية الأساسية لسلسلة المحادثات التي تدمج أقسام سلسلة المحادثات عبر الروابط المستندة إلى عنوان IP.
  • تفويض سلاسل المحادثات الخارجية (على سبيل المثال، الهاتف الجوّال) لمصادقة جهاز Thread والانضمام إليه إلى شبكة Thread.

جهاز توجيه حدود سلسلة المحادثات (OTBR) الذي أصدرته Google هو تنفيذ مفتوح المصدر لجهاز توجيه سلسلة المحادثات.

التصميمات التي ستنشئها

في هذا الدرس التطبيقي حول الترميز، عليك إعداد جهاز توجيه حدود سلسلة المحادثات وربط هاتفك الجوّال بجهاز نهاية سلسلة محادثات من خلال جهاز توجيه الحدود.

ما ستتعرَّف عليه

  • كيفية إعداد OTBR
  • كيفية إنشاء شبكة مترابطة باستخدام OTBR
  • كيفية إنشاء جهاز OpenThread CLI باستخدام ميزة SRP
  • كيفية تسجيل خدمة من خلال صفحة SRP
  • كيفية اكتشاف جهاز نهاية سلسلة المحادثات والوصول إليه

المتطلبات

  • جهاز Raspberry Pi 3/4 وبطاقة SD بسعة تخزين 8 غيغابايت على الأقل
  • لوحان تطويري نصف نوردي nRF52840
  • تم تفعيل نقطة وصول Wi-Fi بدون جهاز IPv6 Routing الإعلانs Guard على جهاز التوجيه.
  • هاتف iOS يعمل بنظام التشغيل iOS 14 أو هاتف Android يعمل بالإصدار 8.1 من نظام التشغيل Android على الأقل

2. إعداد OTBR

إعداد Raspberry Pi

من السهل إعداد جهاز Raspberry Pi الجديد باستخدام أداة rpi-imager عن طريق اتّباع التعليمات الواردة على rspberrypi.org (بدلاً من استخدام أحدث نظام تشغيل Raspberry Pi في الأداة، يمكنك تنزيل 2021-05-07-rspios-buster-armhf-lite بنفسك). لإكمال خطوات الهاتف الجوّال في هذا الدرس التطبيقي حول الترميز، عليك ربط Raspberry Pi بنقطة اتصال Wi-Fi. يمكنك الاطّلاع على هذا الدليل لإعداد الاتصال اللاسلكي. من السهل تسجيل الدخول إلى Raspberry Pi باستخدام SSH، ويمكنك العثور على التعليمات هنا.

الحصول على رمز OTBR

سجِّل الدخول إلى Raspberry Pi ونسخة طبق الأصل من ot-br-posix من GitHub:

$ 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 وواجهة شبكة البنية الأساسية (مثل Wi-Fi/إيثرنت) المحدّدة باستخدام INFRA_IF_NAME. يتم إنشاء واجهة Thread بواسطة OTBR نفسها وتسمّى wpan0 تلقائيًا وتكون لواجهة البنية الأساسية القيمة التلقائية wlan0 إذا لم يتم تحديد INFRA_IF_NAME بشكل صريح. في حال توصيل Raspberry 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.

أعِد تشغيل Raspberry Pi لتنفيذ التغييرات حتى تصبح سارية.

إنشاء برامج ثابتة مستندة إلى RCP لتشغيلها

تتوافق تقنية OTBR مع شريحة راديو بحجم 15.4 في وضع المعالج المشترك للراديو (RCP). في هذا الوضع، تعمل تكدس OpenThread على جانب المضيف ويرسل الإطارات أو يستلمها على جهاز إرسال واستقبال IEEE802.15.4.

اتّبِع الخطوة 4 من إنشاء شبكة سلسلة محادثات باستخدام ألواح nRF52840 ودرس تطبيقي حول ترميز OpenThread لإنشاء جهاز nRF52840 RCP وعرضه:

$ script/build nrf52840 USB_trans

بدء OTBR والتحقُّق من الحالة

اربط لوح nRF52840 بجهاز Raspberry Pi وابدأ خدمة 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. تكوين شبكة Thread

هناك أمر ot-ctl يمكن استخدامه للتحكّم في خدمة otbr-agent. للحصول على مزيد من التفاصيل، يقبل ot-ctl جميع أوامر واجهة سطر الأوامر في OpenThread، يُرجى الاطّلاع على دليل واجهة سطر الأوامر في OpenThread.

تكوين شبكة سلسلة محادثات باستخدام 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) في بيانات شبكة Thread:

$ 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

إنشاء واجهة سطر الأوامر (OTC) ووميضها

اتّبِع الخطوة 5 من إنشاء شبكة سلسلة محادثات باستخدام ألواح nRF52840 ودرس تطبيقي حول ترميز OpenThread لإنشاء جهاز نهاية nRF52840 CLI وعرضه.

وبدلاً من تفعيل OT_COMMISSIONER وOT_JOINER، تتطلّب عقدة واجهة سطر الأوامر (CLI) ميزتَي OT_SRP_CLIENT وOT_ECDSA.

لذا يجب أن يظهر الاستدعاء الكامل للإصدار على النحو التالي:

$ script/build nrf52840 USB_trans -DOT_SRP_CLIENT=ON -DOT_ECDSA=ON

الانضمام إلى شبكة OTBR

للانضمام إلى شبكة Thread التي تم إنشاؤها بواسطة خدمة 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. يمكننا الآن فحص عنوان OMR في شبكة OTBR:

> 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 للبث من أجل تسجيل خدماتها باستخدام جهاز توجيه الحدود، وهي تعتمد على جهاز توجيه الحدود للإعلان عن الخدمات على رابط Wi-Fi أو إيثرنت.

يمكننا تسجيل خدمة باستخدام الأمر srp client.

انتقِل إلى جلسة شاشة جهاز عميل SRP وابدأ التشغيل التلقائي لبرنامج SRP:

> srp client autostart enable
Done

اضبط اسم المضيف الذي سيتم الإعلان عنه على رابط شبكة Wi-Fi/إيثرنت.

> srp client host name ot-host
Done

بالنسبة إلى أي جهاز على رابط شبكة Wi-Fi أو إيثرنت للوصول إلى جهاز نهاية Thread، يجب الإعلان عن عنوان 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- استكشاف الخدمة

التعرّف على الخدمة باستخدام هاتف جوّال

54a136a8940897cc.png

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

يمكنك استخدام dns-sd على نظام التشغيل macOS لحل الخدمة:

$ 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 كمثال على ذلك، يمكننا العثور على عنوان OMR للخدمة المسجّلة سابقًا في الخدمة (ot-service) في صفحة التفاصيل لمثيل الخدمة في تطبيق Service (تطبيق المتصفِّح).

bb992962e68d250b.png 888daa1df1e1a9bf.png

يمكننا الآن فحص عنوان OMR باستخدام تطبيق Network Analyzer آخر.

للأسف، لا يتوافق إصدار Android من تطبيق أداة تحليل الشبكة مع طلبات بحث mDNS لأداة مساعدة فحص الاتصال، ولا يمكننا فحص اسم المضيف ot-host.local مباشرةً (يمكننا فحص اسم المضيف باستخدام إصدار iOS من التطبيق).

فحص الاتصال من مضيف Linux/macOS

يُرسِل جهاز توجيه حدود سلسلة المحادثات إعلانات جهاز التوجيه ICMPv6 (RA) للإعلان عن البادئات (عبر خيار معلومات بادئة الخيار) والمسارات (عبر خيار معلومات المسار) على رابط Wi-Fi/إيثرنت.

إعداد مضيف Linux

من المهم التأكد من تفعيل الحسابات التي يتم اكتسابها مؤخرًا وتطبيق RIO على مضيفك:

  1. يجب أن تكون قيمة net.ipv6.conf.wlan0.accept_ra على الأقل 1 في حال عدم تفعيل ميزة إعادة توجيه عناوين IP، و2 على الأقل.
  2. يجب ألا يقل حجم net.ipv6.conf.wlan0.accept_ra_rt_info_max_plen عن 64.

يتم ضبط accept_ra تلقائيًا على 1 لمعظم التوزيعات. إلا أنّه قد تكون هناك عمليات خفية أخرى للشبكة تلغي هذا الخيار (على سبيل المثال، سيلغي dhcpcd في Raspberry Pi accept_ra إلى 0). يمكنك التحقّق من القيمة accept_ra باستخدام:

$ sudo sysctl -n net.ipv6.conf.wlan0.accept_ra
0

اضبط القيمة على 1 (أو 2 في حال تفعيل إعادة توجيه عناوين IP) باستخدام:

$ sudo sysctl -w net.ipv6.conf.wlan0.accept_ra=1
Net.ipv6.conf.wlan0.accept_ra = 1

يكون الخيار accept_ra_rt_info_max_plen في معظم توزيعات Linux هو الإعداد التلقائي في 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

سيتم فقد التغيير بعد إعادة تشغيل المضيف. على سبيل المثال، يمكنك إلحاق الأوامر أدناه إلى /etc/sysctl.conf لتفعيل RIO بشكل دائم:

$ net.ipv6.conf.wlan0.accept_ra_rt_info_max_plen = 64

قد يكون هناك وقت متأخر لتغيير عمليات الضبط هذه لأنّ OTBR يرسل حاليًا رسائل من الحسابات التي يتم اكتسابها مؤخرًا، وقد يستغرق الفاصل الزمني بين رسالتَي "RA" غير المرغوب فيهما عدّة ثوانٍ. تتمثل إحدى الطرق في قطع الاتصال بشبكة AP Wi-Fi وإعادة الاتصال بها لإرسال رسائل طلب جهاز التوجيه حتى تستجيب شبكة OTBR لطلبات الحسابات التي يتم اكتسابها مؤخرًا. يمكنك أيضًا إعادة تشغيل وظيفة "توجيه الحدود" على جهاز توجيه الحدود:

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

إذا كنت تحاول إعادة الاتصال بشبكة Wi-Fi أو إعادة تشغيل واجهة إيثرنت، تأكَّد من عدم استخدام dhcpcd لإدارة شبكة WiFi-/Ethernet IPv6. نظرًا لأنّ استراتيجية dhcpc تلغي دائمًا الخيار accept_ra في كل مرة تتم فيها إعادة تشغيل الواجهة وستفقد إعدادات accept_ra. يمكنك إلحاق الأسطر التالية بملف الإعداد dhcpcd (مثل /etc/dhcpcd.conf) لإيقاف IPv6 صراحةً في dhcpcd:

noipv6
noipv6rs

يجب إعادة تشغيل الجهاز لتطبيق التغيير.

إعداد مضيف نظام التشغيل macOS

يتم تفعيل كلا الخيارين accept_ra* تلقائيًا، ولكن عليك ترقية نظامك إلى نظام التشغيل macOS Big Sur على الأقل.

فحص اسم المضيف أو عنوان IPv6

يمكننا الآن فحص اسم المضيف ot-host.local باستخدام الأمر ping -6 (ping6 لنظام التشغيل macOS):

$ 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
...

قد يتعذّر تنفيذ هذا الأمر على مضيفي نظام التشغيل Linux الذين يظهر لهم الخطأ "Name or service not known". ويرجع ذلك إلى أنّ الأمر ping لا يحلّ اسم ot-host.local. باستخدام طلبات بحث mDNS. افتح /etc/nsswitch.conf وأضِف mdns6_minimal إلى السطر الذي يبدأ بـ hosts:

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 بنجاح باعتباره جهاز توجيه الحدود في سلسلة محادثات من أجل توفير إمكانية الاتصال عبر بروتوكول IP الثنائي الاتجاه واكتشاف الخدمة للأجهزة النهائية.

الخطوة التالية:

اطّلِع على بعض هذه الدروس التطبيقية حول الترميز...

المستندات المرجعية