OpenThread Sınır Yönlendirici (OTBR), bir cihaza katılmak için bir Thread RCP düğümü gerektirir Thread ağı. OTBR Docker, hem fiziksel RCP (OpenThread) hem de donanım anahtarı) veya simüle edilmiş RCP.
OTBR Docker'ı başka fiziksel Thread cihazlarına bağlamak istiyorsanız bir fiziksel RCP Simüle edilmiş bir İş Parçacığı (Thread) ile sınır yönlendirmeyi test etmek istiyorsanız ağ için simüle edilmiş bir RCP kullanın.
Fiziksel RCP
Şu sorgu için desteklenen herhangi bir OpenThread platformunu kullanın: fiziksel RCP RCP oluşturma ve Flash'ı inceleyin daha fazla bilgi için OpenThread Sınır Yönlendirici Derleme ve Yapılandırma kılavuzundaki adımı ekleyebilirsiniz.
RCP'yi ekleyin
- Oluşturma ve yanıp sönme işleminden sonra RCP cihazını çalışan makineye bağlayın USB üzerinden OTBR Docker.
/dev
kontrol ederek RCP cihazının seri bağlantı noktası adını belirleyin:ls /dev/tty*
/dev/ttyACMO
OTBR Docker container'ını başlatma
Yeni bir terminal penceresinde RCP'nin seri bağlantı noktasına başvurarak OTBR Docker'ı başlatın.
Örneğin, RCP /dev/ttyACM0
konumuna eklenirse:
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
İşlem başarılı olduktan sonra şuna benzer bir çıkış elde edersiniz:
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 çalışıyor. Bu terminal penceresini açık ve çalışır durumda bırakın: arka plan. İşlemden çıkar veya pencereyi kapatırsanız OTBR Docker gider aşağı tüketim.
Bağlantıyı Test Et'e giderek OTBR Docker kurulumuna devam edin.
Simüle RCP
Simüle edilen RCP için simüle edilmiş bir OpenThread RCP derlemesi kullanın. Bu, şu durumlarda yararlıdır: Simüle edilmiş bir Thread ağıyla sınır yönlendirmeyi tek bir cihazda test etmek istiyorsanız üretiliyor.
Simüle edilen RCP uygulamasını oluşturma
OpenThread deposunu klonlayın:
.cd ~
git clone https://github.com/openthread/openthread
Simüle edilen uygulamayı önyükleyin ve derleyin:
.cd openthread
./script/bootstrap
./script/cmake-build simulation
İki yönlü veri akışı ayarlama
İki yönlü veri akışı oluşturmak için socat
komut satırı yardımcı programını kullanma
kullanarak simüle edilmiş RCP ile OTBR Docker arasında veri aktarımı yapabilir.
Çalışır durumda bırakılması gerektiğinden, bu işlemi çalıştırmak için yeni bir terminal penceresi açın OTBR Docker çalışırken.
socat
uygulamasını yükleyin:sudo apt-get install socat
Başlangıç
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]
Çıkışta kalın olarak yazılmış iki seri bağlantı noktasını not edin. Şunun için ilkiyi kullanın: ikincisi ise OTBR Docker'ı içeriyor. Örnek çıkışta yukarıda:
/dev/pts/2
= Simüle edilmiş RCP bağlantı noktası/dev/pts/7
= OTBR Docker
Bu terminal penceresini açık ve arka planda çalışır durumda bırakın.
Simüle edilen RCP'yi başlat
Simüle edilen RCP'yi çalıştırmak için yeni bir terminal penceresi açın (bırakılması gerekir) yardımcı olur.
socat
çıkışındaki ilk seri bağlantı noktasını kullanarak simüle edilen RCP'yi başlatın bir uygulamadır. Örneğin,socat
çıkışından/dev/pts/2
kullanıyorsanız:~/openthread/build/simulation/examples/apps/ncp/ot-rcp 1 > /dev/pts/2 < /dev/pts/2
Bu komuttan çıkış yok. Bu terminal penceresini açık bırakın ve arka planda çalışıyor.
OTBR Docker container'ını başlatma
Yeni bir terminal penceresindeki ikinci seri bağlantı noktasını kullanarak OTBR Docker'ı başlatın
socat
çıkış. Örneğin, socat
çıkışından /dev/pts/7
kullanıyorsanız:
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
Komutun aynı zamanda /dev/ttyUSB0
bağlantı noktasını da kullandığını unutmayın. Bu, varsayılan ayardır
ekleme noktası ekleyin.
İşlem başarılı olduktan sonra şuna benzer bir çıkış elde edersiniz:
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 çalışıyor. Bu terminal penceresini açık ve çalışır durumda bırakın: arka plan. İşlemden çıkar veya pencereyi kapatırsanız OTBR Docker gider aşağı tüketim.