Dlaczego moje dwie maszyny wirtualne otrzymują ten sam adres IP?


31

Mam dwie maszyny wirtualne, obie działające na hoście Linux (Fedora 16). Ustawiłem oba adaptery jako podłączone do NAT. Kiedy uruchamiam je, oba mają domyślną bramę ustawioną na 10.0.2.2. Oba mają również ten sam adres IP (10.0.2.15). Oba są na tym samym adapterze (adapter 1). Nie wiem, dlaczego przydzielono im ten sam adres IP i nie powinna być domyślną bramą, 10.0.2.1ponieważ adres podsieci to, 10.0.2.0a maska ​​sieci to 255.255.255.0. Czy coś mi brakuje, czy zdarzyło się to komukolwiek wcześniej? Jak uzyskać prawidłowe działanie VirtualBox DHCP?


2
To nie jest konieczne prawda, możliwe jest utworzenie „prawdziwej” wirtualnej sieci NAT, w której do wielu maszyn wirtualnych należy przypisać inny adres IP na podstawie zwirtualizowanego adresu MAC, a maszyna wirtualna może widzieć się nawzajem za siecią NAT, w zasadzie praktycznie cała podsieć za interfejsem NAT. Zależy od twojego wyboru w konfiguracji adaptera sieciowego, jeśli wybierzesz „NAT”, NAT jest relacją jeden na jednego hosta / vm, jeśli wybrana jest „sieć NAT”, to jest to relacja host / podsieć, w której każda maszyna wirtualna na zwirtualizowana sieć będzie musiała mieć różne adresy IP.

Odpowiedziałem na podobne pytanie tutaj
Mian Asbat Ahmad

Odpowiedzi:


22

VirtualBox DHCP działa poprawnie.

Nie ma nic złego w tym, że wszystkie twoje maszyny otrzymują ten sam adres w konfiguracji NAT. Wszystkie maszyny wirtualne są odizolowane od siebie, więc nie ma ryzyka konfliktu. Nie są też na tym samym adapterze. Każda maszyna wirtualna ma własny zwirtualizowany sprzęt, w tym karty sieciowe.

Brama domyślna również nie musi być 10.0.2.1. Chociaż powszechną praktyką jest posiadanie go pod niższym adresem IP, może to być dowolny adres IP w zakresie podsieci.

Ponadto nie ma „prawdziwej” usługi dhcp, wszystko jest zakodowane na stałe w kodzie VirtualBox, chociaż jeśli nie jesteś zadowolony z domyślnych adresów IP, możesz dostroić silnik NAT .


Cześć @jlliagre, czy to naprawdę oczekiwane zachowanie? Rozumiem, że jeśli wszystkie maszyny wirtualne mają przypisany ten sam adres IP, nie będą mogły używać tego interfejsu sieciowego do komunikacji, prawda? Jeśli tak, oznacza to, że w przypadku kilku maszyn wirtualnych, jeśli każda z nich ma tylko jeden adapter NAT, domyślnie nie są w stanie się komunikować.
Tylko uczeń

1
@OgrishMan Tak, jest to oczekiwane zachowanie. To jedna z głównych przesłanek NAT. Umożliwia wielu komputerom korzystanie z tego samego lokalnego adresu IP. Nie mogą się komunikować bezpośrednio, tak jak mój laptop z 192.168.1.4, ponieważ adres IP nie może komunikować się z urządzeniem, które może używać tego samego adresu IP. Głównym powodem, dla którego nie mogą się komunikować, jest to, że i tak są w różnych sieciach LAN. Komputery używające tylko interfejsów NAT mogą komunikować się razem tylko przez zewnętrzną bramę strony trzeciej lub używając odwrotnego mapowania portów na poziomie hosta.
jlliagre

Dziękuję za wyjaśnienie! Myślę, że teraz jestem czysty.
Tylko uczeń

7

W panelu sterowania VirtualBox przejdź do Plik -> Preferencje -> Sieć

Wybierz kartę Sieci NAT, utwórz nowy „NatNetwork”, klikając przycisk + z boku i naciśnij OK.

Teraz wybierz każdą maszynę wirtualną idź do Ustawienia -> Sieć

W opcji Dołączone do: wybierz NAT Network, wybierz „NatNetwork” i naciśnij OK.

Uruchom ponownie wszystkie maszyny wirtualne.

Teraz maszyny wirtualne mają inny adres sieciowy.


1
Zauważyłem, że wciąż otrzymuję te same adresy IP, używając tego podejścia!
fasola jersey

6

Twoje maszyny wirtualne otrzymają ten sam adres IP z dowolnej usługi DHCP, o ile będą miały ten sam adres MAC Ethernet (adres sprzętowy, unikalny jak odcisk palca, ustawiony przez producenta sprzętu urządzenia sieciowego).

Ponieważ używasz maszyn wirtualnych, mają one sprzęt wirtualny i dlatego „fałszują” adres MAC. Musisz upewnić się, że żadne dwa urządzenia nie mają tego samego adresu sprzętowego Ethernet.

Możesz ustawić adres Ethernet swojej maszyny wirtualnej w VirtualBox w sekcji sieci sprzętowej (wygląda to tak: 3c: 08: 51: 05: 24: 8a)

Możesz to sprawdzić na działającej maszynie wirtualnej:

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
Serwer dhcp NAT wbudowany w VirtualBox nie jest prawdziwy. W szczególności nie obchodzi go adres MAC. W każdym razie wiele maszyn wirtualnych może mieć ten sam adres MAC, co nie ma znaczenia, ponieważ sieci wirtualne są w pełni odizolowane.
jlliagre

2

Dostaną swoją domyślną bramę z serwera dhcp - więc wszystko będzie tam ustawione. Musisz spojrzeć na serwer dhcp, aby zobaczyć, co on dostarcza (ogólnie po prostu ustaw go w konfiguracji serwera, aby był taki, jaki chcesz)

Jeśli chodzi o dwa adaptery mające ten sam adres, najprawdopodobniej zależy to od konfiguracji ustawionej w Virtualbox. Jeśli są klonami, może być konieczne jawne nadanie nowego adresu MAC.

Sprawdź konfiguracje sieci dla każdej z nich i sprawdź, czy uważają, że są takie same.

Jeśli jest inny, możesz tymczasowo ustawić stały adres IP dla każdego na serwerze dhcp (przypisany przez adres MAC)

Aby uzyskać więcej informacji, zapoznaj się z tą sekcją podręcznika VirtualBox.


1
Link, który opublikowałeś, nie dotyczy NAT.
jlliagre

1

Miałem ten sam problem. Przypisano Adapter2 do 2. systemu operacyjnego gościa. Unikalny adres Mac i IP przypisany gościom.

wprowadź opis zdjęcia tutaj


0

Należy zmienić dwa ustawienia.

1) W oknie VM - oprogramowanie klienckie VMware konsoli zmienia ustawienia sieciowe (tj. Dodaje nowy nat na ustawienia sieciowe. 2) Po stronie maszyny wirtualnej - Odśwież adres Mac dla każdej maszyny wirtualnej.


-1

otwórz ustawienia sieciowe dla każdego vm, kliknij zaawansowane> kliknij przycisk odświeżania obok adresu MAC. Zdobądź inny na oba i wszystko gotowe


niedoceniana odpowiedź
elsadek,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.