Google is committed to advancing racial equity for Black communities. See how.
این صفحه به‌وسیله ‏Cloud Translation API‏ ترجمه شده است.
Switch to English

OTBR Docker را اجرا کنید

روتر حاشیه OpenThread (OTBR) برای پیوستن به شبکه Thread به یک گره Thread RCP نیاز دارد. OTBR Docker پشتیبانی از RCP فیزیکی (دانگل OpenThread) یا RCP شبیه سازی شده را فراهم می کند.

اگر می خواهید OTBR Docker را به سایر دستگاههای Thread فیزیکی متصل کنید ، از RCP فیزیکی استفاده کنید. اگر می خواهید مسیریابی مرز را با یک شبکه Thread شبیه سازی شده آزمایش کنید ، از RCP شبیه سازی شده استفاده کنید.

RCP فیزیکی

برای RCP فیزیکی از هر پلتفرم OpenThread پشتیبانی شده استفاده کنید. برای اطلاعات بیشتر به مرحله ساخت و فلش RCP از راهنمای ساخت و پیکربندی OpenThread Border Router مراجعه کنید.

RCP را پیوست کنید

  1. پس از ساختن و چشمک زدن ، دستگاه RCP را از طریق USB به دستگاهی که OTBR Docker را اجرا می کند وصل کنید.
  2. نام پورت سریال دستگاه RCP را با بررسی /dev :
    ls /dev/tty*
    /dev/ttyACMO
    تعیین کنید

ظرف OTBR Docker را شروع کنید

در پنجره ترمینال جدید ، با مراجعه به پورت سریال RCP ، OTBR Docker را شروع کنید. به عنوان مثال ، اگر 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 Docker اکنون در حال اجرا است. این پنجره ترمینال را باز بگذارید و در پس زمینه اجرا شود. اگر روند را ترک کنید یا پنجره را ببندید ، OTBR Docker پایین می آید.

برای ادامه کار با راه اندازی OTBR Docker ، به Test Test Connection بروید.

RCP شبیه سازی شده

برای ساخت RCP شبیه سازی شده از OpenThread RCP ساخت شبیه سازی شده استفاده کنید. اگر می خواهید مسیریابی حاشیه را با یک شبکه Thread شبیه سازی شده روی یک ماشین امتحان کنید ، مفید است.

برنامه RCP شبیه سازی شده را بسازید

  1. مخزن OpenThread را کلون کنید:
    cd ~
    git clone https://github.com/openthread/openthread
  2. بوت استرپ و ساخت برنامه شبیه سازی شده:
    cd openthread
    ./bootstrap
    make -f examples/Makefile-simulation
    

یک جریان داده دو طرفه تنظیم کنید

از ابزار خط فرمان socat برای ایجاد جریان داده دو طرفه برای انتقال داده ها بین RCP شبیه سازی شده و OTBR Docker استفاده کنید.

  1. برای اجرای این فرآیند ، یک پنجره ترمینال جدید باز کنید ، زیرا هنگام اجرای OTBR Docker باید آن را اجرا کنید.
  2. نصب socat :
    sudo apt-get install socat
  3. 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 Docker استفاده کنید. در مثال خروجی بالا:

  • /dev/pts/2 = پورت RCP شبیه سازی شده
  • /dev/pts/7 = OTBR داکر

این پنجره ترمینال را باز بگذارید و در پس زمینه اجرا شود.

RCP شبیه سازی شده را شروع کنید

  1. برای اجرای RCP شبیه سازی شده ، یک پنجره ترمینال جدید باز کنید ، زیرا هنگام اجرای OTBR Docker باید آن را اجرا کنید.
  2. با استفاده از اولین پورت سریال در خروجی socat ، برنامه شبیه سازی شده RCP را شروع کنید. به عنوان مثال ، اگر از /dev/pts/2 از خروجی socat استفاده می کنید:
    ~/openthread/output/simulation/bin/ot-rcp 1 \
        > /dev/pts/2 < /dev/pts/2

هیچ خروجی از این دستور وجود ندارد. این پنجره ترمینال را باز بگذارید و در پس زمینه اجرا شود.

ظرف OTBR Docker را شروع کنید

در یک پنجره ترمینال جدید ، OTBR Docker را با استفاده از پورت سریال دوم در خروجی 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 نیز استفاده می کند. این نقطه نصب پیش فرض درون ظرف Docker است.

پس از موفقیت ، باید خروجی مشابه این داشته باشید:

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 Docker اکنون در حال اجرا است. این پنجره ترمینال را باز بگذارید و در پس زمینه اجرا شود. اگر روند را ترک کنید یا پنجره را ببندید ، OTBR Docker پایین می آید.