Google is committed to advancing racial equity for Black communities. See how.
本頁面由 Cloud Translation API 翻譯而成。
Switch to English

OpenWeave +快樂跨網絡組播Inet層HOWTO

jinja-placeholder-0 .md“> 在GitHub上查看源代碼

您已決定要嘗試使用OpenWeave進行跨網絡多播。該使用方法指南說明瞭如何使用Happy網絡仿真工具來設置虛擬拓撲,該拓撲演示瞭如何在具有組播代理的兩個不同網絡上使用OpenWeave的Inet層。

下載並構建mcproxy

IPv6多播代理守護程序mcproxy用於在兩個不相交的IPv6網絡鏈路上代理/轉發/路由IPv6多播流量。

儘管克隆和構建mcproxy守護程序可執行文件的位置並不是特別重要,但是請注意在下面的步驟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 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

為Happy拓撲創建mcproxy配置

在上面在步驟4中創建的Happy拓撲中,這將在“ wpan0”上的模擬“ Thread”網絡接口與“ wlan0”上的模擬“ WiFi”網絡接口之間創建IPv6多播代理配置。

儘管在創建mcproxy.conf文件的位置並不是特別重要,但請注意在第6步中創建該文件的位置,因為它是相對路徑還是絕對路徑。

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

進行示範

這將在“ BorderRouter”節點上運行IPv6多播代理mcproxy ,然後分別在模擬的“ Thread”和“ WiFi”節點上啟動Inet層多播功能測試發送方和接收方。

如果願意,可以轉置發送方和接收方節點,該示例也將同樣起作用。

以下每組命令應從並行的獨立外殼運行。

邊界路由器

 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.