Jak skonfigurować NAT i tylko sieć Host ze statycznym adresem IP w VirtualBox

22

Próbuję skonfigurować zestaw gości w VirtualBox, tak aby każdy z nich mógł uzyskać dostęp do Internetu, a także być widoczny dla siebie i hosta. Chcę też, aby goście mieli statyczne adresy IP.

Oto procedura, którą stosowałem do tej pory:

  1. Wyłącz funkcję serwera DHCP sieci tylko hosta, która będzie używana w tej konfiguracji
  2. Zmień adres IP przypisany do hosta na 192.168.56.254
  3. Utwórz maszynę gościa z 2 kartami interfejsu sieciowego (NIC)
  4. Skonfiguruj pierwszą kartę sieciową, aby korzystała z NAT
  5. Skonfiguruj drugą kartę sieciową, aby korzystała z sieci Hot-Only
  6. Zainstaluj system operacyjny (Ubuntu Server 13.10) na każdym z nich
  7. Zaktualizuj system operacyjny
  8. Skonfiguruj sieć w następujący sposób, edytując / etc / network / interfaces
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

auto eth1
iface eth1 inet static
address 192.168.56.1
netmask 255.255.255.0
network 192.168.56.0
broadcast 192.168.56.255
gateway 192.168.56.254
dns-search cloudspace.local
dns-nameservers 8.8.8.8 8.8.4.4
  1. Zapisz plik
  2. Restart

Po ponownym uruchomieniu gościa sieć tylko host działa poprawnie. Pary hosta / gościa i gościa / gościa mogą pingować się nawzajem, jednak Internet nie działa, ponieważ apt-getzawodzi.

Jeśli wydam service networking restartpolecenie, sieć zacznie działać tak, jak powinna.

Co ja robię źle?

Próbowałem zmienić kolejność wyświetlania kart sieciowych w /etc/network/interfacespliku. Zmieniłem także sieć NAT / Host-Only między 2 kartami sieciowymi. Nic nie działało.

Hostem jest system Windows 8.1, a gościem jest Ubuntu Server 13.10. Próbowałem tego samego na Mac OS X z podobnymi wynikami.

Byłbym bardzo wdzięczny za wszelką pomoc w tym zakresie.

Aktualizacja:

Poniżej zamieszczam dane wyjściowe następujących poleceń, aby pomóc w diagnostyce:

  • cat / etc / network / interfaces
  • ifconfig -a
  • trasa -n
$ cat /etc/network/interfaces
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

auto eth1
iface eth1 inet static
address 192.168.56.1
netmask 255.255.255.0
network 192.168.56.0
broadcast 192.168.56.255
gateway 192.168.56.254

$ ifconfig -a
eth0      Link encap:Ethernet  HWaddr 08:00:27:75:47:64
          inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe75:4764/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2 errors:0 dropped:0 overruns:0 frame:0
          TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1180 (1.1 KB)  TX bytes:1332 (1.3 KB)

eth1      Link encap:Ethernet  HWaddr 08:00:27:93:98:d8
          inet addr:192.168.56.1  Bcast:192.168.56.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe93:98d8/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:140 errors:0 dropped:0 overruns:0 frame:0
          TX packets:225 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:14418 (14.4 KB)  TX bytes:27378 (27.3 KB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:16 errors:0 dropped:0 overruns:0 frame:0
          TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1184 (1.1 KB)  TX bytes:1184 (1.1 KB)

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.56.254  0.0.0.0         UG    0      0        0 eth1
10.0.2.0        0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.56.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1

Aktualizacja 2:

Po uruchomieniu sudo service networking restartdane wyjściowe route -nstają się:

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.0.2.2        0.0.0.0         UG    0      0        0 eth0
10.0.2.0        0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.56.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1

Jak więc zapewnić tę konfigurację podczas rozruchu?

Umar Farooq Khawaja
źródło

Odpowiedzi:

16

Łatwiej byłoby rozwiązać problem, jeśli opublikowałeś wyniki, które otrzymujesz podczas próby pingowania adresu zewnętrznego (np. Serwerów Google DNS, których używasz), bieżące ustawienia sieciowe i tabelę routingu.

/sbin/ifconfig -a
/sbin/route -n

Nie wiedząc więcej, jest to trochę zastrzyk w ciemności, ale zgaduję, że albo a) nie otrzymujesz adresu DHCP na eth0, lub b) twoje ustawienia bramy dla eth1 nie zgadzają się z domyślną trasą DHCP przypisaną.

Jeśli nie otrzymujesz adresu DHCP dla eth0, prawdopodobnie jest to błędna konfiguracja w VirtualBox (np. Cofanie adapterów).

