Perché le mie due macchine virtuali ottengono lo stesso indirizzo IP?


31

Ho due macchine virtuali entrambe in esecuzione su un host Linux (Fedora 16). Ho impostato entrambi gli adattatori come collegati a NAT. Quando li avvio, entrambi hanno il gateway predefinito impostato su 10.0.2.2. Entrambi hanno lo stesso indirizzo IP (10.0.2.15). Sono entrambi sullo stesso adattatore (adattatore 1). Non so perché ricevano lo stesso indirizzo IP e non dovrebbe essere il gateway predefinito 10.0.2.1poiché l'indirizzo della sottorete è 10.0.2.0e la maschera di rete è 255.255.255.0. C'è qualcosa che mi manca, è successo a qualcuno prima? Come posso far funzionare correttamente il VirtualBox DHCP?


2
Ciò non è necessariamente vero, è possibile creare una "vera" rete NAT virtuale in cui alla VM multipla deve essere assegnato un indirizzo IP diverso in base al suo indirizzo MAC virtualizzato e la VM può vedersi dietro la rete NAT, in pratica praticamente un'intera sottorete dietro l'interfaccia NAT. Dipende dalla tua scelta nella configurazione della scheda di rete, se viene scelto "NAT", il NAT è una relazione uno contro uno host / vm, se viene scelto "Rete NAT", allora è una relazione host / subnet in cui ogni VM nella la rete virtualizzata dovrà avere indirizzi IP diversi.

Ho risposto a una domanda simile qui
Mian Asbat Ahmad,

Risposte:


22

VirtualBox DHCP funziona correttamente.

Non c'è nulla di sbagliato nel fatto che tutte le macchine ottengano lo stesso indirizzo nella configurazione NAT. Tutte le macchine virtuali sono isolate l'una dall'altra, quindi non vi è alcun rischio di conflitto. Inoltre, non si trovano sullo stesso adattatore. Ogni VM ha il proprio hardware virtualizzato, comprese le schede NIC.

Inoltre, il gateway predefinito non deve essere 10.0.2.1. Sebbene sia pratica comune averlo nell'indirizzo IP inferiore, può essere qualsiasi IP nell'intervallo della sottorete.

Inoltre, non esiste un servizio dhcp "reale", tutto è codificato nel codice VirtualBox, anche se se non si è soddisfatti degli indirizzi IP predefiniti è possibile ottimizzare il motore NAT .


Ciao @jlliagre, questo comportamento è davvero previsto? A quanto ho capito, se a tutte le macchine virtuali fosse assegnato lo stesso indirizzo IP, non sarebbero in grado di utilizzare questa interfaccia di rete per comunicare, giusto? In tal caso, lo stai dichiarando per un gruppo di VM, se ognuna di esse ha un solo adattatore NAT, per impostazione predefinita non sono in grado di comunicare.
Solo uno studente il

1
@OgrishMan Sì, questo è il comportamento previsto. Questa è una delle principali motivazioni della NAT. Consente a molte macchine di utilizzare lo stesso indirizzo IP locale. Non possono comunicare direttamente, proprio come il mio laptop con 192.168.1.4 come indirizzo IP non può comunicare con il tuo dispositivo, che potrebbe utilizzare lo stesso indirizzo IP. Il motivo principale per cui non possono comunicare è che si trovano comunque su LAN diverse. Le macchine che utilizzano solo interfacce NAT possono comunicare insieme solo tramite un gateway esterno di terze parti o utilizzando la mappatura della porta inversa a livello di host.
jlliagre,

Grazie per la spiegazione! Penso di essere chiaro ora.
Solo uno studente il

7

Nel pannello di controllo di VirtualBox vai su File -> Preferenze -> Rete

Selezionare la scheda Reti NAT, creare un nuovo "NatNetwork" facendo clic sul pulsante + a lato e premere OK.

Ora seleziona ogni VM vai su Impostazioni -> Rete

In Allegato a: opzione selezionare Rete NAT e selezionare "Rete naturale" e premere OK.

Riavvia tutte le macchine virtuali.

Ora le macchine virtuali hanno un indirizzo di rete diverso.


1
Sto scoprendo che ho ancora gli stessi indirizzi IP usando questo approccio!
jersey bean

6

Le tue macchine virtuali otterranno lo stesso indirizzo IP da qualsiasi servizio DHCP purché abbiano lo stesso indirizzo MAC Ethernet (un indirizzo hardware, unico come un'impronta digitale, impostato dal produttore dell'hardware del dispositivo di rete).

Dato che stai eseguendo macchine virtuali, hanno hardware virtuale e quindi "falsificano" l'indirizzo MAC. Devi assicurarti che nessuna macchina abbia lo stesso indirizzo hardware Ethernet.

Puoi impostare l'indirizzo MAC Ethernet della tua macchina virtuale in VirtualBox nella sezione della rete hardware (è simile al seguente: 3c: 08: 51: 05: 24: 8a)

Puoi verificarlo nella tua VM in esecuzione:

sudo ifconfig

en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    options=2b<RXCSUM,TXCSUM,VLAN_HWTAGGING,TSO4>
    ether 3c:08:51:05:24:8a 
    media: autoselect (none)
    status: inactive

2
Il server NAT dhcp incorporato con VirtualBox non è reale. In particolare non importa degli indirizzi MAC. In ogni caso, più VM potrebbero avere lo stesso indirizzo MAC, indipendentemente dal fatto che le reti virtuali siano completamente isolate.
jlliagre,

2

Otterranno il loro gateway predefinito dal server DHCP - quindi sarà tutto ciò che è impostato lì. Dovrai guardare il server dhcp per vedere cosa sta consegnando (in genere basta impostarlo nella configurazione del server per essere quello che vuoi che sia)

Per quanto riguarda i due adattatori che hanno lo stesso indirizzo, questo è probabilmente dovuto alla configurazione impostata in Virtualbox. Se sono cloni, potrebbe essere necessario specificare esplicitamente un nuovo indirizzo MAC.

Controlla le configurazioni di rete per ciascuno e vedi se pensano di essere uguali.

Se diverso, è possibile impostare temporaneamente un IP fisso per ognuno sul server DHCP (assegnato dall'indirizzo MAC)

Dai un'occhiata a questa sezione dal manuale di VirtualBox per maggiori informazioni.


1
Il link che hai pubblicato non si applica a NAT.
jlliagre,

1

Ho avuto lo stesso problema. Assegnato Adapter2 al 2o SO guest. Mac e indirizzo IP univoci assegnati agli ospiti.

inserisci qui la descrizione dell'immagine


0

È necessario modificare due impostazioni.

1) Nella casella VM - Il software client VMware della console modifica le impostazioni di rete (ad es.) Aggiunge una nuova nat alle impostazioni di rete. 2) Nel lato macchina della macchina virtuale: aggiorna l'indirizzo Mac per ciascuna macchina virtuale.


-1

apri le impostazioni di rete per ogni VM, fai clic su Avanzate> fai clic sul pulsante Aggiorna accanto all'add mac. Prendi uno diverso su entrambi e sei pronto


risposta sottovalutata
elsadek,
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.