המדריך הזה עוסק ביצירה ובהגדרה הבסיסיות של נתב Open Border Router (OTBR). בסיום ההליך הזה, יהיה לכם OTBR שמתפקד כמכשיר עם שרשור מלא (FTD) בעיצוב RCP.
הגדרת הפלטפורמה
הגדרה של פלטפורמת חומרה נתמכת:
יצירה והבהוב של RCP
ה-OTBR פועל לפי עיצובי RCP. אתם יכולים לבחור בפלטפורמת OpenThread נתמכת בתור RCP, ולפעול לפי הוראות הבנייה וההבהוב של הפלטפורמה.
במדריך לבניין אפשר לקרוא סקירה כללית על הבנייה של OpenThread.
בתיקיית הפלטפורמה של כל דוגמה אפשר לקרוא הוראות ספציפיות לבניית פלטפורמות נתמכות בעזרת GNU Autotools.
התקנת OTBR
ה-OTBR מתקשר עם ה-RCP דרך ספינל. כדי להתקין את OTBR בפלטפורמת החומרה שהוגדרה, בצעו את השלבים הבאים.
משכפלים את מאגר ה-OTBR:
git clone https://github.com/openthread/ot-br-posix
יחסי תלות של התקנות
הגדרת ברירת המחדל מאפשרת BORDER_ROUTING
עבור רוב הפלטפורמות. בדוגמאות של פלטפורמות ב-GitHub תוכלו למצוא רשימה מלאה של הסימונים כברירת מחדל ב-OTBR.
בוחרים את הפלטפורמה שלכם ולוחצים על default
, אם היא זמינה.
שימוש המוגדר כברירת מחדל:
cd ot-br-posix
./script/bootstrap
BeagleBone Black עם מנהל הרשת (אופציונלי):
cd ot-br-posix
NETWORK_MANAGER=1 NETWORK_MANAGER_WIFI=1 ./script/bootstrap
עריכה והתקנה של OTBR
שימוש ברירת מחדל. סקריפט ההגדרה מאפשר ניתוב גבול כברירת מחדל. כדי להפעיל ניתוב גבול, ציינו את ממשק ה-Ethernet או ה-Wi-Fi של הפלטפורמה שלכם:
שימוש באתרנט:
INFRA_IF_NAME=eth0 ./script/setup
שימוש ב-Wi-Fi:
INFRA_IF_NAME=wlan0 ./script/setup
BeagleBone Black – שימוש ב-Network Manager (אופציונלי):
NETWORK_MANAGER=1 NETWORK_MANAGER_WIFI=1 ./script/setup
צירוף והגדרה של מכשיר RCP
יש לחבר את התקן ה-RCP המהבהב לפלטפורמת נתב הגבול באמצעות USB.
כדי להגדיר את היציאה הטורית של מכשיר ה-RCP ב-otbr-agent
, תחילה יש לקבוע את שם היציאה הטורית של מכשיר ה-RCP על ידי סימון /dev
:
ls /dev/tty*
לאחר מכן, יש לבדוק את ההגדרות של otbr-agent
.
cd /etc/default
cat otbr-agent
קובץ התצורה של otbr-agent
מכיל את שם ממשק השרשור, את שם האתרנט או את ממשק ה-Wi-Fi ואת השם של יציאה טורית ב-RCP.
OTBR_AGENT_OPTS="-I wpan0 -B OTBR_INFRA_IF_NAME spinel+hdlc+uart:///dev/ttyACM0 trel://OTBR_INFRA_IF_NAME"
לא כל המכשירים מחוברים עם אותו שם יציאה טורי. שמות היציאות הנפוצים ביותר הם ttyACM*
ו-ttyUSB*
. תוכלו להיעזר במסמכי התיעוד של המכשיר כדי לדעת מה השם הצפוי של היציאה הטורית.
אם צריך, מעדכנים את קובץ התצורה של otbr-agent
. לדוגמה, עבור ממשק Wi-Fi ושם יציאה טורית של ttyUSB0
:
OTBR_AGENT_OPTS="-I wpan0 -B wlan0 spinel+hdlc+uart:///dev/ttyUSB0 trel://wlan0"
כדי לעדכן ממשק אתרנט:
OTBR_AGENT_OPTS="-I wpan0 -B eth0 spinel+hdlc+uart:///dev/ttyUSB0 trel://eth0"
מפעילים את נתב הגבול. אם אתם משתמשים בפלטפורמת "BeagleBone Black", זכרו ללחוץ לחיצה ארוכה על הלחצן אתחול תוך כדי פעולה.
שירות OTBR צריך להתחיל באתחול.
אימות שירותים
מוודאים שכל השירותים הנדרשים מופעלים:
sudo systemctl status
אם הסקריפט setup
הצליח, השירותים הבאים יופיעו בפלט:
mdns.service
otbr-agent.service
otbr-web.service
למשל:
● raspberrypi State: running Jobs: 0 queued Failed: 0 units Since: Thu 1970-01-01 00:00:01 UTC; 47 years 7 months ago CGroup: / ├─user.slice │ └─user-1000.slice │ ├─user@1000.service │ │ └─init.scope │ │ ├─576 /lib/systemd/systemd --user │ │ └─580 (sd-pam) │ └─session-c1.scope │ ├─480 /bin/login -- │ └─585 -bash ├─init.scope │ └─1 /sbin/init └─system.slice ├─systemd-timesyncd.service │ └─334 /lib/systemd/systemd-timesyncd ├─dbus.service │ └─339 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation ├─hciuart.service │ └─442 /usr/bin/hciattach /dev/serial1 bcm43xx 921600 noflow - ├─ssh.service │ └─621 /usr/sbin/sshd -D ├─avahi-daemon.service │ ├─341 avahi-daemon: running [raspberrypi.local] │ └─361 avahi-daemon: chroot helper # enabled ├─otbr-web.service │ └─472 /usr/sbin/otbr-web ├─triggerhappy.service │ └─354 /usr/sbin/thd --triggers /etc/triggerhappy/triggers.d/ --socket /run/thd.socket --user nobody --deviceglob /dev/input/event* ├─systemd-logind.service │ └─353 /lib/systemd/systemd-logind # enabled ├─otbr-agent.service │ └─501 /usr/sbin/otbr-agent -I wpan0 ├─cron.service │ └─350 /usr/sbin/cron -f ├─systemd-udevd.service │ └─154 /lib/systemd/systemd-udevd ├─rsyslog.service │ └─345 /usr/sbin/rsyslogd -n ├─bluetooth.service │ └─445 /usr/lib/bluetooth/bluetoothd # enabled ├─mdns.service │ └─725 /usr/sbin/mdnsd ├─systemd-journald.service │ └─136 /lib/systemd/systemd-journald └─dhcpcd.service ├─409 wpa_supplicant -B -c/etc/wpa_supplicant/wpa_supplicant.conf -iwlan0 └─466 /sbin/dhcpcd -q -w
אם השירותים האלה פועלים אבל ה-RPi נמצא במצב גרוע, חלק מהשירותים האחרים לא התחילו. צריך לבדוק אילו:
sudo systemctl --failed
אפשר גם לבדוק כל שירות בנפרד:
sudo service mdns status
sudo service otbr-agent status
sudo service otbr-web status
otbr-web
מופעל כברירת מחדל ברוב הפלטפורמות.
אם otbr-web
לא מותקן, כדאי לנסות להעביר את הדגל WEB_GUI
:
WEB_GUI=1 ./script/bootstrap
INFRA_IF_NAME=wlan0 WEB_GUI=1 ./script/setup
אימות של RCP
מוודאים שה-RCP נמצא במצב הנכון:
sudo ot-ctl state
ot-ctl
הוא כלי שירות של שורת פקודה שסופק עם OTBR. הוא משמש לתקשורת עם ממשק ה-PAN של Thread (ברירת המחדל הוא wpan0
) שאליו otbr-agent
משויך בעיצוב RCP.
אם ה-RCP פועל בהצלחה והצומת לא חבר ברשת Thread, הפלט אמור להיראות כך:
disabled
אם הפלט הוא OpenThread daemon is not running
, פותרים את הבעיות הבאות:
- ודאו שיש לנתב של נתב הגבולות מספיק חשמל (צריך להשתמש במתאם AC חיצוני מתאים).
- מנתקים ומחברים מחדש את לוח ה-RCP לפלטפורמת נתב הגבולות.
יש לוודא שקיים התקן טורי של RCP. לדוגמה, אם צריך לחבר את המכשיר אל
/dev/ttyUSB0
:ls /dev/ttyUSB*
/dev/ttyUSB0איפוס ה-RCP עם
sudo ot-ctl reset
.
יש לבדוק שוב את סטטוס ה-RCP עם sudo ot-ctl state
.