เราเตอร์ OpenThread Border Router (OTBR) ต้องใช้โหนด RCP ของชุดข้อความเพื่อเข้าร่วมเครือข่ายเทรด OTBR Dash รองรับทั้ง RCP จริง (OpenThread ดองเกิล) หรือ RCP จําลอง
หากต้องการเชื่อมต่อแท่นชาร์จ OTBR กับอุปกรณ์เทรดอื่นๆ ให้ใช้ RCP จริง หากต้องการทดสอบการกําหนดเส้นทางเส้นขอบด้วยเครือข่ายเทรดจําลอง ให้ใช้ RCP ที่จําลองไว้
RCP ทางกายภาพ
ใช้แพลตฟอร์ม OpenThread ที่รองรับสําหรับ RCP จริง ดูข้อมูลเพิ่มเติมได้จากขั้นตอนสร้างและแฟลช RCP จากคู่มือการสร้างและกําหนดค่าเราเตอร์ OpenThread Border Router สําหรับข้อมูลเพิ่มเติม
แนบ RCP
- หลังจากสร้างและกะพริบ ให้แนบอุปกรณ์ RCP เข้ากับเครื่องที่ใช้งาน OTBR Postini ผ่าน USB
- กําหนดชื่อพอร์ตอนุกรมของอุปกรณ์ RCP โดยตรวจสอบ
/dev
:ls /dev/tty*
/dev/ttyACMO
เริ่มคอนเทนเนอร์ OTBR BlackBerry
ในหน้าต่างเทอร์มินัลใหม่ ให้เริ่ม OTBR Dash ที่อ้างอิงพอร์ตอนุกรมของ RCP
เช่น หาก 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 CDN ทํางานอยู่ เปิดหน้าต่างเทอร์มินัลนี้ไว้และเรียกใช้ใน พื้นหลัง หากคุณออกจากกระบวนการหรือปิดหน้าต่าง OTBR Postini จะหยุดทํางาน
ไปที่ทดสอบการเชื่อมต่อเพื่อดําเนินการตั้งค่า OTBR BlackBerry
RCP ที่จําลองขึ้นมา
ใช้บิลด์ OpenCP RCP ที่จําลองสําหรับ RCP ที่จําลองขึ้น ซึ่งจะเป็นประโยชน์หากต้องการทดสอบการกําหนดเส้นทางเส้นขอบด้วยเครือข่ายเทรดจําลองในคอมพิวเตอร์เครื่องเดียว
สร้างแอปพลิเคชัน RCP จําลอง
โคลนที่เก็บ OpenThread:
cd ~
git clone https://github.com/openthread/openthread
เปิดเครื่องแล้วสร้างแอปพลิเคชันจําลอง ดังนี้
cd openthread
./bootstrap
./script/cmake-build simulation
ตั้งค่าสตรีมข้อมูลแบบ 2 ทิศทาง
ใช้ยูทิลิตีบรรทัดคําสั่ง socat
เพื่อสร้างสตรีมข้อมูลแบบ 2 ทิศทาง
เพื่อโอนข้อมูลระหว่าง RCP ที่จําลองกับแท่นชาร์จ OTBR
เปิดหน้าต่างเทอร์มินัลใหม่เพื่อเรียกใช้กระบวนการนี้ เพราะต้องมีการเปิดใช้งานในขณะที่เรียกใช้ OTBR BlackBerry
ติดตั้ง
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]
จดบันทึกพอร์ตอนุกรม 2 พอร์ตที่เป็นตัวหนาไว้ในเอาต์พุต ใช้รายการแรกสําหรับ RCP ที่จําลองขึ้นมา และรายการที่ 2 สําหรับ OTBR CDN ในตัวอย่างเอาต์พุตข้างต้น
/dev/pts/2
= พอร์ต RCP ที่จําลองขึ้นมา/dev/pts/7
= แท่นชาร์จ OTBR
เปิดหน้าต่างเทอร์มินัลนี้ค้างไว้และทํางานในพื้นหลัง
เริ่ม RCP ที่จําลองขึ้นมา
เปิดหน้าต่างเทอร์มินัลใหม่เพื่อเรียกใช้ RCP จําลอง เพราะจะต้องเปิดทิ้งไว้ขณะที่ OTBR BlackBerry ทํางานอยู่
เริ่มใช้งานแอปพลิเคชัน RCP จําลองโดยใช้พอร์ตอนุกรมแรกในเอาต์พุต
socat
เช่น หากใช้/dev/pts/2
จากเอาต์พุตsocat
ให้ทําดังนี้~/openthread/build/simulation/examples/apps/ncp/ot-rcp 1 > /dev/pts/2 < /dev/pts/2
ไม่มีเอาต์พุตจากคําสั่งนี้ เปิดหน้าต่างเทอร์มินัลนี้ค้างไว้ แล้วทํางานอยู่เบื้องหลัง
เริ่มคอนเทนเนอร์ OTBR BlackBerry
ในหน้าต่างเทอร์มินัลใหม่ ให้เริ่มต้น OTBR CDN โดยใช้พอร์ตอนุกรมที่ 2 ในเอาต์พุต socat
เช่น หากใช้ /dev/pts/7
จากเอาต์พุต socat
ให้ทําดังนี้
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 CDN ทํางานอยู่ เปิดหน้าต่างเทอร์มินัลนี้ไว้และเรียกใช้ใน พื้นหลัง หากคุณออกจากกระบวนการหรือปิดหน้าต่าง OTBR Postini จะหยุดทํางาน