Wyświetl źródło na GitHub |
Zdecydowałeś, że chcesz poeksperymentować z multiemisją międzysieciową za pomocą OpenWeave. Ten poradnik ilustruje użycie narzędzia do symulacji sieci Happy, aby skonfigurować wirtualną topologię, która demonstruje użycie warstwy Inet OpenWeave w dwóch różnych sieciach z proxy multiemisji.
Pobierz i zbuduj mcproxy
IPv6 multicast demon proxy, mcproxy
, służy do przodu / proxy / trasa ruchu multicast IPv6 na dwóch połączeń sieciowych rozłączne IPv6.
Chociaż nie jest to szczególnie ważne tam, gdzie można sklonować i budować mcproxy
demon wykonywalny, prosimy o zapoznanie się z miejsca, w którym została utworzona jako ścieżkę względną lub bezwzględną do konieczne jest w kroku 6 poniżej.
git clone https://github.com/mcproxy/mcproxy.git mcproxy
sudo apt-get install qt5-qmake qt5-default
cd mcproxy/mcproxy
qmake
make
Pobieraj, kompiluj i instaluj happy
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
Pobierz i zbuduj openweave-core
git clone https://github.com/openweave/openweave-core.git openweave-core
cd openweave-core
./configure
make
Ustanów topologię Happy
To tworzy topologię bardzo podobną do tej okazji 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
Utwórz konfigurację mcproxy dla topologii Happy
Spowoduje to utworzenie konfiguracji proxy multiemisji IPv6 między symulowanym interfejsem sieciowym „Wątek” na „wpan0” a symulowanym interfejsem sieciowym „WiFi” na „wlan0” w topologii Happy, którą utworzyliśmy powyżej w kroku 4.
Chociaż nie jest to szczególnie ważne w przypadku tworzenia mcproxy.conf
plik, proszę zwrócić uwagę na miejsca, w którym została utworzona jako względna lub bezwzględna ścieżka do niego jest konieczne w kroku 6.
cat > mcproxy.conf << EOF
protocol MLDv2;
pinstance myProxy: wpan0 ==> wlan0;
EOF
Uruchom demonstrację
To prowadzi IPv6 multicast proxy, mcproxy
w węźle „BorderRouter”, a następnie uruchamia warstwę Inet multicast test funkcjonalny nadajnik i odbiornik na symulowanym „GW” i „WiFi” węzłów, odpowiednio.
Jeśli chcesz, możesz transponować węzły nadawcy i odbiorcy, a przykład będzie działał równie dobrze.
Każdy z poniższych zestawów poleceń powinien być uruchamiany z równoległych, niezależnych powłok.
Router graniczny
happy-shell BorderRouter
<path-to-mcproxy-from-step1>/mcproxy -f <path-to-mcproxy-config-from-step5>/mcproxy.conf
Odbiorca
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
Nadawca
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
Wynik
Nadawca
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.
Odbiorca
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.