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.