GitHubでソースを表示 |
OpenWeaveを使用してクロスネットワークマルチキャストを試してみることにしました。このハウツーガイドでは、Happyネットワークシミュレーションツールを使用して、マルチキャストプロキシを使用して2つの異なるネットワークでOpenWeaveのInetレイヤーを使用する方法を示す仮想トポロジを設定する方法について説明します。
mcproxyをダウンロードしてビルドします
IPv6は、プロキシデーモンマルチキャストmcproxy 、2つの互いに素IPv6ネットワークリンクを介してプロキシ/順方向/経路IPv6マルチキャストトラフィックに役立ちます。
どこで複製し、構築することが特に重要ではないですがmcproxy実行可能なデーモン、あなたはそれへの相対パスまたは絶対パスとして作成する場所をメモをしてください、以下のステップ6で必要です。
git clone https://github.com/mcproxy/mcproxy.git mcproxysudo apt-get install qt5-qmake qt5-defaultcd mcproxy/mcproxyqmakemake
ハッピーをダウンロード、ビルド、インストール
git clone https://github.com/openweave/happy.git happysudo apt-get install bridge-utils python-lockfile python-psutil python-setuptoolscd happysudo make install
ダウンロードしてビルドopenweaveコア
git clone https://github.com/openweave/openweave-core.git openweave-corecd openweave-core./configuremake
Happyトポロジを確立する
これは非常によく似トポロジ作成ハッピーコードラボを。
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
ハッピートポロジのためmcproxyコンフィギュレーションを作成します。
これにより、上記の手順4で作成したHappyトポロジで、「wpan0」のシミュレートされた「スレッド」ネットワークインターフェイスと「wlan0」のシミュレートされた「WiFi」ネットワークインターフェイスの間にIPv6マルチキャストプロキシ構成が作成されます。
それはあなたが作成する場合に特に重要ではありませんがmcproxy.confファイルを、あなたはそれへの相対パスまたは絶対パスとして作成する場所をメモをしてください。ステップ6必要です。
cat > mcproxy.conf << EOF
protocol MLDv2;
pinstance myProxy: wpan0 ==> wlan0;
EOF
デモを実行する
これは、IPv6マルチキャストプロキシ実行mcproxyそれぞれ、「BorderRouter」ノードにして、[シミュレート「スレッド」と「無線LAN」のノードでのinet層マルチキャスト機能テスト送信側と受信側を起動します。
あなたが希望する場合は、送信側と受信側のノードを移調することができますし、例が均等に同様に動作します。
次の各コマンドセットは、並列の独立したシェルから実行する必要があります。
ボーダールーター
happy-shell BorderRouter<path-to-mcproxy-from-step1>/mcproxy -f <path-to-mcproxy-config-from-step5>/mcproxy.conf
レシーバー
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
送信者
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
出力
送信者
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.
GitHubでソースを表示