OpenWeave + Happy Cross Network Multicast Inet Layer HOWTO

Xem nguồn trên GitHub

Bạn đã quyết định rằng bạn muốn thử nghiệm với phát đa hướng xuyên mạng bằng OpenWeave. Hướng dẫn cách thực hiện này minh họa việc sử dụng công cụ mô phỏng mạng Happy để thiết lập cấu trúc liên kết ảo thể hiện bằng cách sử dụng lớp Inet của OpenWeave trên hai mạng riêng biệt với proxy đa hướng.

Tải xuống và xây dựng mcproxy

Các IPv6 multicast daemon proxy, mcproxy , phục vụ để proxy / mong rout Ipv6 giao thông / multicast qua hai liên kết mạng rời nhau IPv6.

Trong khi nó không phải là đặc biệt quan trọng mà bạn sao chép và xây dựng mcproxy daemon thực thi, xin vui lòng lưu ý các vị trí mà bạn tạo ra nó như là một đường dẫn tương đối hoặc tuyệt đối để nó là cần thiết trong Bước 6 dưới đây.

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

Tải xuống, xây dựng và cài đặt vui vẻ

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

Tải xuống và xây dựng openweave-core

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

Thiết lập cấu trúc liên kết Hạnh phúc

Điều này tạo ra một cấu trúc liên kết rất giống với hạnh phúc 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

Tạo cấu hình mcproxy cho cấu trúc liên kết Happy

Thao tác này tạo cấu hình proxy đa hướng IPv6 giữa giao diện mạng "Thread" mô phỏng trên "wpan0" và giao diện mạng "WiFi" mô phỏng trên "wlan0" trong cấu trúc liên kết Happy mà chúng tôi đã tạo ở trên ở Bước 4.

Trong khi nó không phải là đặc biệt quan trọng mà bạn tạo ra các mcproxy.conf tập tin, xin vui lòng lưu ý các vị trí mà bạn tạo ra nó như là một đường dẫn tương đối hoặc tuyệt đối với nó là cần thiết trong Bước 6.

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

Chạy cuộc biểu tình

Này chạy proxy multicast IPv6, mcproxy , vào nút "BorderRouter" và sau đó ra mắt lớp Inet chức năng multicast kiểm tra gửi và người nhận trên mô phỏng "Chủ đề" và "WiFi" nút tương ứng.

Nếu muốn, bạn có thể chuyển đổi nút người gửi và người nhận và ví dụ này cũng sẽ hoạt động như nhau.

Mỗi bộ lệnh sau đây phải được chạy từ các trình bao song song, độc lập.

Bộ định tuyến biên giới

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

Người nhận

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

Người gửi

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

Đầu ra

Người gửi

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.

Người nhận

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.