Wie richte ich 2 Netzwerkschnittstellen in CentOS richtig ein (läuft in VirtualBox)?

13

Ich habe eine VirtualBox-Maschine, auf der CentOS 6.5 ausgeführt wird. Ich habe 2 Netzwerkadapter dafür in den Netzwerkeinstellungen der VirtualBox für den Computer erstellt. Das erste ist NAT, mit dem der Gast eine Verbindung zum Internet herstellen soll, und das zweite ist Host-only, mit dem ich vom Host-Computer aus auf den Webserver zugreifen kann. Dieses Tutorial in den VirtualBox-Foren ist das, was ich erreichen möchte, aber ich kann die /etc/network/interfacesDatei scheinbar nicht unter CentOS 6.5 finden, daher gehe ich davon aus, dass die Konfiguration anders erfolgt.

Nachdem ich sowohl NAT- als auch Host-only-Adapter eingerichtet hatte, startete ich die VM und führte eine aus, ip addr showund ich habe 2 Schnittstellen, eth0und eth2(ich weiß nicht, warum eth1irgendwie übersprungen wurde). Also konfiguriere ich beide ifcfg-ethXDateien in /etc/sysconfig/network-scriptsund setze eth0sie auf DHCP (für NAT) und eth2auf statische IP (nur für Host). Für eth0, ONBOOT=yeswährend für eth2, ONBOOT=no. Mit diesem Setup kann ich pingdas Internet, dh ping -c 3 www.google.comund es wird eine Antwort erhalten, so dass ich weiß, dass ich eine Verbindung zum Internet herstellen kann (solange nicht eth2verfügbar ist).

Als nächstes ich ifup eth2. Vom Hostcomputer aus verwende ich SSH mit der von mir festgelegten statischen IP und kann mich ohne Probleme verbinden. Aber wenn ich es ping -c www.google.comdiesmal mache , schlägt es fehl und ich weiß, dass ich meine Verbindung zum Internet verloren habe, auch wenn eth0es noch läuft. Wenn route -nich a mache, wird mir eine tabellarische Ausgabe mit der eth2Aufnahme der ersten und letzten Zeile eth0in der Zwischenzeit angezeigt.

Ich habe eine neue CentOS-VM erstellt und möchte mit derselben Einrichtung fortfahren. Mein Netzwerk-Fu ist so gut wie nicht vorhanden, also bin ich ein N00B. Ich hätte gerne einige Tipps, wie man es richtig macht (dh wie man den NAT-Adapter auf die Verwendung eth0und den Nur-Host- Adapter auf die Verwendung einstellt eth1und nicht eth2, wie man ihn auch dann eth0noch benutzbar macht, wenn eth1/ eth2läuft).

Aktualisieren

Also habe ich die neue VM zum Laufen gebracht und es scheint jetzt zu funktionieren, wenn ich den ersten Adapter auf Nur-Host und den zweiten Adapter auf NAT eingestellt habe. Es ist so aufgebaut:

VirtualBox Netzwerkeinstellungen

  • Netzwerkadapter 1: Nur Host ( vboxnet0IP-Adresse ist festgelegt 10.3.0.1, Netzwerkmaske 255.255.255.0und DHCP sind deaktiviert)
  • Netzwerkadapter 2: NAT (DHCP)

CentOS VM- /etc/sysconfig/network-scripts/ifcfg-ethXEinstellungen

# ifcfg-eth0
DEVICE=eth0
HWADDR=08:00:27:EC:6C:B9
TYPE=Ethernet
UUID=1339bc30-...
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
DHCPCLASS=
IPADDR=10.3.0.100
NETMASK=255.255.255.0
GATEWAY=10.3.0.1

# ifcfg-eth2
DEVICE=eth2
HWADDR=08:00:27:EB:73:BA
TYPE=Ethernet
UUID=1339bc30-...
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp

Ergebnis von ip route

10.0.3.0/24  dev  eth2  proto  kernel  scope  link  src  10.0.3.15
10.3.0.0/24  dev  eth0  proto  kernel  scope  link  src  10.3.0.100
169.254.0.0/16  dev  eth0  scope  link  metric  1002
169.254.0.0/16  dev  eth2  scope  link  metric  1003
default via 10.0.3.2 dev eth2

Ergebnis von ip addr

1:  lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00:00
     inet 127.0.0.1/8 scope host lo
     inet6 ::1/128 scope host
        valid_lft forever preferred_lft forever
