Não é possível acessar a Internet do convidado do VirtualBox (Arch Linux)

Não é possível acessar a Internet do convidado do VirtualBox (Arch Linux)

Estou usando o VirtualBox 5.0.20. A máquina host é um MacBook executando OS X 10.11.5 (El Capitan). O sistema operacional convidado é o Arch Linux de 64 bits. Quando instalei o Arch a partir do ISO, a conectividade com a Internet do convidado estava boa. No entanto, depois de inicializar o sistema instalado, não consegui mais acessar a Internet (por exemplo, o ping 8.8.8.8 trava indefinidamente).

A máquina virtual possui dois adaptadores de rede: um em ponte e outro somente host. Eu tentei mudar a ponte para um adaptador NAT, bem como conectar a ponte de uma vez à interface sem fio do host e em outro momento à interface com fio do host. O convidado não pode acessar a Internet em nenhuma dessas configurações.

O sistema operacional convidado ativou systemd-networkd.service e systemd-resolved.service. Ele não possui nenhum outro serviço de rede ativado que eu saiba. Se possível, gostaria de continuar com esses serviços, em vez de mudar para um serviço diferente, mas mudarei se houver alguma falha inerente a esses serviços que seja a raiz do meu problema.

No sistema operacional convidado, o conteúdo do arquivo de rede do adaptador em ponte:

[root@arch64 ~]# cat /etc/systemd/network/bridged.network 
[Match]
Name=enp0s3

[Network]
DHCP=ipv4

E o conteúdo do arquivo de rede do adaptador somente host:

[root@arch64 ~]# cat /etc/systemd/network/host-only.network 
[Match]
Name=enp0s8

[Network]
Address=192.168.56.2/24
Gateway=192.168.56.1

O adaptador em ponte adquire com sucesso uma concessão de DHCP e eu também posso executar ping em hosts na minha LAN, mas não consigo executar ping em nada além do roteador da minha LAN. A conexão com a Internet do anfitrião está boa.

Responder1

A resposta vem de uma dica que recebi emesta mesma pergunta feita no StackExchange Unix e Linux.

De acordo com minha configuração, eu tinha dois arquivos de unidade de rede systemd: um para o adaptador em ponte e outro para o adaptador somente host. Eu queria que o adaptador em ponte tivesse um endereço dinâmico porque a máquina virtual está em um laptop que se move entre redes, e queria que o adaptador somente host tivesse um endereço estático para que eu pudesse acessá-lo, como por ssh, sem ter para determinar manualmente o endereço.

No entanto, ao criar os arquivos da unidade de rede, copiei cegamente o que encontrei em um tutorial wiki – uma seção descrevendo como configurar rapidamente um endereço dinâmico, a outra como configurar rapidamente um endereço estático. Obviamente, o tutorial presumiu que eu usaria uma ou outra configuração simples – não as duas lado a lado, o que é um cenário mais complexo.

Basta dizer que o arquivo de rede do adaptador somente host tinha a opção Gateway especificada, enquanto o arquivo do adaptador em ponte não. Portanto, parece que o gateway do adaptador somente host tornou-se a rota preferida para o tráfego proveniente da máquina virtual. A remoção desta opção do arquivo de rede resolveu o problema.

Arquivo de rede do adaptador somente host após correção (opção Gateway removida):

[root@arch64 ~]# cat /etc/systemd/network/host-only.network 
[Match]
Name=enp0s8

[Network]
Address=192.168.56.2/24

informação relacionada