Ver fuente en GitHub |
Ha decidido que le gustaría experimentar con la multidifusión entre redes utilizando OpenWeave. Esta guía práctica ilustra el uso de la herramienta de simulación de red Happy para configurar una topología virtual que demuestra el uso de la capa Inet de OpenWeave en dos redes distintas con un proxy de multidifusión.
Descarga y compila mcproxy
El IPv6 multicast demonio de proxy, mcproxy , sirve para proxy de avance / ruta IPv6 tráfico / multidifusión a través de dos enlaces de red IPv6 disjuntos.
Si bien no es particularmente importante cuando se clona y construir el mcproxy demonio ejecutable, por favor tome nota de la ubicación donde se crea como una ruta relativa o absoluta de que es necesario en el Paso 6 a continuación.
git clone https://github.com/mcproxy/mcproxy.git mcproxysudo apt-get install qt5-qmake qt5-defaultcd mcproxy/mcproxyqmakemake
Descargue, compile e instale happy
git clone https://github.com/openweave/happy.git happysudo apt-get install bridge-utils python-lockfile python-psutil python-setuptoolscd happysudo make install
Descarga y compila openweave-core
git clone https://github.com/openweave/openweave-core.git openweave-corecd openweave-core./configuremake
Establecer la topología Happy
Esto crea una topología muy similar a la de experimento feliz .
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
Cree la configuración mcproxy para la topología Happy
Esto crea una configuración de proxy de multidifusión IPv6 entre la interfaz de red "Thread" simulada en "wpan0" y la interfaz de red "WiFi" simulada en "wlan0" en la topología Happy que creamos en el paso 4.
Si bien no es particularmente importante cuando se crea el mcproxy.conf archivo, por favor tome nota de la ubicación donde se crea como una ruta relativa o absoluta de que es necesario en el paso 6.
cat > mcproxy.conf << EOF
protocol MLDv2;
pinstance myProxy: wpan0 ==> wlan0;
EOF
Ejecuta la demostración
Esto va en el proxy de multidifusión IPv6, mcproxy , en el nodo "BorderRouter" y luego lanza la capa Inet remitente prueba de multidifusión funcional y receptor en los nodos "WiFi" simulado "hilo" y, respectivamente.
Si lo desea, puede transponer los nodos emisor y receptor y el ejemplo funcionará igualmente.
Cada uno de los siguientes conjuntos de comandos debe ejecutarse desde shells independientes y paralelos.
Enrutador de borde
happy-shell BorderRouter<path-to-mcproxy-from-step1>/mcproxy -f <path-to-mcproxy-config-from-step5>/mcproxy.conf
Receptor
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
Remitente
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
Producción
Remitente
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.
Receptor
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.
Ver fuente en GitHub