
Windows 8 호스트 컴퓨터의 VirtualBox VM에 Ubuntu 12.04가 설치되어 있습니다. Windows 8에는 Android 휴대폰에 연결할 수 있는 호스팅된(무선) 네트워크가 있었습니다. 내 VM의 eth0 인터페이스는 브리지 어댑터를 사용하여 Windows 네트워크에 연결됩니다.
또한 무선 6LoWPAN(802.15.4를 사용하는 IPv6를 통한 저전력 무선 개인 영역 네트워크)이 동글을 사용하여 내 VM의 usb0 인터페이스에 연결됩니다. 이 네트워크에는 여러 개의 Zigduino 노드가 있습니다. 이제 휴대폰에서 이 센서 노드로 핑을 보내야 합니다.
phone ---802.11--- eth0 Ubuntu usb0 ---802.15.4--- sensor node
문제는 이미 이것에 몇 시간을 소비했지만 여전히 이 작업을 수행할 수 없다는 것입니다. 나는 eth0에 고정 IPv6 주소를 제공하고 radvd를 사용 aaaa::xxxx:xxxx:xxxx:xxxx
하여 접두사를 사용하여 이 인터페이스에서 라우터 광고를 수행합니다 aaaa::/64
(따라서 내 전화기도 aaaa::xxxx:xxxx:xxxx:xxxx
주소를 얻습니다). 내 동글과 센서 노드의 IP 주소도 aaaa::xxxx:xxxx:xxxx:xxxx
. 핑을 보내는 동안 Wireshark를 사용하여 트래픽을 모니터링했습니다. eth0이 내 전화기에서 라우터 요청을 받았지만 usb0에 도달하지 않는 것으로 나타났습니다. usb0 인터페이스로 전달되지 않는 것 같아서 내 VM이 이러한 메시지로 무엇을 해야할지 모르고 ping이 실패합니다.
IPv6 전달 및 모든 것이 이미 활성화되어 있으며 인터넷에서 읽은 내용에 따르면 이것으로 충분하다는 것을 이해합니다. 내가 뭘 잘못하고 있는지 어떤 아이디어가 있습니까?
답변1
두 가지 설명: 대신 ULA 주소를 사용해야 aaaa:
하지만 이는 문제에 중요하지 않습니다.
브리지가 작동하지 않는 이유는 6LoWPAN이 이더넷과 호환되지 않아 둘 사이를 브리지할 수 없기 때문입니다. 브리징은 인터페이스 간에 프레임만 복사하지만 6LoWPAN은 이더넷과 다른 레이어 2(MAC) 주소를 사용하는 다른 프레임 형식을 사용합니다.
해결책은 /64
이더넷 네트워크에 하나의 서브넷을 사용하고 /64
6LoWPAN 네트워크에 별도의 서브넷을 사용하는 것입니다. 그런 다음 상자가 네트워크 간에 패킷을 전달할 수 있도록 IPv6 전달을 활성화해야 합니다. 귀하의 박스가 두 네트워크 모두의 기본 게이트웨이라면 박스는 둘 사이에 패킷을 전달합니다. 그렇지 않은 경우 다른 게이트웨이/라우터가 해당 네트워크에 대한 패킷을 보낼 위치를 알 수 있도록 일부 라우팅을 설정해야 합니다.
답변2
VirtualBox의 Wi-Fi 드라이버에 버그가 있는 것으로 나타났습니다. 그것에 대해 할 일이 없습니다. 이제 이더넷을 통해 내 컴퓨터에 연결된 IPv6 라우터/AP를 사용합니다.