OpenWeave + Happy Cross Network Multicast Inet Layer HOWTO

مشاهده منبع در GitHub

شما تصمیم گرفته اید که می خواهید با استفاده از OpenWeave چندپخشی بین شبکه ای را آزمایش کنید. این راهنمای نحوه استفاده از ابزار شبیه‌سازی شبکه Happy را برای راه‌اندازی یک توپولوژی مجازی نشان می‌دهد که استفاده از لایه Inet OpenWeave را در دو شبکه مجزا با یک پروکسی چندپخشی نشان می‌دهد.

mcproxy را دانلود و بسازید

دیمون پروکسی چندپخشی IPv6، mcproxy ، برای پروکسی/پیشبرد/مسیریابی ترافیک چندپخشی IPv6 در دو پیوند شبکه IPv6 مجزا خدمت می‌کند.

اگرچه مهم نیست که کجای mcproxy daemon را شبیه‌سازی می‌کنید و می‌سازید، لطفاً به مکانی که آن را به عنوان یک مسیر نسبی یا مطلق برای رسیدن به آن در مرحله 6 زیر لازم است، توجه داشته باشید.

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

شاد دانلود کنید، بسازید و نصب کنید

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

Openweave-core را دانلود و بسازید

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

توپولوژی Happy را ایجاد کنید

این یک توپولوژی بسیار شبیه به Happy 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

پیکربندی mcproxy را برای توپولوژی Happy ایجاد کنید

این یک پیکربندی پروکسی چندپخشی IPv6 بین رابط شبکه شبیه‌سازی‌شده «Thread» در «wpan0» و رابط شبکه «WiFi» شبیه‌سازی‌شده در «wlan0» در توپولوژی Happy که در بالا در مرحله 4 ایجاد کردیم، ایجاد می‌کند.

اگرچه مهم نیست که کجا فایل mcproxy.conf را ایجاد می کنید، لطفاً به مکانی که آن را به عنوان یک مسیر نسبی یا مطلق برای آن در مرحله 6 ایجاد می کنید، توجه داشته باشید.

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

تظاهرات را اجرا کنید

این پروکسی چندپخشی IPv6، mcproxy را روی گره "BorderRouter" اجرا می کند و سپس فرستنده و گیرنده آزمایشی عملکردی چندپخشی لایه Inet را به ترتیب روی گره های "Thread" و "WiFi" شبیه سازی شده راه اندازی می کند.

در صورت تمایل، می‌توانید گره‌های فرستنده و گیرنده را جابه‌جا کنید و مثال نیز به همان اندازه کار خواهد کرد.

هر یک از مجموعه دستورات زیر باید از پوسته های موازی و مستقل اجرا شوند.

روتر مرزی

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

گیرنده

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

فرستنده

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

خروجی

فرستنده

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.

گیرنده

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.