Acaba por ser um bug nos drivers Wi-Fi do VirtualBox. Nada a ver com isso. Eu agora uso um roteador / AP IPv6 que está conectado ao meu computador via Ethernet.
Eu tenho o Ubuntu 12.04 instalado em uma VM do VirtualBox em um computador host do Windows 8. O Windows 8 tinha uma rede hospedada (sem fio) à qual posso me conectar com meu telefone Android. A interface eth0 da minha VM está conectada à rede do Windows usando um adaptador em ponte.
Além disso, uma 6LoWPAN sem fio (rede de área pessoal sem fio de baixa potência sobre IPv6 usando 802.15.4) é conectada à interface usb0 da minha VM usando um dongle. Nesta rede, existem vários nós do Zigduino. Agora, preciso fazer ping do meu telefone para esses nós sensores.
phone ---802.11--- eth0 Ubuntu usb0 ---802.15.4--- sensor node
O problema agora é que eu já passei horas nisso, mas ainda não consigo fazer isso. Eu dei a eth0 um endereço IPv6 estático aaaa::xxxx:xxxx:xxxx:xxxx
e faço anúncios de roteador a partir dessa interface com o prefixo aaaa::/64
usando radvd (então meu telefone também recebe um endereço aaaa::xxxx:xxxx:xxxx:xxxx
). O endereço IP do meu dongle e os nós do sensor também é algo como aaaa::xxxx:xxxx:xxxx:xxxx
. Durante o ping, eu monitorava o tráfego usando o wireshark. Percebi que a eth0 obtém sollicitations do roteador do meu celular, mas estes não chegam ao usb0. Parece que eles não são encaminhados para a interface usb0, então minha VM não sabe o que fazer com essas mensagens e o ping falha.
Encaminhamento IPv6 e tudo o que já está habilitado, e eu entendo que isso seria suficiente para o que eu li na internet. Alguma idéia do que estou fazendo errado?
Dois comentários: você deve usar os endereços ULA em vez de aaaa:
, mas isso não importa para o seu problema.
O motivo pelo qual sua bridge não funciona é que o 6LoWPAN não é compatível com ethernet, portanto você não pode fazer a ponte entre eles. O Bridging só copia quadros entre as interfaces, mas o 6LoWPAN usa um formato de quadro diferente com endereços de camada 2 (MAC) diferentes dos da Ethernet.
Uma solução seria usar uma sub-rede /64
para sua rede ethernet e um /64
separado para sua rede 6LoWPAN. Então, você precisa ativar o encaminhamento IPv6 para que sua caixa envie os pacotes entre as redes. Se sua caixa for o gateway padrão para ambas as redes, ela encaminhará os pacotes entre elas. Se não estiver, você precisará configurar um roteamento para que os outros gateways / roteadores saibam para onde enviar pacotes para essas redes.