OpenWeave + Happy Cross Network Multicast Inet Layer HOWTO

Lihat sumber di GitHub

Anda telah memutuskan bahwa Anda ingin bereksperimen dengan multicast lintas jaringan menggunakan OpenWeave. Panduan cara ini menggambarkan penggunaan alat simulasi jaringan Happy untuk menyiapkan topologi virtual yang menunjukkan penggunaan lapisan Inet OpenWeave di dua jaringan berbeda dengan proxy multicast.

Unduh dan buat mcproxy

IPv6 multicast daemon proxy, mcproxy , berfungsi untuk proxy / maju / rute IPv6 lalu lintas multicast di dua link jaringan menguraikan IPv6.

Meskipun tidak terlalu penting di mana Anda mengkloning dan membangun mcproxy daemon dieksekusi, harap perhatikan lokasi di mana Anda membuat itu sebagai jalan relatif atau absolut untuk itu perlu pada Langkah 6 di bawah ini.

git clone https://github.com/mcproxy/mcproxy.git mcproxy
sudo apt-get install qt5-qmake qt5-default
cd mcproxy/mcproxy
qmake
make

Unduh, bangun, dan instal dengan senang

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

Unduh dan buat openweave-core

git clone https://github.com/openweave/openweave-core.git openweave-core
cd openweave-core
./configure
make

Tetapkan topologi Happy

Hal ini menciptakan topologi sangat mirip dengan Selamat 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

Buat konfigurasi mcproxy untuk topologi Happy

Ini menciptakan konfigurasi proxy multicast IPv6 antara antarmuka jaringan "Thread" yang disimulasikan pada "wpan0" dan antarmuka jaringan "WiFi" yang disimulasikan pada "wlan0" di topologi Happy yang kami buat di atas pada Langkah 4.

Meskipun tidak terlalu penting di mana Anda membuat mcproxy.conf file, silahkan perhatikan lokasi di mana Anda membuat itu sebagai jalan relatif atau absolut untuk itu perlu pada Langkah 6.

cat > mcproxy.conf << EOF
protocol MLDv2;
pinstance myProxy: wpan0 ==> wlan0;
EOF

Jalankan demonstrasi

Ini menjalankan IPv6 proksi multicast, mcproxy , pada "BorderRouter" simpul dan kemudian meluncurkan Inet lapisan pengirim tes multicast fungsional dan penerima pada simulasi "Thread" dan "WiFi" node, masing-masing.

Jika mau, Anda dapat mengubah posisi node pengirim dan penerima dan contohnya juga akan berfungsi dengan baik.

Setiap set perintah berikut harus dijalankan dari shell paralel dan independen.

Perute perbatasan

happy-shell BorderRouter
<path-to-mcproxy-from-step1>/mcproxy -f <path-to-mcproxy-config-from-step5>/mcproxy.conf

Penerima

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

Pengirim

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

Keluaran

Pengirim

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.

Penerima

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.