Jak poprawnie skonfigurować 2 interfejsy sieciowe w CentOS (działający w VirtualBox)?

13

Mam maszynę VirtualBox z systemem CentOS 6.5. Stworzyłem dla niego 2 karty sieciowe w ustawieniach sieciowych VirtualBox dla urządzenia. Pierwszy to NAT, którego chcę, aby gość używał do łączenia się z Internetem, a drugi to Tylko host, którego użyję do SSH i dostępu do serwera WWW z komputera hosta. Ten samouczek na forach VirtualBox jest tym, co chcę osiągnąć, ale nie mogę znaleźć /etc/network/interfacespliku w CentOS 6.5, więc zakładam, że konfiguracja przebiega inaczej.

Po skonfigurowaniu zarówno adapterów NAT, jak i tylko hosta, uruchomiłem maszynę wirtualną, zrobiłem ip addr showi mam 2 interfejsy eth0oraz eth2(nie wiem, dlaczego w eth1jakiś sposób został pominięty). Więc konfiguruję oba ifcfg-ethXpliki /etc/sysconfig/network-scripts, ustawiając eth0na DHCP (dla NAT) i eth2statyczny adres IP (tylko dla hosta). Za eth0, ONBOOT=yesnatomiast dla eth2, ONBOOT=no. Dzięki takiemu ustawieniu mogę pingInternet, tzn ping -c 3 www.google.com. Otrzymuję odpowiedź, więc wiem, że mogę połączyć się z Internetem (gdy nie eth2działa).

Następnie ja ifup eth2. Z komputera hosta korzystam z SSH przy użyciu ustawionego statycznego adresu IP i mogę się połączyć bez problemu. Ale kiedy robię to ping -c www.google.comtym razem, kończy się to niepowodzeniem i wiem, że straciłem połączenie z Internetem, nawet jeśli eth0nadal działa. Wykonanie a route -npokazuje mi wyjście tabelaryczne z eth2zajęciem pierwszego i ostatniego wiersza, gdy eth0jest pomiędzy (przepraszam, nie mogę opublikować rzeczywistego wyniku, ponieważ usunąłem maszynę wirtualną z frustracji ...).

Utworzyłem nową maszynę Wirtualną CentOS i chciałbym kontynuować tę samą konfigurację. Mój networking-fu jest prawie nieobecny, więc jestem nim n00b. Chciałbym uzyskać kilka wskazówek, jak to zrobić poprawnie (tj. Jak ustawić adapter NAT do używania eth0i ustawić adapter tylko do hosta do użycia, eth1a nie eth2, jak uczynić eth0nadal użytecznym, nawet jeśli eth1/ eth2jest uruchomiony).

Aktualizacja

Więc mam nową maszynę wirtualną i wydaje się, że teraz działa, jeśli mam pierwszy adapter ustawiony tylko na host, a drugi adapter ustawiony na NAT. Jest tak skonfigurowany:

Ustawienia sieciowe VirtualBox

  • Karta sieciowa 1: Tylko host ( vboxnet0adres IP jest ustawiony na 10.3.0.1, maska ​​sieci 255.255.255.0i DHCP są wyłączone)
  • Karta sieciowa 2: NAT (DHCP)

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

# 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

Wynik 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

Wynik 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
źródło
Jaka jest twoja domyślna brama?
spuder
@spuder Dla interfejsu tylko hosta? Jeśli dobrze pamiętam, ustawienie vboxnet0(tylko jeśli host) było ustawione na, 192.168.56.1więc domyślnie była to brama domyślna. Nie mogę sobie przypomnieć interfejsu NAT.
baktin
Jeśli problem nadal występuje, dlaczego nie podasz danych wyjściowych ip routedotyczących nowej maszyny wirtualnej ...? I to z ip addr.
Hauke ​​Laging
@HaukeLaging Zaktualizowałem pytanie o żądane wyniki. Wydaje się, że teraz działa, mając pierwszy adapter tylko do hosta, a drugi do NAT. Ale wydaje mi się, że jest to obejście ... i chciałbym wiedzieć, jak to zrobić, jeśli ustawiłem pierwszy adapter na NAT, a drugi tylko na host.
baktin
Jeśli spróbujesz to zreplikować, użyj „ifconfig -a”, aby uzyskać MAC et2, który musi być użyty w linii HWADDR. I prawdopodobnie chcesz zamienić eth2 na eth1. Jak zapewne będziesz miał eth1, a nie eth2
Mangirdas Skripka

Odpowiedzi:

9

Myślę, że problemem jest (lub: był) fakt, że definicja bramy koliduje z DHCP. Wydaje się, że wpływa to na porządek interfejsu.

Podstawowy problem brzmi: w jaki sposób należy przeprowadzić routing przy użyciu dwóch kart sieciowych? Jak rozumiem, karta tylko do hosta będzie używana do połączeń tylko z hostem. Dlatego nie powinieneś w ogóle definiować żadnej bramy dla tego interfejsu. Ale może to działa tylko wtedy, gdy pierwszy interfejs używa DHCP.

Ponadto możesz rozważyć całkowite uniknięcie DHCP. Interfejs NAT działa również w konfiguracji statycznej.

Hauke ​​Laging
źródło
2
Usunięcie bramy dla interfejsu tylko hosta działało dla mnie. Dzięki.
baktin
-1

Mam zestaw

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

W systemie Oracle Linux (RHEL / CentOS) uruchamiam aplikację Połączenia sieciowe,
ustawiam eth0 na stały adres IP
i ustawiam eth1 na Automatyczny DHCP

Kiedy wykonujesz ifconfig, widzę, że zarówno eth0, jak i eth1 mają ustawione adresy inet i komunikację z hosta do pracy gościa i od gościa do Internetu wszystko działa.

Czasami nie uruchamiam VBOX przez chwilę i okazuje się, że komunikacja nie działa. Brak pomysłu.

Dzisiaj zacząłem GOŚCIA i bez połączenia sieciowego (w obie strony) zrestartowałem i to działa.

Może dotyczy to aktualizacji VBXO, po prostu nie wiem.

BTW: Aby komunikować się z Oracle DB, ustaw Przekazywanie portów na NAT (eth0) z 127.0.0.1 na Port IP gościa 1521. Zrób to z VBOX.

Mam również wyłączoną zaporę.

al881
źródło