Rede em ponte: nenhum endereço IP no sistema operacional convidado

1

O que eu quero:

Eu quero um convidado de máquina virtual executando o Ubuntu (no VirtualBox) para vários servidores de teste de desenvolvimento da web (em execução em portas diferentes, por exemplo, o Grunt.js está sendo executado na porta 9000).

  • Quero testar aplicativos da web em execução nesses servidores a) de dentro do convidado b) de dentro do host (executando o Windows 7, btw), c) de outros dispositivos na mesma rede, conectados via Wi-Fi (por exemplo, dispositivos móveis)
    • Eu quero poder acessar a Internet de dentro do convidado

Eu estava primeiro executando uma solução em que eu tinha um adaptador NAT e somente host configurado no VirtualBox, o que era bom para acessar o convidado do host e para acessar a Internet de dentro do convidado.

Agora que quero que outros dispositivos acessem a máquina virtual, essa solução não funciona mais. Eu consegui fazer isso anos atrás com um adaptador de rede em ponte, mas isso não parece funcionar aqui.

O que eu fiz:

Eu configurei rede em ponte como o único adaptador de rede no VirtualBox e deixei as configurações padrão. Quando eu inicializo o convidado, o símbolo WiFi no canto superior direito continua piscando, ou seja, as setas não aparecem. Depois de um tempo, diz: "Desconectado - você está agora offline". Esta é a saída de ifconfig :

eth0      Link encap:Ethernet  HWaddr 08:00:27:71:92:9c  
          inet6 addr: fe80::a00:27ff:fe71:929c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:233 errors:0 dropped:0 overruns:0 frame:0
          TX packets:103 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:16083 (16.0 KB)  TX bytes:22280 (22.2 KB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:32 errors:0 dropped:0 overruns:0 frame:0
          TX packets:32 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:2624 (2.6 KB)  TX bytes:2624 (2.6 KB)

Como você pode ver, não há endereço inet4. Assim, não consigo fazer ping no host de dentro do convidado e vice-versa.

Eu também tentei isso , ou seja, eu mudei o endereço MAC e corri

sudo rm -rf /etc/udev/rules.d/70-persistent-net.rules

sudo reboot

Não alterou nada.

O que mais posso fazer para depurar isso? Eu suspeito que é um problema de DHCP. Eu posso facilmente obter um IP no meu host e outras máquinas na rede, mas não no convidado.

    
por wnstnsmth 27.03.2014 / 07:45

2 respostas

4

É possível com o VirtualBox, eu tenho a mesma configuração em execução recentemente, o Windows 7 host, convidado Arch Linux, em um laptop com wifi. Como você disse, é quando dá uma ligação em rede ao convidado. Eu também escolhi o driver virtio para o cartão virtual, mas duvido que esteja relacionado com o tópico em questão.

O convidado obtém um IP de qualquer roteador ao qual o host se conecta, está funcionando perfeitamente e chega a conclusão que é muito impressionante. Eu tentei conseguir o mesmo no host Xen e não consegui. Então está vindo de alguma mágica dos drivers do VirtualBox, a única descrição pública está aqui: link .

Bridging to a wireless interface is done differently from bridging to a wired interface, because most wireless adapters do not support promiscuous mode. All traffic has to use the MAC address of the host's wireless adapter, and therefore VirtualBox needs to replace the source MAC address in the Ethernet header of an outgoing packet to make sure the reply will be sent to the host interface. [...] VirtualBox examines ARP and DHCP packets in order to learn the IP addresses of virtual machines.

Esta extensão de driver deve ser de código aberto, já que não é mencionada no "Oracle VM VirtualBox Extension Pack", mas é muito difícil encontrar documentação sobre isso. Infelizmente eu não sei como resolver isso, mas eu tentaria:

  1. Olhe para as propriedades da placa sem fio host, verifique se você vê o material da caixa virtual lá (eu reinstalei a máquina desde então, então não posso verificar quais são os itens adicionais exatamente)
  2. Desinstale e reinstale a placa sem fio. É provável que os itens adicionais sejam removidos, por isso suponho que a desativação / reativação da rede em ponte nas propriedades da VM possa reinstalar essa parte.

Além disso, se o roteador é seu, você pode dar uma olhada no seu log, ver se pelo menos ele obtém algumas conexões provisórias do convidado.

Edit: Você comentou que está trabalhando com outro roteador / ponto de acesso? Neste caso, é possível que alguns roteadores se recusem a alocar mais de um IP para o mesmo endereço MAC. É uma pena que eu não tenha mais a máquina, para ver se os MACs de cada IP no roteador são os mesmos, mas esse deve ser o caso.

    
por 04.04.2014 / 18:42
1

O padrão IEEE 802.11 exige que os APs rejeitem pacotes de endereços MAC desconhecidos; o cliente deve primeiro fazer uma autenticação e associação 802.11, antes que o AP possa aceitar pacotes de dados a partir dele. Portanto, se "modo de ponte" significa que sua VM ou sistema operacional convidado está tentando usar um segundo endereço MAC na mesma placa de rádio, ele deve certificar-se de que o segundo endereço MAC está sendo autenticado e associado ao 802.11, caso contrário o AP deve ignorar os pacotes. o segundo endereço MAC.

Existe documentação de como o VirtualBox lida com esse problema? Isso tem que ser um problema bem conhecido que foi resolvido (e deve haver documentação de como foi resolvido), ou deve ser bem documentado que "o modo de ponte sobre Wi-Fi não é suportado".

    
por 02.04.2014 / 19:52