2:  eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
     link/ether 08:00:27:ec:6c:b9 brd ff:ff:ff:ff:ff:ff
     inet 10.3.0.100/24 brd 10.3.0.255 scope global eth0
     inet6 fe80::a00:27ff:feec:6cb9/64 scope link
        valid_lft forever preferred_lft forever
3:  eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
     link/ether 08:00:27:eb:73:ba brd ff:ff:ff:ff:ff:ff
     inet 10.0.0.15/24 brd 10.0.3.255 scope global eth2
     inet6 fe80::a00:27ff:feeb:73ba/64 scope link
        valid_lft forever preferred_lft forever
baktin
quelle
Was ist Ihr Standard-Gateway?
Spuder
@spuder Für die Nur-Host-Schnittstelle? Wenn ich mich richtig erinnere, wurde vboxnet0(nur Host, wenn) so eingestellt, 192.168.56.1dass ich denke, dass dies das Standard-Gateway war. Ich kann mich nicht an die NAT-Schnittstelle erinnern.
Baktin
Wenn das Problem weiterhin besteht, warum geben Sie uns dann nicht die Ausgabe ip routeder neuen VM an? Und das von ip addr.
Hauke ​​Laging
@HaukeLaging Ich habe die Frage mit den von Ihnen angeforderten Ausgaben aktualisiert. Es scheint jetzt zu funktionieren, mit dem ersten Adapter auf Host-only und dem zweiten auf NAT. Ich bin jedoch der Meinung, dass dies eine Problemumgehung ist. Ich würde gerne wissen, wie dies am besten funktioniert, wenn ich den ersten Adapter auf NAT und den zweiten auf Nur-Host gesetzt habe.
Baktin
Wenn Sie versuchen, dies zu replizieren, verwenden Sie "ifconfig -a", um den MAC von eth2 abzurufen, der in der HWADDR-Zeile verwendet werden muss. Und Sie möchten wahrscheinlich eth2 durch eth1 ersetzen. Wie Sie wahrscheinlich eth1 haben, nicht eth2
Mangirdas Skripka

Antworten:

9

Ich vermute, das Problem ist (oder war), dass die Gateway-Definition mit DHCP kollidiert. Irgendwie scheint die Reihenfolge der Schnittstellen dies zu beeinflussen.

Das Grundproblem ist: Wie soll das Routing mit zwei Netzwerkkarten durchgeführt werden? Soweit ich weiß, wird die Nur-Host-Karte nur für Verbindungen zum Host verwendet. Daher sollten Sie für diese Schnittstelle überhaupt kein Gateway definieren. Aber vielleicht funktioniert das nur, wenn die erste Schnittstelle DHCP verwendet.

Darüber hinaus können Sie in Betracht ziehen, DHCP vollständig zu vermeiden. Die NAT-Schnittstelle funktioniert auch mit einer statischen Konfiguration.

Hauke ​​Laging
quelle
2
Das Entfernen des Gateways für die Nur-Host-Schnittstelle hat bei mir funktioniert. Vielen Dank.
Baktin
-1

Ich habe eine Aufstellung von

Adapter 1 = NAT = eth0
Adapter 2 = Bridged Adapter = eth1

Unter Oracle Linux (RHEL / CentOS)
starte ich die Network Connections-Anwendung und setze eth0 auf eine feste IP-Adresse
und eth1 auf Automatic DHCP

Wenn Sie eine ifconfig machen, sehe ich, dass sowohl eth0 als auch eth1 inet-Adressen gesetzt haben und die Kommunikation vom HOST zum GUEST und vom GUEST zum Internet funktioniert.

Es gab Zeiten, in denen ich VBOX für eine Weile nicht gestartet habe und die Kommunikation nicht funktioniert hat. Keine Ahnung.

Heute habe ich den GUEST gestartet und keine Netzwerkverbindung (in beide Richtungen) habe ich neu gestartet und es funktioniert.

Vielleicht, um mit VBXO-Upgrades zu tun, ich weiß es einfach nicht.

BTW: Um mit Oracle DB zu kommunizieren, setzen Sie Port Forwarding auf NAT (eth0) von 127.0.0.1 auf Guest IP Port 1521. Tun Sie dies über VBOX.

Ich habe auch meine Firewall deaktiviert.

al881
quelle