Impossibile accedere a Internet dal guest VirtualBox (Arch Linux)


4

Sto usando VirtualBox 5.0.20. Il computer host è un MacBook con OS X 10.11.5 (El Capitan). Il sistema operativo guest è Arch Linux a 64 bit. Quando ho installato Arch dall'ISO, la connettività Internet dell'ospite andava bene. Tuttavia, una volta avviato il sistema installato, non sono più riuscito a raggiungere Internet (ad esempio, il ping 8.8.8.8 si blocca indefinitamente).

La macchina virtuale ha due schede di rete: una con bridge e una solo host. Ho provato a cambiare il bridge con un adattatore NAT, nonché a collegare il bridge contemporaneamente all'interfaccia wireless dell'host e in un altro momento all'interfaccia cablata dell'host. L'ospite non può accedere a Internet in nessuna di queste configurazioni.

Il sistema operativo guest ha abilitato systemd-networkd.service e systemd-resolved.service. Non ho altri servizi di rete abilitati di cui sono a conoscenza. Se possibile, vorrei attenermi a questi servizi, piuttosto che passare a un servizio diverso, ma cambierò se c'è un difetto intrinseco in questi servizi che è la radice del mio problema.

All'interno del sistema operativo guest, il contenuto del file di rete dell'adattatore con bridge:

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

[Network]
DHCP=ipv4

E i contenuti del file di rete dell'adattatore solo 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

L'adattatore bridge acquisisce correttamente un lease DHCP e posso inoltre eseguire il ping degli host sulla mia LAN, ma non riesco a eseguire il ping di qualsiasi cosa oltre il router della mia LAN. La connessione Internet dell'host va bene.


È interessante poter eseguire il ping di altri computer sulla LAN dal sistema operativo guest. Stai usando netctl o netctl-auto? Altrimenti cerca di installarli e vai da lì.
SupaJord,

Risposte:


2

La risposta arriva da un suggerimento che ho ricevuto su questa stessa domanda posta in Unix & Linux StackExchange .

Per impostazione predefinita, avevo due file di unità di rete di sistema: uno per l'adattatore con ponte e uno per l'adattatore solo host. Volevo che l'adattatore con bridge avesse un indirizzo dinamico perché la macchina virtuale si trova su un laptop che si sposta tra le reti e volevo che l'adattatore solo host avesse un indirizzo statico in modo da poter accedervi, ad esempio tramite ssh, senza avere per determinare manualmente l'indirizzo.

Tuttavia, nel creare i file delle unità di rete, ho copiato ciecamente ciò che ho trovato in un tutorial wiki: una sezione che descrive come impostare rapidamente un indirizzo dinamico, l'altra come impostare rapidamente un indirizzo statico. Ovviamente, il tutorial presupponeva che avrei usato l'una o l'altra configurazione semplice, non entrambe fianco a fianco, il che è uno scenario più complesso.

Basti dire che il file di rete dell'adattatore solo host aveva l'opzione Gateway specificata, mentre il file dell'adattatore con bridge non lo faceva. Quindi sembra che il gateway dell'adattatore solo host sia diventato il percorso preferito per il traffico proveniente dalla macchina virtuale. La rimozione di questa opzione dal file di rete ha risolto il problema.

File di rete dell'adattatore solo host dopo la correzione (rimossa l'opzione Gateway):

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

[Network]
Address=192.168.56.2/24
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.