Configurazione di NAT guest Ubuntu vmware


9

Ho un host Windows che esegue VM Ubuntu guest tramite vmplayer. Quella macchina virtuale verrà clonata, distribuita tra più persone (con host di Windows) e utilizzata per condurre un seminario di programmazione. Sto cercando - e finora non riesco - di configurare la rete per soddisfare i seguenti requisiti:

  1. L'ospite deve avere accesso a Internet
  2. Tutti i cloni dovrebbero avere lo stesso nome host (diciamo che Workshop è concreto)
  3. Il sistema host deve essere in grado di accedere al rispettivo guest tramite quel nome (ad esempio ping Workshop eseguirà il ping del guest in esecuzione su quell'host e non su qualsiasi altro clone)

Quello che ho provato finora:

  • "Installato" un adattatore di rete NAT per il guest
  • Ho provato a connettere l'ospite tramite DHCP, in / etc / network / interfaces :

    auto eth0
    iface eth0 inet dhcp
       hostname Workshop
    

Funziona per quanto riguarda la connessione a Internet. Tuttavia, non riesco a connettermi all'ospite dall'host. (Ad esempio ping Workshop non funziona; se uso l'indirizzo restituito da ifconfig , non funziona neanche dall'host).

  • Ho quindi provato ad assegnare un indirizzo statico all'ospite:

    auto eth0
    iface eth0 inet static
         address 172.241.0.101
         netmask 255.255.0.0
         gateway 172.241.0.100
    

(172.241.0.100 è l'indirizzo assegnato staticamente all'host dall'adattatore VMNet8 della rete VMWare - che è l'adattatore NAT sopra). Ora posso eseguire il ping 172.241.0.101 e telnet ad esso dall'host. Posso anche eseguire il ping e il telnet dall'ospite al 172.241.0.100 (l'host), ma è tutto qui - non c'è connessione alla rete più ampia. (Non riesco nemmeno ad accedere all'ospite tramite il suo nome host, ma qui non è cruciale poiché se la spinta arriva, posso usare direttamente il suo indirizzo - purché sia ​​lo stesso per tutti - e non il nome).

Ora, penso di poter utilizzare l'opzione di connessione di rete con bridge con DHCP e che mi darà ciò di cui ho bisogno in caso di una macchina virtuale (in questo caso non l'ho provato, ma ricordo di averlo fatto in precedenza). Tuttavia, nel caso di più macchine virtuali con lo stesso nome host e i loro host collegati alla stessa rete che sarà problematico, non è vero?

Le tue soluzioni e altri consigli saranno molto apprezzati.

Risposte:


8

Prima di tutto, sì, non sarai in grado di utilizzare una connessione di rete a ponte perché tutti gli ospiti avranno lo stesso nome host, quindi dovrai scegliere NAT.

La parte della configurazione è stata corretta, tuttavia, il problema dovrebbe trovarsi nel gateway predefinito assegnato al guest. Il gateway predefinito, quando si utilizza NAT, non è l'IP dell'host, è l'IP di uno "switch virtuale" connesso alla rete NAT. (L'adattatore VMnet8 host è semplicemente un altro dispositivo connesso alla rete, per consentire all'host di comunicare con la VM.) Questo switch virtuale di cui stiamo parlando ottiene l' .2IP nella sottorete. Quindi nel tuo caso, /etc/network/interfacesdovresti leggere:

auto eth0
iface eth0 inet static
     address 172.241.0.101
     netmask 255.255.0.0
     gateway 172.241.0.2

Ciò dovrebbe consentire a un computer virtuale guest di accedere a Internet (tramite 172.241.0.2) e di comunicare con l'host ( 172.241.0.100). Quindi provalo e fammi sapere se funziona.

Se non funziona (altamente improbabile), devi scoprire qual è l'IP dello switch virtuale. Quello che puoi fare è lasciare che la VM ottenga un IP tramite DHCP (ovvero cambiarlo iface eth0 inet dhcpcome prima) e poi farlo route -n. Questo dovrebbe mostrare il gateway predefinito che sta utilizzando. Usa quell'IP nella tua configurazione statica.


Per poter eseguire il ping della VM guest usando il nome host Workshop , ecco cosa puoi fare. Devi aggiungere una voce al hostsfile in Windows, che si trova in C:\Windows\System32\drivers\etc\hosts. Modifica quel file per includere la seguente riga alla fine:

Per modificare quel file in Windows, tuttavia, è necessario aprirlo come amministratore in Blocco note o Wordpad ... e a volte non ti consente nemmeno di salvarlo, quindi dovrai prendere una copia del file da qualche parte, modificare rimuovete l'estensione .txt se ne ha una, e tornate indietro e sostituite quella originale, e "confermatela" ... oh come amo Linux. Ma comunque, ecco la linea che devi aggiungere:

172.241.0.101    Workshop

Una volta fatto, dovresti essere in grado di eseguire ping Workshopcorrettamente dal tuo host di Windows.

Anche se, naturalmente, per poterlo distribuire nel tuo laboratorio, dovrai modificare il file hosts in ogni singolo host Windows, a meno che tu non stia anche clonando i computer Windows.

Suggerimento : dato che assegnerai un IP statico al tuo guest, assicurati che la "rete NAT" in VMplayer su tutti i tuoi host Windows stia usando la sottorete 172.241.0.0/16, perché penso che VMware assegni casualmente una sottorete alle sue reti virtuali ( VMnet1, 2 e così via), quindi VMnet8 potrebbe non utilizzare la stessa sottorete su un altro host Windows. In caso contrario, dovrai assegnare manualmente a VMnet8 una sottorete utilizzando Virtual Network Editor in VMware.


MODIFICARE

Va bene. Dopo i commenti, ecco cosa devi fare:

  1. Configurare la macchina host (Windows) per "ottenere automaticamente l'indirizzo IP" sulla scheda VMnet8. Dovrebbe ottenere l'IP 192.168.186.1.
  2. Configura il tuo computer guest (Ubuntu) su un IP statico nell'intervallo 192.168.186.3 - 192.168.186.127. L'uso di Let 192.168.186.3. Inoltre, configura il gateway predefinito e il server dns su 192.168.186.2Quindi /etc/network/interfacesdovresti essere:

    auto eth0
    iface eth0 inet static
         address 192.168.186.3
         netmask 255.255.255.0
         gateway 192.168.186.2
         dns-nameservers 192.168.186.2
    
  3. Testare la connettività locale eseguendo il ping 192.168.186.1e 192.168.186.2dal computer guest. Dovresti anche essere in grado di eseguire il ping dall'host al guest.

  4. Verifica la connettività Internet nel computer guest google.comeseguendo il ping o navigando in Internet.
  5. Aggiungi la linea 192.168.186.3 Workshopal tuo hostsfile nel computer host di Windows.
  6. Test ping Workshopdal computer host di Windows.

Se si desidera utilizzare gli IP da una rete / pool completamente diversi da quelli diversi 192.168.186.0/24, è necessario Edit > Virtual Network Editoraccedere a VMware, trovare VMnet8 e modificare le sue impostazioni DHCP in fondo alla rete desiderata e modificare gli IP statici di conseguenza (il gateway predefinito sarà sempre il secondo IP utilizzabile x.x.x.2).

inserisci qui la descrizione dell'immagine


172.241.0.2 non funziona. Non risponde neanche a un ping (in effetti, eseguendo nmap -sP 172.241.0.0/24 restituisce solo due host live - .100 e .101). Se configurato con dhcp, viene restituito un indirizzo completamente diverso da route -n: 192.168.186.2
malenkiy_scot

Oh, ho pensato che stavi usando la rete 172.241.0.0/16 perché era quella che stava usando il DHCP. Vieni a pensarci però, che in realtà è un IP pubblico [Oo]. C'è un motivo per cui stavi assegnando gli IP host e guest nella rete 172.241.0.0? Comunque, guarda la mia risposta modificata.
Alaa Ali,

No, non è quello che utilizza DHCP, ma è così che è configurato l'adattatore VMNet8. L'indirizzo DHCP è ottenuto tramite un servizio DHCP VMWare. Non ho idea da dove ottenga il suo pool di indirizzi. Tuttavia, non credo che l'indirizzo 172.241 sia pubblico. Quando stabilisco una connessione tra l'host e il guest ed eseguo CPORTS, mostra che 10.63.41.41 (che è l'indirizzo dell'host sulla LAN) è collegato a se stesso su porte diverse, il che ha senso dato che si tratta di NAT (o probabilmente in realtà PAT) . In realtà ho pensato sulla stessa linea che hai fatto per quanto riguarda il gateway: che ha un indirizzo diverso.
malenkiy_scot,

Sì, come menzionato nella mia risposta, il servizio DHCP e il suo pool sono configurabili dall'editor di rete virtuale (ho aggiunto uno screenshot alla mia risposta). Il gateway, DHCP e server DNS sono tutti lo stesso dispositivo virtuale, x.x.x.2. E sì, come hai detto, ovviamente usa il sovraccarico (PAT) sull'IP del tuo host; non dovresti vedere l'IP dell'ospite nella rete più ampia. Inoltre, 172.241.0.0/16 è un intervallo di IP pubblico =). 172.16.0.0 - 172.31.255.255è l'intervallo privato negli indirizzi di classe B. Ma non importa, non dovrebbe interessare nulla.
Alaa Ali,

Inoltre, puoi visitare questa pagina se vuoi saperne di più sul NAT in VMware, è una buona lettura.
Alaa Ali,

3

Avevo un problema simile, utilizzando VMWare Player in esecuzione su Windows 7 con guest Ubuntu. Ma sono stato in grado di connettermi da host a guest e da guest a host, tuttavia il problema era che non ero in grado di connettermi a Internet dall'ospite. Dopo aver letto la risposta di @Alaa, ho dovuto solo apportare un'altra modifica per aggiungere il nome del server DNS al file delle interfacce (dns-nameservers 192.168.150.2) e poi tutto è andato in linea.

Ecco la mia configurazione che ha funzionato.

Configurazione dell'interfaccia VMWare sull'host:

Adattatore Ethernet VMware Network Adapter VMnet8: (Client)

Connection-specific DNS Suffix  . : 
Description . . . . . . . . . . . : VMware Virtual Ethernet Adapter for VMnet8
Physical Address. . . . . . . . . : 00-50-56-C0-00-08
DHCP Enabled. . . . . . . . . . . : No
Autoconfiguration Enabled . . . . : Yes
Link-local IPv6 Address . . . . . : fe80::9c13:cbf2:1dc:259f%42(Preferred) 

IPv4 Address. . . . . . . . . . . : 192.168.150.1(Preferred) 
Subnet Mask . . . . . . . . . . . : 255.255.255.0

Default Gateway . . . . . . . . . : 
DHCPv6 IAID . . . . . . . . . . . : 704663638
DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-19-06-50-32-88-53-2E-7A-D3-8E
DNS Servers . . . . . . . . . . . : fec0:0:0:ffff::1%1
                                    fec0:0:0:ffff::2%1
                                    fec0:0:0:ffff::3%1
NetBIOS over Tcpip. . . . . . . . : Enabled 

Modifiche all'interfaccia di Ubuntu dell'ospite:

auto eth0
iface eth0 inet static
address 192.168.150.10
netmask 255.255.255.0
gateway 192.168.150.2
dns-nameservers 192.168.150.2

192.168.150.2 è il proxy di VMWare che inoltrerebbe il traffico degli ospiti all'host.


Ciao, incontro lo stesso problema del tuo. Spiegheresti di più su come risolvere il problema. La prima cosa è quella dove ottenere le informazioni di "Adattatore Ethernet VMware Network Adapter VMnet8: (Client)". Vuoi dire che devi aggiornare le tue modifiche in / etc / network / interfaces Inoltre, per l'indirizzo come "maschera di rete", "gateway", cambiano a seconda della macchina? Oppure posso usare lo stesso che hai pubblicato.
user288609,
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.