OpenWeave + Happy Cross Network Multicast Inet Layer HOWTO

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 토폴로지 설정

이것은 매우 유사한 토폴로지 생성 해피 코드 랩을 .

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 구성 만들기

이렇게하면 "wpan0"에서 시뮬레이션 된 "Thread"네트워크 인터페이스와 위에서 4 단계에서 만든 Happy 토폴로지의 "wlan0"에서 시뮬레이션 된 "WiFi"네트워크 인터페이스간에 IPv6 멀티 캐스트 프록시 구성이 생성됩니다.

당신이 만드는 곳이 특히 중요 아니지만 mcproxy.conf 파일을, 그것의 상대 또는 절대 경로가 6 단계에서 필요로 당신이 그것을 만들 위치에 주목하시기 바랍니다.

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

데모 실행

이것은 IPv6의 멀티 캐스트 프록시 실행 mcproxy 각각 "BorderRouter"노드를 다음 시뮬레이션 "스레드"와 "무선"노드에 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.