Google은 흑인 공동체를 위한 인종적 평등을 추구하기 위해 노력하고 있습니다. 자세히 알아보기

OTBR 도커 실행

GitHub에서 소스 보기

OTBR(OpenThread Border Router)은 스레드 네트워크에 참여하기 위해 스레드 RCP 노드가 필요합니다. OTBR Docker는 물리적 RCP(OpenThread 동글) 또는 시뮬레이션된 RCP를 모두 지원합니다.

OTBR Docker를 다른 물리적 스레드 장치에 연결하려면 물리적 RCP를 사용하십시오. 시뮬레이션된 스레드 네트워크로 경계 라우팅을 테스트하려면 시뮬레이션된 RCP를 사용하십시오.

물리적 RCP

어떤 사용 지원 OpenThread 플랫폼을 물리적 RCP에 대해. 참고 항목 빌드와 플래시 RCP에 대한 자세한 정보는 OpenThread 국경 라우터 구축 및 구성 가이드에서 단계를.

RCP 부착

  1. 빌드 및 플래싱 후 USB를 통해 OTBR Docker를 실행하는 머신에 RCP 장치를 연결합니다.
  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 도커 설치를 계속합니다.

시뮬레이션된 RCP

시뮬레이션된 RCP에 대해 시뮬레이션된 OpenThread RCP 빌드를 사용합니다. 이것은 단일 시스템에서 시뮬레이션된 스레드 네트워크로 경계 라우팅을 테스트하려는 경우에 유용합니다.

시뮬레이션된 RCP 애플리케이션 빌드

  1. 복제하려면 OpenThread 저장소 :

    cd ~
    git clone https://github.com/openthread/openthread
    

  2. 부트 스트랩과 시뮬레이션 응용 프로그램을 빌드 :

    cd openthread
    ./bootstrap
    make -f examples/Makefile-simulation
    

양방향 데이터 스트림 설정

사용 socat 모의 RCP와 OTBR 부두 노동자 사이의 전송 데이터를 양방향 데이터 스트림을 설정하는 명령 행 유틸리티를.

  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. OTBR Docker가 실행되는 동안 실행 상태를 유지해야 하므로 시뮬레이션된 RCP를 실행하려면 새 터미널 창을 엽니다.

  2. 필드에 첫 번째 직렬 포트를 사용 socat 출력 시뮬레이트 RCP 애플리케이션을 시작한다. 예를 들어, 사용 /dev/pts/2 로부터 socat 출력 :

    ~/openthread/output/simulation/bin/ot-rcp 1 > /dev/pts/2 < /dev/pts/2
    

이 명령의 출력은 없습니다. 이 터미널 창을 열어두고 백그라운드에서 실행합니다.

OTBR Docker 컨테이너 시작

새로운 단말기 창에서, 상기 제 직렬 포트를 사용 OTBR 도커 시작 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가 다운됩니다.