Konfigurowanie translatora NAT gościa Ubuntu vmware

9

Mam hosta systemu Windows, który obsługuje gościa Ubuntu VM za pośrednictwem vmplayer. Ta maszyna wirtualna zostanie sklonowana, rozdzielona między kilka osób (z hostami Windows) i wykorzystana do przeprowadzenia warsztatów programistycznych. Próbuję - i jak dotąd zawodzi - skonfigurować sieć, aby spełnić następujące wymagania:

  1. Gość musi mieć dostęp do Internetu
  2. Wszystkie klony powinny mieć tę samą nazwę hosta (powiedzmy, że warsztat jest konkretny)
  3. System hosta musi mieć dostęp do swojego gościa za pomocą tej nazwy (np. Ping Workshop wysłałby ping do gościa działającego na tym hoście, a nie na żadnym innym klonie)

Co próbowałem do tej pory:

  • „Zainstalowano” kartę sieciową NAT dla gościa
  • Próbowałem połączyć gościa przez DHCP, w / etc / network / interfaces :

    auto eth0
    iface eth0 inet dhcp
       hostname Workshop
    

Działa to w zakresie łączenia się z Internetem. Jednak w ogóle nie jestem w stanie połączyć się z gościem z hosta. (Np. Ping Workshop nie działa; jeśli użyję adresu zwróconego przez ifconfig , nie będzie działał z hosta).

  • Próbowałem następnie przypisać gościowi adres statyczny:

    auto eth0
    iface eth0 inet static
         address 172.241.0.101
         netmask 255.255.0.0
         gateway 172.241.0.100
    

(172.241.0.100 to adres przypisany statycznie hostowi przez VMWare Network VMNet8 Adapter - to powyższy adapter NAT). Teraz mogę pingować 172.241.0.101 i telnet do niego z hosta. Mogę również pingować i telnet z gościa na 172.241.0.100 (hosta), ale to wszystko - nie ma połączenia z szerszą siecią. (Nie mogę również uzyskać dostępu do gościa poprzez jego nazwę hosta, ale nie jest to tutaj istotne, ponieważ jeśli push przychodzi do końca, mogę użyć jego adresu bezpośrednio - o ile jest taki sam dla wszystkich - a nie nazwy).

Teraz myślę, że mogę użyć opcji połączenia mostkowego z DHCP, co da mi to, czego potrzebuję w przypadku jednej maszyny wirtualnej (w tym przypadku nie próbowałem, ale pamiętam, że robiłem to wcześniej). Jednak w przypadku kilku maszyn wirtualnych o tej samej nazwie hosta i ich hostów podłączonych do tej samej sieci będzie to problematyczne, prawda?

Twoje rozwiązania i inne porady będą mile widziane.

malenkiy_scot
źródło

Odpowiedzi:

8

Przede wszystkim tak, nie będziesz mógł korzystać z mostkowanego połączenia sieciowego, ponieważ wszyscy goście będą mieli tę samą nazwę hosta, więc będziesz musiał korzystać z NAT.

Masz część konfiguracji poprawnie, jednak problem powinien dotyczyć domyślnej bramy przypisanej do gościa. Brama domyślna, gdy używa NAT, nie jest adresem IP hosta, jest to adres IP „przełącznika wirtualnego” podłączonego do sieci NAT. (Adapter VMnet8 hosta jest jedynie innym urządzeniem podłączonym do sieci, aby umożliwić hostowi komunikację z maszyną wirtualną.) Ten przełącznik wirtualny, o którym mówimy, pobiera .2adres IP w podsieci. W twoim przypadku /etc/network/interfacespowinieneś przeczytać:

auto eth0
iface eth0 inet static
     address 172.241.0.101
     netmask 255.255.0.0
     gateway 172.241.0.2

Powinno to zapewnić maszynie wirtualnej gościa dostęp do Internetu (poprzez 172.241.0.2), a także komunikować się z hostem ( 172.241.0.100). Wypróbuj to i daj mi znać, czy to działa.

Jeśli to nie działa (bardzo mało prawdopodobne), musisz dowiedzieć się, jaki jest adres IP przełącznika wirtualnego. Co możesz zrobić, to pozwolić maszynie wirtualnej uzyskać adres IP przez DHCP (tj. Zmienić go iface eth0 inet dhcptak, jak wcześniej), a następnie zrobić route -n. Powinno to pokazać domyślną bramę, z której korzysta. Użyj tego adresu IP w konfiguracji statycznej.


