Kein Internetzugang auf VMs im NAT-Netzwerk in VirtualBox

12

Ich habe in VirtulBox 5 in Ubuntu 14.04 LTS ein NAT-Netzwerk mit folgenden Einstellungen erstellt

Natework Name: NatNetwrok1
Network CIDR: 10.0.2.0/24
Support DHCP: aktiviert
Support IPv6: deaktiviert
ohne Portweiterleitung

Zusätzlich habe ich zwei VMs (Beide Xubuntu-Klone). Ich habe die Netzwerkeinstellungen so festgelegt, dass auf jeder VM zwei NICs mit den folgenden Einstellungen in allen vier Adaptern aktiviert werden:

Angebracht an: “NAT Network”
Name: “NatNetwrok1”

Wenn ich beide VMs ausführe, werden beim Ausführen des Befehls ifconfig folgende Einstellungen angezeigt

ifconfig ergibt sich auf Xubuntu1

eth0      Link encap:Ethernet  HWaddr 08:00:27:00:8c:03  
          inet addr:10.0.2.9  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe00:8c03/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:43 errors:0 dropped:0 overruns:0 frame:0
          TX packets:47 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:12133 (12.1 KB)  TX bytes:8517 (8.5 KB)

eth1      Link encap:Ethernet  HWaddr 08:00:27:9e:20:e8  
          inet addr:10.0.2.8  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe9e:20e8/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:43 errors:0 dropped:0 overruns:0 frame:0
          TX packets:48 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:10294 (10.2 KB)  TX bytes:8798 (8.7 KB)

ifconfig ergibt sich auf Xubutracentu2

eth0      Link encap:Ethernet  HWaddr 08:00:27:00:8c:03  
          inet addr:10.0.2.9  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe00:8c03/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:43 errors:0 dropped:0 overruns:0 frame:0
          TX packets:47 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:12133 (12.1 KB)  TX bytes:8517 (8.5 KB)

eth1      Link encap:Ethernet  HWaddr 08:00:27:9e:20:e8  
          inet addr:10.0.2.8  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe9e:20e8/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:43 errors:0 dropped:0 overruns:0 frame:0
          TX packets:48 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:10294 (10.2 KB)  TX bytes:8798 (8.7 KB)

Das Pingen zwischen diesen 4 IP-Adressen funktioniert einwandfrei.
Ich kann jedoch auf keiner dieser VMs auf das Internet zugreifen.
Wenn Sie jedoch "NAT Network" in "NAT" ändern, kann ich auf das Netzwerk zugreifen, aber es scheint Teil eines anderen virtuellen Netzwerks zu werden, und ich kann kein Ping senden sie voneinander
jemand kann mir helfen bei der Identifizierung und Befestigungsproblem

Kann jemand auch erklären, was ist der Unterschied zwischen NAT und NAT-Netzwerk

ehsan
quelle
Gleiches Problem ... Könnte jemand helfen?
Monitor35
Ich bin vor kurzem auf dieses Problem gestoßen, indem ich Virtual Box 5.0.40 aus dem Standard-Ubuntu-Repo verwendet habe. Um das zu umgehen, habe ich jede VM mit zwei Schnittstellen konfiguriert. Einer mit einem internen NatNetwork und der andere im Bridge-Modus. Unter dem Gastbetriebssystem (Ubuntu 16.04) müssen Sie / etc / network / interfaces anpassen, damit die zweite Schnittstelle im Gast angezeigt wird. Dies ermöglichte es jeder VM, sich im internen NAT zu befinden und gleichzeitig Zugang zum Internet zu haben.
JulioHM

Antworten:

7

Warum nicht arbeiten?

In 16,04 (und wahrscheinlich 14,04) die NAT - Netzwerk - Funktion der Haupt verpackte Version von VirtualBox (5.0.36) wird abgehört .

Prüfen Sie!

Sie können es selbst überprüfen: Wenn die ls /usr/lib/virtualbox/VBoxNetNATausführbare Datei vorhanden ist, liegt möglicherweise ein anderes Problem vor.

Repariere es!

Dieser Fehler wurde in neueren Versionen behoben. Sie sollten also eine neue Version installieren:

Alte Version entfernen

