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 mcproxysudo apt-get install qt5-qmake qt5-defaultcd mcproxy/mcproxyqmakemake
Scarica, crea e installa felice
git clone https://github.com/openweave/happy.git happysudo apt-get install bridge-utils python-lockfile python-psutil python-setuptoolscd happysudo make install
Scarica e crea openweave-core
git clone https://github.com/openweave/openweave-core.git openweave-corecd openweave-core./configuremake
Stabilire la topologia Felice
Questo crea una topologia molto simile al Felice Codelab .
happy-network-add ThreadNetwork threadhappy-network-address ThreadNetwork fd00:0000:0000:0006::happy-network-add WiFiNetwork wifihappy-network-address WiFiNetwork fd00:0000:0000:0001::happy-network-address WiFiNetwork 192.168.1.0happy-node-add ThreadNodehappy-node-add WiFiNodehappy-node-add BorderRouterhappy-node-join ThreadNode ThreadNetworkhappy-node-join WiFiNode WiFiNetworkhappy-node-join BorderRouter ThreadNetworkhappy-node-join BorderRouter WiFiNetworkhappy-network-route --prefix fd00:0000:0000:0006:: ThreadNetwork BorderRouterhappy-network-route --prefix fd00:0000:0000:0001:: WiFiNetwork BorderRouterhappy-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 WiFiNodeopenweave-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 ThreadNodeopenweave-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.
Visualizza la fonte su GitHub