Aby móc pingować maszynę wirtualną gościa za pomocą jej nazwy hosta Warsztat , oto, co możesz zrobić. Musisz dodać wpis do hostspliku w systemie Windows, który znajduje się w C:\Windows\System32\drivers\etc\hosts. Edytuj ten plik, aby na końcu umieścić następujący wiersz:

Aby edytować ten plik w systemie Windows, musisz go otworzyć jako administrator w Notatniku lub Wordpadzie ... a czasem nawet nie pozwala go zapisać, więc musisz gdzieś skopiować kopię pliku, edytować usuń rozszerzenie .txt, jeśli je otrzymano, i wróć, zastąp oryginalne i „potwierdź” ... och, jak kocham Linuksa. Ale tak czy inaczej, oto linia, którą musisz dodać:

172.241.0.101    Workshop

Po wykonaniu tej czynności powinieneś być w stanie ping Workshoppomyślnie z hosta Windows.

Oczywiście, aby móc wdrożyć to w warsztacie, musisz edytować plik hosts na każdym hoście z systemem Windows, chyba że klonujesz również komputery z systemem Windows.

Wskazówka : ponieważ zamierzasz przypisać statycznego adresu IP gościowi, upewnij się, że „sieć NAT” w VMplayer na wszystkich hostach Windows używa podsieci 172.241.0.0/16, ponieważ myślę, że VMware losowo przypisuje podsieć do swoich sieci wirtualnych ( VMnet1, 2 itd.), Więc VMnet8 może nie używać tej samej podsieci na innym hoście Windows. Jeśli nie są, musisz ręcznie podać VMnet8 podsieć za pomocą Virtual Network Editor w VMware.


EDYTOWAĆ

W porządku. Po komentarzach oto, co musisz zrobić:

  1. Skonfiguruj komputer hosta (Windows), aby „automatycznie uzyskiwał adres IP” na karcie VMnet8. Powinien uzyskać adres IP 192.168.186.1.
  2. Skonfiguruj komputer gościa (Ubuntu) na statyczny adres IP w zakresie 192.168.186.3 - 192.168.186.127. Użyjmy 192.168.186.3. Ponadto, należy skonfigurować serwer domyślną bramę i dns być 192.168.186.2więc /etc/network/interfacespowinno być:

    auto eth0
    iface eth0 inet static
         address 192.168.186.3
         netmask 255.255.255.0
         gateway 192.168.186.2
         dns-nameservers 192.168.186.2
    
  3. Przetestuj łączność lokalną, wysyłając polecenia ping 192.168.186.1i 192.168.186.2z komputera-gościa. Powinieneś także mieć możliwość pingowania z hosta na gościa.

  4. Przetestuj łączność z Internetem na maszynie gościa, pingując google.comlub przeglądając Internet.
  5. Dodaj wiersz 192.168.186.3 Workshopdo hostspliku na hoście Windows.
  6. Przetestuj ping Workshopz hosta systemu Windows.

Jeśli chcesz używać adresów IP z zupełnie innej sieci / puli innej niż 192.168.186.0/24, musisz przejść do Edit > Virtual Network EditorVMware, znaleźć VMnet8 i zmienić ustawienia DHCP na samym dole na dowolną sieć i odpowiednio zmienić statyczne adresy IP (domyślną bramą będzie zawsze drugi użyteczny adres IP x.x.x.2).

wprowadź opis zdjęcia tutaj