Wenn Sie beispielsweise mithilfe von installiert haben, können aptSie Folgendes ausführen:

sudo apt remove virtualbox --auto-remove

Neue Version installieren

Das Update ist für neuere Versionen (Ubuntu yakkety +) verfügbar. Für ältere Versionen:

  • Besuchen Sie virtualbox.org und laden Sie die neueste Version manuell herunter
  • ODER
  • Verwenden Sie das folgende Skript:

    # add the official repository
    wget -q -O - https://www.virtualbox.org/download/oracle_vbox_2016.asc | sudo apt-key add -
    echo deb http://download.virtualbox.org/virtualbox/debian `lsb_release -cs` non-free contrib | sudo tee /etc/apt/sources.list.d/virtualbox.org.list
    # install the newer version
    sudo apt install virtualbox-5.1
    
MrMeszaros
quelle
1
Wenn Sie eine frühere Version von virtualbox installiert haben, müssen Sie auch deinstallieren, virtualbox-dkmsdamit dieser Fix funktioniert. Andernfalls können Sie immer noch ohne Internet stecken
Barak Itkin
7

Ich bin mit VirtualBox 5.0.40 aus dem Standard-Apt-Repository darauf gestoßen. Um dies zu umgehen, habe ich jede VM so konfiguriert, dass sie zwei Netzwerkschnittstellen verwendet.

  • Adapter 1: Bridge Addapter (zu deiner echten NIC)
  • Adapter 2: NAT-Netzwerk (Ihrer Wahl)

Unter dem Betriebssystem guets (Ubuntu 16.04) müssen Sie Anpassungen vornehmen /etc/network/interfaces, damit die zweite Benutzeroberfläche angezeigt wird . In meinem Fall brauchte ich VMs, um statische IPs innerhalb des NAT-Netzwerks zu verwenden.

## Bridge to Internet
auto enp0s3
iface enp0s3 inet dhcp

## NAT Network among VMs
## Static is optional
## DHCP if you don't need it
auto enp0s8
iface enp0s8 inet static
  address 10.10.11.100
  netmask 255.255.255.0

Dies setzt natürlich voraus, dass mein NAT-Netzwerk das Subnetz verwendet 10.10.11.0/24. Passen Sie die Zahlen an Ihr Szenario an oder überlassen Sie es einfach DHCP, wie Sie möchten.

ANMERKUNG: In der statischen Konfiguration ist zu beachten, dass für dieses spezielle Szenario KEIN Standard-Gateway festgelegt werden kann. Wenn Sie enp0s8einen Standardwert (z. B. 10.10.11.1) angeben, erstellt das Betriebssystem eine Route zu diesem Gateway, und diese Route kann auch Ihren Internetzugang beeinträchtigen. Sie sollten dies nur tun müssen, wenn diese bestimmte Schnittstelle Routen zu anderen Netzwerken benötigt, abgesehen von denen, die für sie konfiguriert wurden.

Um die von Ubuntu für Ihre Umgebung zugewiesenen Schnittstellennamen herauszufinden, können Sie dmesg | grep eth.

Bildbeschreibung hier eingeben

JulioHM
quelle
Meins hat besser funktioniert, als ich 'dhcp' sowohl für eth0 als auch für eth1 verwendet habe. Es wurde 10.0.2.15 für NAT automatisch zugewiesen und mein öffentliches Internet eth1 hat keine IP, aber ich kann das Internet von der VM aus anpingen!
Milean
5

Laut VirtualBox-Handbuch sind dies die Netzwerkmöglichkeiten für Ihre VMs:

  • NAT: Internes Netzwerk zwischen VM und Host. Außerdem können Sie auf das Internet zugreifen. Zwei oder mehr VMs im NAT-Modus sind nicht miteinander verbunden, nur mit dem Host und dem Internet.

  • Intern: Alle VMs mit dieser Konfiguration verfügen über Verbindungen untereinander, jedoch nicht mit dem Host oder dem Internet.

  • Nur Host: Mit dieser Konfiguration wird ein virtuelles Netzwerk zwischen dem Host und allen VMs erstellt, Sie haben jedoch keinen Internetzugang.

  • NAT-Netzwerk: Sie können alle VMs im selben vordefinierten NAT-Netzwerk und auf dem Host erreichen, jedoch keine Verbindung zum Internet herstellen.

  • Überbrückt: Ihre VM befindet sich in demselben Netzwerk wie Ihr Host, als wäre es ein anderer Computer / Server in diesem Netzwerk, und verfügt daher über einen Internetzugang, wenn Ihr Host über einen verfügt.

  • Generisch: Erweiterte und spezifischere Konfiguration, die selten verwendet wird.

