Google is committed to advancing racial equity for Black communities. See how.
หน้านี้ได้รับการแปลโดย Cloud Translation API
Switch to English

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 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 topology

สิ่งนี้จะสร้างการกำหนดค่าพร็อกซีหลายผู้รับ IPv6 ระหว่างอินเทอร์เฟซเครือข่าย "เธรด" จำลองบน "wpan0" และอินเทอร์เฟซเครือข่าย "WiFi" จำลองบน "wlan0" ในโทโพโลยี Happy ที่เราสร้างไว้ข้างต้นในขั้นตอนที่ 4

แม้ว่าการสร้างไฟล์ mcproxy.conf จะไม่มีความสำคัญเป็น mcproxy.conf แต่โปรดสังเกตตำแหน่งที่คุณสร้างเป็นเส้นทางสัมพัทธ์หรือพา ธ ที่แน่นอนในขั้นตอนที่ 6

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

เรียกใช้การสาธิต

การดำเนินการนี้จะเรียกใช้พร็อกซีมัลติคาสต์ IPv6, mcproxy บนโหนด "BorderRouter" จากนั้นจึงเปิดตัวผู้ส่งและผู้รับทดสอบการทำงานแบบมัลติคาสต์ชั้น Inet บนโหนด "เธรด" และ "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.