Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.
Se usó la API de Cloud Translation para traducir esta página.
Switch to English

Ejecute OTBR Docker

El enrutador de borde OpenThread (OTBR) requiere un nodo Thread RCP para unirse a una red Thread. OTBR Docker proporciona soporte tanto para un RCP físico (dongle OpenThread) como para un RCP simulado.

Si desea conectar OTBR Docker a otros dispositivos Thread físicos, use un RCP físico. Si desea probar el enrutamiento fronterizo con una red de subprocesos simulada, use un RCP simulado.

RCP físico

Utilice cualquier plataforma OpenThread compatible para el RCP físico. Consulte el paso Compilar y actualizar RCP de la guía de configuración y compilación del enrutador de borde OpenThread para obtener más información.

Adjuntar el RCP

  1. Después de construir y flashear, conecte el dispositivo RCP a la máquina que ejecuta OTBR Docker mediante USB.
  2. Determine el nombre del puerto serie para el dispositivo RCP marcando /dev :
    ls /dev/tty*
    /dev/ttyACMO

Inicie el contenedor OTBR Docker

En una nueva ventana de terminal, inicie OTBR Docker, haciendo referencia al puerto serie del RCP. Por ejemplo, si el RCP está montado en /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

Si tiene éxito, debería tener una salida similar a esta:

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 ahora se está ejecutando. Deje esta ventana de terminal abierta y ejecutándose en segundo plano. Si sale del proceso o cierra la ventana, OTBR Docker se apagará.

Vaya a Probar conectividad para continuar con la configuración de OTBR Docker.

RCP simulado

Utilice una compilación RCP OpenThread simulada para el RCP simulado. Esto es útil si desea probar el enrutamiento de borde con una red Thread simulada en una sola máquina.

Construya la aplicación RCP simulada

  1. Clonar el repositorio de OpenThread:
    cd ~
    git clone https://github.com/openthread/openthread
  2. Bootstrap y compile la aplicación simulada:
    cd openthread
    ./bootstrap
    make -f examples/Makefile-simulation
    

Configurar un flujo de datos bidireccional

Utilice la utilidad de línea de comandos socat para establecer un flujo de datos bidireccional para transferir datos entre el RCP simulado y OTBR Docker.

  1. Abra una nueva ventana de terminal para ejecutar este proceso, ya que debe dejarse en ejecución mientras se ejecuta OTBR Docker.
  2. Instalar socat :
    sudo apt-get install socat
  3. Iniciar 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]
    

Tome nota de los dos puertos seriales en negrita en la salida. Utilice el primero para el RCP simulado y el segundo para OTBR Docker. En la salida de ejemplo anterior:

  • /dev/pts/2 = puerto RCP simulado
  • /dev/pts/7 = OTBR Docker

Deje esta ventana de terminal abierta y ejecutándose en segundo plano.

Iniciar el RCP simulado

  1. Abra una nueva ventana de terminal para ejecutar el RCP simulado, ya que debe dejarse en ejecución mientras se ejecuta OTBR Docker.
  2. Utilizando el primer puerto serie en la salida socat , inicie la aplicación RCP simulada. Por ejemplo, si se utiliza /dev/pts/2 de la socat salida:
    ~/openthread/output/x86_64-unknown-linux-gnu/bin/ot-rcp 1 \
        > /dev/pts/2 < /dev/pts/2

No hay salida de este comando. Deje esta ventana de terminal abierta y ejecutándose en segundo plano.

Inicie el contenedor OTBR Docker

En una nueva ventana de terminal, inicie OTBR Docker, utilizando el segundo puerto serie en la salida socat . Por ejemplo, si usa /dev/pts/7 de la salida de 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

Tenga en cuenta que el comando también utiliza el puerto /dev/ttyUSB0 . Este es el punto de montaje predeterminado dentro del contenedor Docker.

Si tiene éxito, debería tener una salida similar a esta:

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 ahora se está ejecutando. Deje esta ventana de terminal abierta y ejecutándose en segundo plano. Si sale del proceso o cierra la ventana, OTBR Docker se apagará.