Wenn Sie also ein internes Netzwerk mit Konnektivität zum Host erstellen möchten, wählen Sie NAT-Netzwerk. Beachten Sie jedoch, dass Sie keinen Internetzugang haben. NAT wird nur festgelegt, wenn Sie nur von Ihrer VM aus auf das Internet zugreifen möchten und sonst nichts.

Keine dieser Einstellungen ist jedoch in Ordnung, wenn Sie eine der beiden Verbindungen zwischen VMs und dem Internet herstellen möchten. Soweit ich weiß, müssen Sie nur beide VMs im Bridged-Modus konfigurieren, damit es sich um "unterschiedliche" Computer in Ihrem Host-Netzwerk handelt und Sie sie alle und das Internet von jedem dieser Computer aus anpingen können.

Auf der anderen Seite haben Sie anscheinend eine VM von der anderen getrennt, da beide Computer dieselbe MAC-Adresse haben ( HWaddr in den ifconfig-Befehlsinformationen). Beachten Sie, dass Sie das Kontrollkästchen " Reinitialize the MAC address of all network cards " aktivieren sollten "beim klonen. Zwei Geräte mit derselben MAC-Adresse verursachen immer Probleme.

Ich bin kein Experte für VirtualBox. Vielleicht können Ihnen andere Benutzer andere mögliche Konfigurationen mitteilen, um das zu bekommen, was Sie wollen. Ich hoffe, Sie finden diese Informationen hilfreich.

Weitere Informationen finden Sie hier .

Pablo288
quelle
3
Es ist nicht wahr, dass NAT Network Ihre Gäste daran hindert, sich mit dem Internet zu verbinden. Ich kann von VM-Gästen in einem NAT-Netzwerk eine Verbindung zum Internet herstellen. Laut dem letzten Kommentar in forums.virtualbox.org/viewtopic.php?f=3&t=69504 bedeutet der NAT-Modus, dass jede VM hinter ihrem eigenen Router isoliert ist. NAT-Netzwerk ist dasselbe wie NAT, außer dass Sie mehrere VMs haben können mit demselben internen Router verbunden. "
eebbesen
2

Dies könnte ein Fehler in VirtualBox sein. Ich habe das gleiche erlebt (Ubuntu 16.04.2 LTS, VirtualBox 5.0.32_Ubuntu r112930): Richten Sie ein NAT-Netzwerk ein, das für zwei Ubuntu-VMs konfiguriert ist. Jede VM konnte Ping / SSH in die andere und über Portweiterleitungen konnte ich SSH vom Host in jede VM senden. Aber kein Internetzugang von innerhalb der VMs. Ein Kollege hat dasselbe mit einem Windows-Host, VirtualBox (unbekannte Version) und denselben VMs versucht, und es hat funktioniert.

Als Problemumgehung habe ich für jede VM eine zweite Netzwerkkarte konfiguriert: Die erste verwendet NAT, um auf das Internet zuzugreifen, die zweite "NAT-Netzwerk", um auf die anderen Gäste zuzugreifen. Ich musste die SSH-Portweiterleitung auf der ersten (NAT-) Karte einrichten und einen anderen SSH-Port auf einer VM konfigurieren (dh 2222 -> 22 auf VM1, 2223 -> 23 auf VM2).

Basierend auf der Dokumentation sollten sowohl NAT als auch NAT Network auf das Internet zugreifen können. Der Unterschied besteht darin, dass der erste Host ↔ Gastverbindungen getrennt hat, sodass Gäste nicht aufeinander zugreifen können, sondern nur auf den Host. Letzterer fasst alle Gäste in einem einzigen Netzwerk zusammen (und stellt Dienste wie DHCP bereit), damit sie aufeinander zugreifen können.

Ingo Karkat
quelle