Alaa Ali
źródło
172.241.0.2 nie działa. Nie odpowiada też na ping (w rzeczywistości uruchomienie nmap -sP 172.241.0.0/24 zwraca tylko dwa hosty na żywo - .100 i .101). Po skonfigurowaniu z dhcp zwracany jest zupełnie inny adres przez trasę -n: 192.168.186.2
malenkiy_scot
Och, założyłem, że korzystasz z sieci 172.241.0.0/16, ponieważ była to ta, której używa DHCP. Pomyśl o tym, to tak naprawdę publiczny adres IP [Oo]. Czy istnieje powód, dla którego przypisujesz adresy IP hosta i gościa w sieci 172.241.0.0? W każdym razie spójrz na moją zredagowaną odpowiedź.
Alaa Ali
Nie, nie używa tego DHCP, ale tak konfiguruje się adater VMNet8. Adres DHCP jest uzyskiwany za pośrednictwem usługi DHCP VMWare. Nie mam pojęcia, skąd bierze pulę adresów. Nie sądzę jednak, aby adres 172.241 był publiczny. Kiedy ustanawiam połączenie między hostem a gościem i uruchamiam CPORTS, pokazuje, że 10.63.41.41 (to adres hosta w sieci LAN) jest podłączony do siebie na różnych portach - co ma sens, ponieważ jest to NAT (lub prawdopodobnie PAT) . Tak naprawdę myślałem tak samo jak ty w odniesieniu do bramy - że ma ona inny adres.
malenkiy_scot
Tak, jak wspomniano w mojej odpowiedzi, usługę DHCP i jej pulę można konfigurować z poziomu Virtual Network Editor (dodałem zrzut ekranu do mojej odpowiedzi). Brama, DHCP i serwer DNS są takie same urządzenie wirtualne x.x.x.2. I tak, jak powiedziałeś, oczywiście używa przeciążenia (PAT) w stosunku do adresu IP hosta; nie powinieneś widzieć adresu IP gościa w szerszej sieci. Ponadto 172.241.0.0/16 jest publicznym zakresem adresów IP =). 172.16.0.0 - 172.31.255.255to prywatny zakres adresów klasy B. Ale to tak naprawdę nie ma znaczenia, nie powinno to wpływać na nic.
Alaa Ali,
Możesz także odwiedzić stronę, jeśli chcesz przeczytać więcej o NAT w VMware, to dobra lektura.
Alaa Ali
3

Miałem podobny problem, używając VMWare Player działającego w systemie Windows 7 z gośćmi Ubuntu. Ale byłem w stanie połączyć się z hostem na gościa i gościa na hosta, jednak problem polegał na tym, że nie byłem w stanie połączyć się z Internetem od gościa. Po przeczytaniu odpowiedzi na @Alaa musiałem zrobić jeszcze jedną poprawkę, aby dodać nazwę serwera DNS do pliku interfejsów (dns-nameservers 192.168.150.2), a potem wszystko poszło zgodnie z planem.

Oto moja konfiguracja, która zadziałała.

Konfiguracja interfejsu VMWare na hoście:

Adapter Ethernet VMware Adapter sieciowy VMnet8: (Klient)

Connection-specific DNS Suffix  . : 
Description . . . . . . . . . . . : VMware Virtual Ethernet Adapter for VMnet8
Physical Address. . . . . . . . . : 00-50-56-C0-00-08
DHCP Enabled. . . . . . . . . . . : No
Autoconfiguration Enabled . . . . : Yes
Link-local IPv6 Address . . . . . : fe80::9c13:cbf2:1dc:259f%42(Preferred) 

IPv4 Address. . . . . . . . . . . : 192.168.150.1(Preferred) 
Subnet Mask . . . . . . . . . . . : 255.255.255.0

Default Gateway . . . . . . . . . : 
DHCPv6 IAID . . . . . . . . . . . : 704663638
DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-19-06-50-32-88-53-2E-7A-D3-8E
DNS Servers . . . . . . . . . . . : fec0:0:0:ffff::1%1
                                    fec0:0:0:ffff::2%1
                                    fec0:0:0:ffff::3%1
NetBIOS over Tcpip. . . . . . . . : Enabled 

Zmiany interfejsu gościa Ubuntu:

auto eth0
iface eth0 inet static
address 192.168.150.10
netmask 255.255.255.0
gateway 192.168.150.2
dns-nameservers 192.168.150.2

192.168.150.2 to serwer proxy VMWare, który przekierowuje ruch gości do hosta.

Kingsly
źródło
Witam, spotykam ten sam problem co twój. Czy mógłbyś wyjaśnić więcej na temat rozwiązania problemu? Pierwszą rzeczą jest to, skąd uzyskać informacje o „Adapter Ethernet VMware Adapter sieciowy VMnet8: (Klient)”. Czy masz na myśli, że musisz zaktualizować zmiany w / etc / network / interfaces Ponadto, w przypadku adresu takiego jak „maska ​​sieci”, „brama”, czy różnią się one w zależności od komputera? Lub mogę użyć tego samego, co napisałeś.
user288609