Tak czy inaczej, nie potrzebujesz ustawień bramy ani DNS przypisanych specjalnie dla eth1, ponieważ zostaną one przypisane przez DHCP na eth0, więc usunęłbym z twojej konfiguracji linie gateway, dns-search i dns-nameservers. Twoje maszyny wirtualne nadal będą mogły komunikować się bez ustawienia bramy, jeśli będą w tej samej sieci, a VirtualBox jest odpowiednio skonfigurowany.

Edycja: Aby upewnić się, że nie masz bramy na eth1 po ponownym uruchomieniu, usuń linie z bloku eth1, aby wyglądało to tak:

auto eth1
iface eth1 inet static
address 192.168.56.1
netmask 255.255.255.0

Kiedy skończysz, nie będziesz mieć żadnych linii bramy w pliku interfejsów.

jkt123
źródło
Dodałem diagnostykę, jak zasugerowałeś. Myślę, że poprawną odpowiedzią jest (b), tj. Ustawienia bramy dla eth1bałaganu z domyślną wyznaczoną trasą DHCP. Czy istnieje rozwiązanie tego?
Umar Farooq Khawaja
1
Zmodyfikowałem swoją odpowiedź, aby pokazać, jak powinien wyglądać twój blok eth1 w pliku interfejsów. Nie potrzebujesz sieci ani linii rozgłoszeniowych i nie powinieneś mieć linii bramy. Usuń te trzy.
jkt123
3

Wymyśliłem to rozwiązanie, które jest takie samo jak odpowiedź @ jkt123 i pytanie @ Umar, ale krótsze. Będę wdzięczny za opinie!

W virtualbox włącz zarówno NAT, jak i sieci tylko hosta . (BTW: Działa na moim hoście Win7. Nie wiem, jak to zrobić na hoście Linux).

Na hoście - znajdź adres IP interfejsu „tylko host”

ipconfig /all     # for windows host
ifconfig -a       # for linux host

W Gość edytuj / etc / network / interfaces . Sztuką było odwrócenie kolejności eth1 (tylko host) przychodzi PRZED eth0 (internet / dhcp). Nie wiem dlaczego.

auto lo                        # keep the original loopback settings
iface lo ...                   # yeah, i don't remember, just keep it.

# ----> Ok, this is my addition <-----
auto eth1                      
allow-hotplug eth1             # i think hotplug it helps. not sure.
iface eth1 inet static
address 192.168.56.100         # arbitrary IP address between 2 and 254

auto eth0                      # This is the original content
iface eth0 inet dhcp           #  of this file, now at the end.

restart.

Berry Tsakala
źródło
0

Po pierwsze, włączyłem NAT dla obu sieci z DHCP i tylko sieć z hostem static ip add 192.168.40.41.

Następnie wykonałem polecenie:

nano cat /etc/network/interfaces

Uzyskałem ten wynik:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

auto eth1
iface eth1 inet static
address 192.168.41.4
netmask 255.255.255.0

Przed ponownym uruchomieniem wpisałem następujące polecenie:

sudo service networking restart

Następnie uruchomiłem ponownie.

Po załadowaniu do VM VirtualBox obie sieci działają. Mogę połączyć się z Internetem i połączyć się 192.168.40.41za pomocą przeglądarki internetowej.

Mam nadzieję, że pomoże to uzyskać nanoedytor:

sudo apt-get update
sudo apt-get install nano

Następnie wpisz nanoterminal, aby go uruchomić.

Mirza Mohammed Baig
źródło
0

Masz wiele bram domyślnych przypisanych do różnych kart sieciowych. Ogólnie „Domyślne” oznacza wstępnie wybraną opcję. W takim przypadku, jeśli określona brama domyślna jest zdefiniowana dla obu kart sieciowych, nie byłaby to wstępnie wybrana opcja. Ponadto spowodowałoby to również problemy z komunikacją, takie jak routing asynchroniczny. Nie jestem pewien, jak Metryka obu interfejsów jest ustawiona na 0, ale może to być spowodowane tym, że obie karty sieciowe mają bramki. Tutaj znajduje się opis firmy Microsoft na ten temat, a funkcja Metryka ma wiele czynników, które określają sposób jej określania przy ustalaniu priorytetów. (Link: https://support.microsoft.com/en-us/help/299540/an-explanation-of-the-automatic-metric-feature-for-ipv4-routes )

W zgodzie z @ jkt123 w odpowiedzi, istnieje tylko 1 brama domyślna, którą należy przypisać.

Balldigy
źródło