Google s'est engagé à promouvoir l'équité raciale pour les communautés noires. Regarde comment.
Cette page a été traduite par l'API Cloud Translation.
Switch to English

Exécutez OTBR Docker

OpenThread Border Router (OTBR) nécessite un nœud Thread RCP pour rejoindre un réseau Thread. OTBR Docker prend en charge à la fois un RCP physique (dongle OpenThread) ou un RCP simulé.

Si vous souhaitez connecter OTBR Docker à d'autres périphériques Thread physiques, utilisez un RCP physique. Si vous souhaitez tester le routage aux frontières avec un réseau Thread simulé, utilisez un RCP simulé.

RCP physique

Utilisez n'importe quelle plate-forme OpenThread prise en charge pour le RCP physique. Pour plus d'informations, reportez-vous à l'étape Build and flash RCP du guide OpenThread Border Router Build and Configuration.

Fixez le RCP

  1. Après la construction et le flashage, connectez l'appareil RCP à la machine exécutant OTBR Docker via USB.
  2. Déterminez le nom du port série du périphérique RCP en vérifiant /dev :
     ls /dev/tty*
    /dev/ttyACMO

Démarrez le conteneur OTBR Docker

Dans une nouvelle fenêtre de terminal, démarrez OTBR Docker, en référençant le port série du RCP. Par exemple, si le RCP est monté sur /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 

En cas de succès, vous devriez avoir une sortie similaire à celle-ci:

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 est maintenant en cours d'exécution. Laissez cette fenêtre de terminal ouverte et exécutée en arrière-plan. Si vous quittez le processus ou fermez la fenêtre, OTBR Docker descendra.

Accédez à Test de connectivité pour continuer la configuration OTBR Docker.

RCP simulé

Utilisez une construction OpenThread RCP simulée pour le RCP simulé. Ceci est utile si vous souhaitez tester le routage de bordure avec un réseau Thread simulé sur une seule machine.

Construire l'application RCP simulée

  1. Clonez le référentiel OpenThread:
     cd ~
    git clone https://github.com/openthread/openthread 
  2. Démarrez et créez l'application simulée:
     cd openthread
    ./bootstrap
    make -f examples/Makefile-simulation
    

Configurer un flux de données bidirectionnel

Utilisez l'utilitaire de ligne de commande socat pour établir un flux de données bidirectionnel pour transférer des données entre le RCP simulé et OTBR Docker.

  1. Ouvrez une nouvelle fenêtre de terminal pour exécuter ce processus, car il doit être laissé en cours d'exécution pendant l'exécution d'OTBR Docker.
  2. Installez socat :
     sudo apt-get install socat 
  3. Démarrer 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]
    

Notez les deux ports série en gras dans la sortie. Utilisez le premier pour le RCP simulé et le second pour OTBR Docker. Dans l'exemple de sortie ci-dessus:

  • /dev/pts/2 = port RCP simulé
  • /dev/pts/7 = Docker OTBR

Laissez cette fenêtre de terminal ouverte et exécutée en arrière-plan.

Démarrez le RCP simulé

  1. Ouvrez une nouvelle fenêtre de terminal pour exécuter le RCP simulé, car il doit être laissé en cours d'exécution pendant l'exécution d'OTBR Docker.
  2. À l'aide du premier port série de la sortie socat , démarrez l'application RCP simulée. Par exemple, si vous utilisez /dev/pts/2 partir de la sortie socat :
     ~/openthread/output/x86_64-unknown-linux-gnu/bin/ot-rcp 1 \
        > /dev/pts/2 < /dev/pts/2 

Il n'y a pas de sortie de cette commande. Laissez cette fenêtre de terminal ouverte et exécutée en arrière-plan.

Démarrez le conteneur OTBR Docker

Dans une nouvelle fenêtre de terminal, démarrez OTBR Docker, en utilisant le deuxième port série dans la sortie socat . Par exemple, si vous utilisez /dev/pts/7 depuis la sortie 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 

Notez que la commande utilise également le port /dev/ttyUSB0 . Il s'agit du point de montage par défaut dans le conteneur Docker.

En cas de succès, vous devriez avoir une sortie similaire à celle-ci:

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 est maintenant en cours d'exécution. Laissez cette fenêtre de terminal ouverte et exécutée en arrière-plan. Si vous quittez le processus ou fermez la fenêtre, OTBR Docker descendra.