OpenWeave + Happy Cross Network Multicast Inet Layer HOWTO

Visualizza la fonte su GitHub

Hai deciso che vorresti sperimentare il multicast tra reti utilizzando OpenWeave. Questa guida illustra l'utilizzo dello strumento di simulazione di rete Happy per impostare una topologia virtuale che dimostri l'utilizzo del livello Inet di OpenWeave su due reti distinte con un proxy multicast.

Scarica e crea mcproxy

L'IPv6 multicast daemon proxy, mcproxy , serve a proxy / avanti / route IPv6 traffico multicast attraverso due collegamenti di rete disgiunti IPv6.

Anche se non è particolarmente importante quando si clona e costruire il mcproxy daemon eseguibile, si prega di prendere nota della posizione in cui si crea come un percorso relativo o assoluto ad essa è necessario nel passaggio 6 di seguito.

git clone https://github.com/mcproxy/mcproxy.git mcproxy
sudo apt-get install qt5-qmake qt5-default
cd mcproxy/mcproxy
qmake
make

Scarica, crea e installa felice

git clone https://github.com/openweave/happy.git happy
sudo apt-get install bridge-utils python-lockfile python-psutil python-setuptools
cd happy
sudo make install

Scarica e crea openweave-core

git clone https://github.com/openweave/openweave-core.git openweave-core
cd openweave-core
./configure
make

Stabilire la topologia Felice

Questo crea una topologia molto simile al Felice Codelab .

happy-network-add ThreadNetwork thread
happy-network-address ThreadNetwork fd00:0000:0000:0006::
happy-network-add WiFiNetwork wifi
happy-network-address WiFiNetwork fd00:0000:0000:0001::
happy-network-address WiFiNetwork 192.168.1.0
happy-node-add ThreadNode
happy-node-add WiFiNode
happy-node-add BorderRouter
happy-node-join ThreadNode ThreadNetwork
happy-node-join WiFiNode WiFiNetwork
happy-node-join BorderRouter ThreadNetwork
happy-node-join BorderRouter WiFiNetwork
happy-network-route --prefix fd00:0000:0000:0006:: ThreadNetwork BorderRouter
happy-network-route --prefix fd00:0000:0000:0001:: WiFiNetwork BorderRouter
happy-network-route --prefix 192.168.1.0 WiFiNetwork BorderRouter

Creare la configurazione mcproxy per la topologia Happy

Questo crea una configurazione proxy multicast IPv6 tra l'interfaccia di rete "Thread" simulata su "wpan0" e l'interfaccia di rete "WiFi" simulata su "wlan0" nella topologia Happy che abbiamo creato sopra nel passaggio 4.

Anche se non è particolarmente importante in cui si crea il mcproxy.conf di file, si prega di prendere nota della posizione in cui si crea come un percorso relativo o assoluto ad esso è necessario al punto 6.

cat > mcproxy.conf << EOF
protocol MLDv2;
pinstance myProxy: wpan0 ==> wlan0;
EOF

Eseguire la dimostrazione

Questo viene eseguito il proxy multicast IPv6, mcproxy , sul nodo "BorderRouter" e quindi avvia lo strato Inet mittente prova multicast funzionale e ricevitore sul "filo" simulato e nodi "WiFi", rispettivamente.

Se lo desideri, puoi trasporre i nodi del mittente e del destinatario e anche l'esempio funzionerà allo stesso modo.

Ciascuno dei seguenti set di comandi deve essere eseguito da shell parallele e indipendenti.

Router di confine

happy-shell BorderRouter
<path-to-mcproxy-from-step1>/mcproxy -f <path-to-mcproxy-config-from-step5>/mcproxy.conf

Ricevitore

happy-shell WiFiNode
openweave-core/src/test-apps/TestInetLayerMulticast -6 --udp -I wlan0 -g 5 --group-expected-rx-packets 5 --group-expected-tx-packets 0 -l

Mittente

happy-shell ThreadNode
openweave-core/src/test-apps/TestInetLayerMulticast -6 --udp -I wpan0 -g 5 --group-expected-rx-packets 0 --group-expected-tx-packets 5 -L

Produzione

Mittente

openweave-core/src/test-apps/TestInetLayerMulticast -6 --udp -I wlan0 -g 5 ... -L
Weave Node ready to service events; PID: 50845; PPID: 46482
Using UDP/IPv6, device interface: wpan0 (w/o LwIP)
Will join multicast group ff15::5
1/5 transmitted for multicast group 5
2/5 transmitted for multicast group 5
3/5 transmitted for multicast group 5
4/5 transmitted for multicast group 5
5/5 transmitted for multicast group 5
Will leave multicast group ff15::5
WEAVE:IN: Async DNS worker thread woke up.
WEAVE:IN: Async DNS worker thread exiting.
WEAVE:IN: Async DNS worker thread woke up.
WEAVE:IN: Async DNS worker thread exiting.

Ricevitore

openweave-core/src/test-apps/TestInetLayerMulticast -6 --udp -I wlan0 -g 5 ... -l
Weave Node ready to service events; PID: 50826; PPID: 46499
Using UDP/IPv6, device interface: wlan0 (w/o LwIP)
Will join multicast group ff15::5
Listening...
UDP packet received from fd00::6:8693:b7ff:fe5a:1dc1:4242 to ff15::5:4242 (59 bytes)
1/5 received for multicast group 5
UDP packet received from fd00::6:8693:b7ff:fe5a:1dc1:4242 to ff15::5:4242 (59 bytes)
2/5 received for multicast group 5
UDP packet received from fd00::6:8693:b7ff:fe5a:1dc1:4242 to ff15::5:4242 (59 bytes)
3/5 received for multicast group 5
UDP packet received from fd00::6:8693:b7ff:fe5a:1dc1:4242 to ff15::5:4242 (59 bytes)
4/5 received for multicast group 5
UDP packet received from fd00::6:8693:b7ff:fe5a:1dc1:4242 to ff15::5:4242 (59 bytes)
5/5 received for multicast group 5
Will leave multicast group ff15::5
WEAVE:IN: Async DNS worker thread woke up.
WEAVE:IN: Async DNS worker thread exiting.
WEAVE:IN: Async DNS worker thread woke up.
WEAVE:IN: Async DNS worker thread exiting.