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.