Stworzyłem sieć NAT w VirtulBox 5 w Ubuntu 14.04 LTS z następującymi ustawieniami
Nazwa pracy: NatNetwrok1
Network CIDR: 10.0.2.0/24
Obsługa DHCP: włączona
Obsługa IPv6: wyłączona
bez przekierowania portów
Dodatkowo mam dwie maszyny wirtualne (oba klony Xubuntu), skonfigurowałem ustawienia sieciowe, aby włączyć dwie karty sieciowe na każdej maszynie wirtualnej z następującymi ustawieniami we wszystkich czterech kartach:
Załączony do: „NAT Network”
Nazwa: „NatNetwrok1”
Po uruchomieniu obu maszyn wirtualnych widzę następujące ustawienia po uruchomieniu polecenia ifconfig
wyniki ifconfig na 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)
wyniki ifconfig na 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)
Ping między tymi 4 adresami IP działa dobrze,
ale nie mogę uzyskać dostępu do Internetu na żadnej z tych maszyn wirtualnych.
Jeśli natomiast zmienię „NAT Network” na „NAT”, mogę uzyskać dostęp do sieci, ale wygląda na to, że stał się częścią innej sieci wirtualnej i nie mogę pingować je od siebie
Czy ktoś może mi pomóc w zidentyfikowaniu i naprawieniu problemu
Czy ktoś może również wyjaśnić, jaka jest różnica między NAT a NAT Network
Odpowiedzi:
Dlaczego nie działa?
W 16.04 (i prawdopodobnie 14.04) Jak NAT Network funkcji głównego wersji zapakowanej w VirtualBox (5.0.36) jest na podsłuchu .
Sprawdź to!
Możesz to sprawdzić samodzielnie: jeśli
ls /usr/lib/virtualbox/VBoxNetNAT
plik wykonywalny jest obecny, możesz mieć inny problem.Napraw to!
Ten błąd został naprawiony w nowszych wersjach. Więc powinieneś zainstalować nową wersję:
Usuń starą wersję
Na przykład, jeśli zainstalowałeś,
apt
możesz uruchomić:Zainstaluj nową wersję
Poprawka jest dostępna dla nowszych wersji (Ubuntu yakkety +). W przypadku starszych wersji:
Użyj następującego skryptu:
źródło
virtualbox-dkms
tę poprawkę, aby działała. W przeciwnym razie możesz nadal utknąć bez internetuNatknąłem się na to przy użyciu VirtualBox 5.0.40 z domyślnego repozytorium apt. Aby obejść ten problem, skonfigurowałem każdą maszynę wirtualną do korzystania z dwóch interfejsów sieciowych.
W systemie operacyjnym guets (Ubuntu 16.04) konieczne będzie dostosowanie
/etc/network/interfaces
, aby pojawił się drugi interfejs. W moim przypadku potrzebowałem maszyn wirtualnych do używania statycznych adresów IP w sieci NAT, więc to właśnie otrzymałem.To oczywiście zakłada, że moja sieć NAT korzysta z podsieci
10.10.11.0/24
. Dostosuj liczby do swojego scenariusza lub po prostu pozostaw go do dhcp, jak chcesz.UWAGA: Jedną ważną rzeczą, na którą należy zwrócić uwagę w konfiguracji statycznej, jest to, że dla tego konkretnego scenariusza NIE MOŻNA przypisać jej domyślnej bramy. Podanie
enp0s8
wartości domyślnej (np. 10.10.11.1) spowoduje, że system operacyjny utworzy trasę do tej bramy, a ta trasa może również zepsuć dostęp do Internetu. Powinieneś to zrobić tylko wtedy, gdy ten konkretny interfejs wymaga tras do innych sieci, oprócz skonfigurowanej dla niego.Aby znaleźć nazwy interfejsów przypisane przez Ubuntu dla twojego środowiska, możesz
dmesg | grep eth
.źródło
Według instrukcji VirtualBox są to możliwości sieciowe dla twoich maszyn wirtualnych:
NAT: sieć wewnętrzna między maszyną wirtualną a hostem. Poza tym możesz uzyskać dostęp do Internetu. Dwie lub więcej maszyn wirtualnych w trybie NAT nie ma między nimi łączności, tylko z hostem i Internetem.
Wewnętrzne: wszystkie maszyny wirtualne z tą konfiguracją będą miały łączność między nimi, ale nie z hostem ani Internetem.
Tylko host: przy tej konfiguracji zostanie utworzona sieć wirtualna między hostem a wszystkimi maszynami wirtualnymi, ale nie będziesz mieć dostępu do Internetu.
Sieć NAT: Możesz dotrzeć do wszystkich maszyn wirtualnych w tej samej wstępnie zdefiniowanej sieci NAT i hoście, ale nie będziesz mógł połączyć się z Internetem.
Bridged: Twoja maszyna wirtualna będzie w tej samej sieci, co twój host, tak jakby był innym komputerem / serwerem w tej sieci, a zatem będzie miał dostęp do Internetu, jeśli twój host ma.
Ogólne: rzadko używana zaawansowana i bardziej szczegółowa konfiguracja.
Jeśli więc chcesz utworzyć sieć wewnętrzną z łącznością z hostem, wybierz NAT Network, ale zauważ, że nie będziesz mieć dostępu do Internetu. NAT jest ustawiany tylko wtedy, gdy chcesz uzyskać dostęp do Internetu z maszyny wirtualnej i nic więcej.
Jednak żadne z tych ustawień nie jest odpowiednie, jeśli chcesz mieć łączność między maszynami wirtualnymi i Internetem. O ile mi wiadomo, jedynym wyborem jest skonfigurowanie obu maszyn wirtualnych w trybie zmostkowanym, aby były to „różne” komputery w sieci hosta i będzie można je pingować wszystkie oraz Internet z dowolnego z nich.
Z drugiej strony wydaje się, że sklonowałeś jedną maszynę wirtualną od drugiej, ponieważ oba komputery mają ten sam adres MAC ( HWaddr w informacji o poleceniu ifconfig), pamiętaj, że powinieneś zaznaczyć pole wyboru z napisem „ Zainicjuj adres MAC wszystkich kart sieciowych „podczas klonowania. Dwa urządzenia z tym samym adresem MAC zawsze powodują problemy.
Nie jestem ekspertem w VirtualBox, więc może inni użytkownicy mogą powiedzieć ci inne możliwe konfiguracje, aby uzyskać to, czego chcesz. Mam nadzieję, że te informacje były przydatne.
Aby uzyskać więcej informacji można przeczytać to .
źródło
To może być błąd w VirtualBox. Doświadczyłem tego samego (Ubuntu 16.04.2 LTS, VirtualBox 5.0.32_Ubuntu r112930): Skonfiguruj sieć NAT, skonfigurowaną dla dwóch maszyn wirtualnych Ubuntu. Każda VM może pingować / SSH na drugą, a poprzez przekierowanie portów mogłem SSH z hosta na każdą VM. Ale brak dostępu do Internetu z poziomu maszyn wirtualnych. To samo kolega wypróbował to samo z hostem Windows, VirtualBox (nieznana wersja) i tymi samymi maszynami wirtualnymi, i zadziałało.
Aby obejść ten problem, skonfigurowałem drugą kartę sieciową dla każdej maszyny wirtualnej: pierwsza używa NAT do uzyskania dostępu do Internetu, druga używa „NAT Network” do uzyskania dostępu do innych gości. Musiałem skonfigurować przekierowanie portów SSH na pierwszej karcie (NAT) i skonfigurować inny port SSH na jednej maszynie wirtualnej (tj. 2222 -> 22 na VM1, 2223 -> 23 na VM2).
Na podstawie dokumentacji zarówno NAT, jak i NAT Network powinny mieć dostęp do Internetu. Różnica polega na tym, że w pierwszym segregowano połączenia hosta ↔ gości, więc goście nie mają dostępu do siebie, tylko host. Ten ostatni łączy wszystkich gości w jedną sieć (i zapewnia usługi takie jak DHCP), aby mogli się nawzajem uzyskiwać dostęp.
źródło