Voir la source sur GitHub |
Vous avez décidé d'expérimenter la multidiffusion inter-réseaux à l'aide d'OpenWeave. Ce guide pratique illustre l'utilisation de l'outil de simulation de réseau Happy pour configurer une topologie virtuelle qui illustre l'utilisation de la couche Inet d'OpenWeave sur deux réseaux distincts avec un proxy multidiffusion.
Télécharger et compiler mcproxy
Le multicast IPv6 démon proxy, mcproxy , sert à proxy / avant / route IPv6 trafic multicast sur deux liaisons réseau IPv6 de disjoints.
Bien qu'il soit particulièrement important lorsque vous cloner et construire le mcproxy démon exécutable, s'il vous plaît prendre note de l'endroit où vous créez comme un chemin absolu ou par rapport à il est nécessaire à l' étape 6 ci - dessous.
git clone https://github.com/mcproxy/mcproxy.git mcproxysudo apt-get install qt5-qmake qt5-defaultcd mcproxy/mcproxyqmakemake
Téléchargez, construisez et installez happy
git clone https://github.com/openweave/happy.git happysudo apt-get install bridge-utils python-lockfile python-psutil python-setuptoolscd happysudo make install
Télécharger et construire openweave-core
git clone https://github.com/openweave/openweave-core.git openweave-corecd openweave-core./configuremake
Établir la topologie Happy
Cela crée une topologie très similaire à la Bonne 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
Créer la configuration mcproxy pour la topologie Happy
Cela crée une configuration de proxy multidiffusion IPv6 entre l'interface réseau "Thread" simulée sur "wpan0" et l'interface réseau "WiFi" simulée sur "wlan0" dans la topologie Happy que nous avons créée ci-dessus à l'étape 4.
Bien qu'il soit particulièrement important lorsque vous créez le mcproxy.conf fichier, s'il vous plaît prendre note de l'endroit où vous créez comme un chemin absolu ou par rapport à il est nécessaire à l' étape 6.
cat > mcproxy.conf << EOF
protocol MLDv2;
pinstance myProxy: wpan0 ==> wlan0;
EOF
Lancer la démonstration
Cela va le proxy de multidiffusion IPv6, mcproxy , sur le nœud « BorderRouter » et lance alors l'expéditeur de test fonctionnel multicasts Inet et le récepteur sur la simulation « Thread » et noeuds « WiFi », respectivement.
Si vous le souhaitez, vous pouvez transposer les nœuds émetteur et récepteur et l'exemple fonctionnera également.
Chacun des ensembles de commandes suivants doit être exécuté à partir de shells parallèles et indépendants.
Routeur de frontière
happy-shell BorderRouter<path-to-mcproxy-from-step1>/mcproxy -f <path-to-mcproxy-config-from-step5>/mcproxy.conf
Destinataire
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
Expéditeur
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
Production
Expéditeur
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.
Destinataire
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.
Voir la source sur GitHub