
Tenho o Ubuntu 12.04 instalado em uma VM VirtualBox em um computador host com 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 Windows usando um adaptador em ponte.
Além disso, um 6LoWPAN sem fio (rede de área pessoal sem fio de baixa potência sobre IPv6 usando 802.15.4) está conectado à interface usb0 da minha VM usando um dongle. Nesta rede existem vários nós 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 já gastei horas nisso, mas ainda não consigo fazer isso. Dei à eth0 um endereço IPv6 estático aaaa::xxxx:xxxx:xxxx:xxxx
e faço anúncios de roteador a partir desta interface com prefixo aaaa::/64
usando radvd (para que meu telefone também receba um aaaa::xxxx:xxxx:xxxx:xxxx
endereço). O endereço IP do meu dongle e dos nós sensores também é algo como aaaa::xxxx:xxxx:xxxx:xxxx
. Durante o ping, monitorei o tráfego usando o wireshark. Percebi que a eth0 recebe solicitações de roteador do meu telefone, mas elas não chegam ao usb0. Parece que elas não são encaminhadas 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 que já está habilitado, e entendo que isso bastaria pelo que li na internet. Alguma idéia do que estou fazendo de errado?
Responder1
Dois comentários: você deve usar endereços ULA em vez de aaaa:
, mas isso não importa para o seu problema.
A razão pela qual sua ponte não funciona é que 6LoWPAN não é compatível com Ethernet, portanto você não pode fazer a ponte entre eles. A ponte apenas copia quadros entre interfaces, mas 6LoWPAN usa um formato de quadro diferente com endereços de camada 2 (MAC) diferentes dos da Ethernet.
Uma solução seria usar uma /64
sub-rede para sua rede Ethernet e outra separada /64
para sua rede 6LoWPAN. Então você realmente precisa habilitar o encaminhamento IPv6 para que sua caixa encaminhe pacotes entre as redes. Se a sua caixa for o gateway padrão para ambas as redes, ela encaminhará os pacotes entre elas. Caso contrário, você precisará configurar algum roteamento para que os outros gateways/roteadores saibam para onde enviar pacotes para essas redes.
Responder2
Acontece que é um bug nos drivers Wi-Fi do VirtualBox. Nada a fazer sobre isso. Agora uso um roteador/AP IPv6 conectado ao meu computador via Ethernet.