ওপেন থ্রেড বর্ডার রাউটার (OTBR) একটি থ্রেড নেটওয়ার্কে যোগদানের জন্য একটি থ্রেড RCP নোড প্রয়োজন। OTBR ডকার একটি ফিজিক্যাল RCP (ওপেন থ্রেড ডঙ্গল) বা সিমুলেটেড RCP উভয়ের জন্যই সমর্থন প্রদান করে।
আপনি যদি অন্যান্য শারীরিক থ্রেড ডিভাইসের সাথে OTBR ডকার সংযোগ করতে চান, তাহলে একটি শারীরিক RCP ব্যবহার করুন। আপনি যদি একটি সিমুলেটেড থ্রেড নেটওয়ার্কের সাথে বর্ডার রাউটিং পরীক্ষা করতে চান, একটি সিমুলেটেড RCP ব্যবহার করুন।
শারীরিক RCP
শারীরিক RCP-এর জন্য যেকোনো সমর্থিত OpenThread প্ল্যাটফর্ম ব্যবহার করুন। আরও তথ্যের জন্য ওপেন থ্রেড বর্ডার রাউটার বিল্ড এবং কনফিগারেশন গাইড থেকে বিল্ড এবং ফ্ল্যাশ RCP ধাপটি দেখুন।
RCP সংযুক্ত করুন
- বিল্ডিং এবং ফ্ল্যাশ করার পরে, USB এর মাধ্যমে OTBR ডকার চালিত মেশিনের সাথে RCP ডিভাইসটি সংযুক্ত করুন।
-
/dev
চেক করে RCP ডিভাইসের সিরিয়াল পোর্টের নাম নির্ধারণ করুন:ls /dev/tty*
/dev/ttyACMO
OTBR ডকার কন্টেইনার শুরু করুন
একটি নতুন টার্মিনাল উইন্ডোতে, RCP-এর সিরিয়াল পোর্ট উল্লেখ করে OTBR ডকার শুরু করুন। উদাহরণস্বরূপ, যদি RCP /dev/ttyACM0
এ মাউন্ট করা হয়:
docker run --sysctl "net.ipv6.conf.all.disable_ipv6=0 net.ipv4.conf.all.forwarding=1 net.ipv6.conf.all.forwarding=1" -p 8080:80 --dns=127.0.0.1 -it --volume /dev/ttyACM0:/dev/ttyACM0 --privileged openthread/otbr --radio-url spinel+hdlc+uart:///dev/ttyACM0
সাফল্যের পরে, আপনার এটির মতো আউটপুট থাকা উচিত:
WARNING: Localhost DNS setting (--dns=127.0.0.1) may fail in containers. RADIO_URL: spinel+hdlc+uart:///dev/ttyACM0 TUN_INTERFACE_NAME: wpan0 NAT64_PREFIX: 64:ff9b::/96 AUTO_PREFIX_ROUTE: true AUTO_PREFIX_SLAAC: true Current platform is ubuntu * Applying /etc/sysctl.d/10-console-messages.conf ... kernel.printk = 4 4 1 7 * Applying /etc/sysctl.d/10-ipv6-privacy.conf ... net.ipv6.conf.all.use_tempaddr = 2 net.ipv6.conf.default.use_tempaddr = 2 * Applying /etc/sysctl.d/10-kernel-hardening.conf ... kernel.kptr_restrict = 1 * Applying /etc/sysctl.d/10-link-restrictions.conf ... fs.protected_hardlinks = 1 fs.protected_symlinks = 1 * Applying /etc/sysctl.d/10-magic-sysrq.conf ... kernel.sysrq = 176 * Applying /etc/sysctl.d/10-network-security.conf ... net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.all.rp_filter = 1 net.ipv4.tcp_syncookies = 1 * Applying /etc/sysctl.d/10-ptrace.conf ... kernel.yama.ptrace_scope = 1 * Applying /etc/sysctl.d/10-zeropage.conf ... vm.mmap_min_addr = 65536 * Applying /etc/sysctl.d/60-otbr-ip-forward.conf ... net.ipv6.conf.all.forwarding = 1 net.ipv4.ip_forward = 1 * Applying /etc/sysctl.conf ... * Starting userspace NAT64 tayga [ OK ] /usr/sbin/service * Starting domain name service... bind9 [ OK ] /usr/sbin/service * dbus is not running * Starting system message bus dbus [ OK ] ...fail! otWeb[155]: border router web started on wpan0 otbr-agent[224]: Thread interface wpan0 otbr-agent[224]: Thread is down otbr-agent[224]: Check if Thread is up: OK otbr-agent[224]: Stop publishing service otbr-agent[224]: PSKc is not initialized otbr-agent[224]: Check if PSKc is initialized: OK otbr-agent[224]: Initialize OpenThread Border Router Agent: OK otbr-agent[224]: Border router agent started.
OTBR ডকার এখন চলছে। এই টার্মিনাল উইন্ডোটি খোলা রেখে পটভূমিতে চলমান রাখুন। আপনি প্রক্রিয়াটি ছেড়ে দিলে বা উইন্ডোটি বন্ধ করলে, OTBR ডকার নিচে চলে যাবে।
OTBR ডকার সেটআপ চালিয়ে যেতে টেস্ট কানেক্টিভিটিতে যান।
সিমুলেটেড RCP
সিমুলেটেড RCP-এর জন্য একটি সিমুলেটেড OpenThread RCP বিল্ড ব্যবহার করুন। আপনি যদি একটি মেশিনে একটি সিমুলেটেড থ্রেড নেটওয়ার্কের সাথে বর্ডার রাউটিং পরীক্ষা করতে চান তবে এটি কার্যকর।
সিমুলেটেড RCP অ্যাপ্লিকেশন তৈরি করুন
OpenThread সংগ্রহস্থল ক্লোন করুন:
cd ~
git clone https://github.com/openthread/openthread
বুটস্ট্র্যাপ করুন এবং সিমুলেটেড অ্যাপ্লিকেশন তৈরি করুন:
cd openthread
./script/bootstrap
./script/cmake-build simulation
একটি দ্বিমুখী ডেটা স্ট্রিম সেট আপ করুন
সিমুলেটেড RCP এবং OTBR ডকারের মধ্যে ডেটা স্থানান্তর করতে একটি দ্বিমুখী ডেটা স্ট্রিম স্থাপন করতে socat
কমান্ড লাইন ইউটিলিটি ব্যবহার করুন।
এই প্রক্রিয়াটি চালানোর জন্য একটি নতুন টার্মিনাল উইন্ডো খুলুন, কারণ OTBR ডকার চলাকালীন এটি চলমান থাকতে হবে।
socat
ইনস্টল করুন:sudo apt-get install socat
socat
শুরু করুন:socat -d -d pty,raw,echo=0 pty,raw,echo=0
2018/09/06 09:58:29 socat[242994] N PTY is /dev/pts/2 2018/09/06 09:58:29 socat[242994] N PTY is /dev/pts/7 2018/09/06 09:58:29 socat[242994] N starting data transfer loop with FDs [5,5] and [7,7]
আউটপুটে বোল্ড করা দুটি সিরিয়াল পোর্টের একটি নোট করুন। সিমুলেটেড RCP এর জন্য প্রথমটি এবং OTBR ডকারের জন্য দ্বিতীয়টি ব্যবহার করুন৷ উপরের উদাহরণে আউটপুট:
-
/dev/pts/2
= সিমুলেটেড RCP পোর্ট -
/dev/pts/7
= OTBR ডকার
এই টার্মিনাল উইন্ডোটি খোলা রেখে পটভূমিতে চলমান রাখুন।
সিমুলেটেড RCP শুরু করুন
সিমুলেটেড আরসিপি চালানোর জন্য একটি নতুন টার্মিনাল উইন্ডো খুলুন, কারণ OTBR ডকার চলাকালীন এটিকে চলমান থাকতে হবে।
socat
আউটপুটে প্রথম সিরিয়াল পোর্ট ব্যবহার করে, সিমুলেটেড RCP অ্যাপ্লিকেশন শুরু করুন। উদাহরণস্বরূপ, যদিsocat
আউটপুট থেকে/dev/pts/2
ব্যবহার করা হয়:~/openthread/build/simulation/examples/apps/ncp/ot-rcp 1 > /dev/pts/2 < /dev/pts/2
এই কমান্ড থেকে কোন আউটপুট নেই. এই টার্মিনাল উইন্ডোটি খোলা রেখে পটভূমিতে চলমান রাখুন।
OTBR ডকার কন্টেইনার শুরু করুন
একটি নতুন টার্মিনাল উইন্ডোতে, socat
আউটপুটে দ্বিতীয় সিরিয়াল পোর্ট ব্যবহার করে OTBR ডকার শুরু করুন। উদাহরণস্বরূপ, যদি socat
আউটপুট থেকে /dev/pts/7
ব্যবহার করা হয়:
docker run --sysctl "net.ipv6.conf.all.disable_ipv6=0 net.ipv4.conf.all.forwarding=1 net.ipv6.conf.all.forwarding=1" -p 8080:80 --dns=127.0.0.1 -it --volume /dev/pts/7:/dev/ttyUSB0 --privileged openthread/otbr
উল্লেখ্য যে কমান্ডটি /dev/ttyUSB0
পোর্টও ব্যবহার করছে। এটি ডকার কন্টেইনারের মধ্যে ডিফল্ট মাউন্ট পয়েন্ট।
সাফল্যের পরে, আপনার এটির মতো আউটপুট থাকা উচিত:
WARNING: Localhost DNS setting (--dns=127.0.0.1) may fail in containers. RADIO_URL: spinel+hdlc+uart:///dev/ttyUSB0 TUN_INTERFACE_NAME: wpan0 NAT64_PREFIX: 64:ff9b::/96 AUTO_PREFIX_ROUTE: true AUTO_PREFIX_SLAAC: true Current platform is ubuntu * Applying /etc/sysctl.d/10-console-messages.conf ... kernel.printk = 4 4 1 7 * Applying /etc/sysctl.d/10-ipv6-privacy.conf ... net.ipv6.conf.all.use_tempaddr = 2 net.ipv6.conf.default.use_tempaddr = 2 * Applying /etc/sysctl.d/10-kernel-hardening.conf ... kernel.kptr_restrict = 1 * Applying /etc/sysctl.d/10-link-restrictions.conf ... fs.protected_hardlinks = 1 fs.protected_symlinks = 1 * Applying /etc/sysctl.d/10-magic-sysrq.conf ... kernel.sysrq = 176 * Applying /etc/sysctl.d/10-network-security.conf ... net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.all.rp_filter = 1 net.ipv4.tcp_syncookies = 1 * Applying /etc/sysctl.d/10-ptrace.conf ... kernel.yama.ptrace_scope = 1 * Applying /etc/sysctl.d/10-zeropage.conf ... vm.mmap_min_addr = 65536 * Applying /etc/sysctl.d/60-otbr-ip-forward.conf ... net.ipv6.conf.all.forwarding = 1 net.ipv4.ip_forward = 1 * Applying /etc/sysctl.conf ... * Starting userspace NAT64 tayga [ OK ] /usr/sbin/service * Starting domain name service... bind9 [ OK ] /usr/sbin/service * dbus is not running * Starting system message bus dbus [ OK ] ...fail! otWeb[155]: border router web started on wpan0 otbr-agent[224]: Thread interface wpan0 otbr-agent[224]: Thread is down otbr-agent[224]: Check if Thread is up: OK otbr-agent[224]: Stop publishing service otbr-agent[224]: PSKc is not initialized otbr-agent[224]: Check if PSKc is initialized: OK otbr-agent[224]: Initialize OpenThread Border Router Agent: OK otbr-agent[224]: Border router agent started.
OTBR ডকার এখন চলছে। এই টার্মিনাল উইন্ডোটি খোলা রেখে পটভূমিতে চলমান রাখুন। আপনি প্রক্রিয়াটি ছেড়ে দিলে বা উইন্ডোটি বন্ধ করলে, OTBR ডকার নিচে চলে যাবে।