Bridged Network: brak adresu IP w systemie gościa

1

Czego chcę:

Chcę, aby gość maszyny wirtualnej korzystający z Ubuntu (na VirtualBox) dla różnych serwerów testujących tworzenie stron internetowych (działających na różnych portach, np. Grunt.js działa na porcie 9000).

  • Chcę przetestować aplikacje internetowe działające na tych serwerach a) z wewnątrz gościa b) z hosta (z systemem Windows 7, btw), c) z innych urządzeń w tej samej sieci, połączonych przez WiFi (np. urządzenia mobilne)
    • Chcę mieć dostęp do Internetu z poziomu gościa

Po raz pierwszy uruchomiłem rozwiązanie, w którym miałem zarówno NAT, jak i adapter obsługujący tylko hosta, skonfigurowany w VirtualBox, co było dobre dla dostępu do gościa z hosta i dostępu do Internetu z poziomu gościa.

Teraz, gdy chcę, aby inne urządzenia miały dostęp do maszyny wirtualnej, to rozwiązanie już nie działa. Udało mi się to zrobić lata temu za pomocą zmostkowanej karty sieciowej, ale to chyba nie działa tutaj.

Co ja zrobiłem:

Ustawiłem zmostkowane sieci jako jedyną kartę sieciową w VirtualBox i pozostawiłem ustawienia domyślne. Po uruchomieniu gościa miga symbol WiFi w prawym górnym rogu, tzn. Strzałki nie pojawiają się. Po chwili mówi: „Disconnected - jesteś teraz offline”. To jest wyjście ifconfig:

eth0      Link encap:Ethernet  HWaddr 08:00:27:71:92:9c  
          inet6 addr: fe80::a00:27ff:fe71:929c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:233 errors:0 dropped:0 overruns:0 frame:0
          TX packets:103 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:16083 (16.0 KB)  TX bytes:22280 (22.2 KB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:32 errors:0 dropped:0 overruns:0 frame:0
          TX packets:32 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:2624 (2.6 KB)  TX bytes:2624 (2.6 KB)

Jak widać, nie ma adresu inet4. Dlatego nie mogę pingować hosta z poziomu gościa i odwrotnie.

Próbowałem też to , tj. zmieniłem adres MAC i uruchomiłem

sudo rm -rf /etc/udev/rules.d/70-persistent-net.rules

sudo reboot

W ogóle nic nie zmieniłem.

Co jeszcze mogę zrobić, aby to zdebugować? Podejrzewam, że to problem DHCP. Mogę łatwo uzyskać adres IP na moim hoście i innych komputerach w sieci, ale nie na gościu.

wnstnsmth
źródło
Jakiej wersji ubuntu używasz i czy wprowadziłeś zmiany w usługach? To działało dla mnie bez problemów przez wiele lat z wieloma różnymi typami gości (ubuntu8-12, windows) na hoście osx nad wifi. Jest ustawienie, aby wprowadzić adres MAC gościa w ustawieniach virtbox, czy może tak samo jak twój host?
fightermagethief
również, jak wyglądają ustawienia sieciowe gościa pod menedżerem wirtualnej skrzynki? W tym miejscu mogę wybrać urządzenie WiFi, zmostkowany adapter, mac gościa itp.
fightermagethief
Co mówi syslog w / var / log dhclient:? Czy próbowałeś skonfigurować statyczną konfigurację IP?
David
Jestem pewien, że sprawdziłbyś to, ale na wypadek, gdybyś tego nie zrobił. stworzyłeś wirtualną kartę sieciową na prawym łączu. tzn. twój host jest podłączony do routera na wlan i utworzyłeś adapter na wlan, jeśli nie, nie otrzymasz IP. Jeśli powyższe jest w porządku, możemy debugować jak poniżej & gt; Czy możesz uruchomić tcpdump i sprawdzić, czy któryś pakiet wychodzi lub przychodzi & gt; Co loguje dmesg & gt; Czy na tej samej maszynie działają inne maszyny wirtualne, które działają prawidłowo?
Chandrasekar

Odpowiedzi:

4

Jest to możliwe dzięki VirtualBox, mam ostatnio taką samą konfigurację, host systemu Windows 7, gościa Arch Linux, na laptopie z wifi. Jak powiedziałeś, to jest to, gdy dajesz gościom połączenie sieciowe. Wybrałem także sterownik virtio dla wirtualnej karty, ale wątpię, by był to związany z omawianym tematem.

Gość otrzymuje adres IP z dowolnego routera, z którym host się łączy, działa bezproblemowo i zaczyna myśleć o tym, że jest bardzo imponujący. Próbowałem osiągnąć to samo na hoście Xen i nie byłem w stanie. Więc pochodzi z magii ze sterowników VirtualBox, jedyny publiczny opis jest tutaj: http://www.virtualbox.org/manual/ch06.html#network_bridged .

Mostkowanie z interfejsem bezprzewodowym odbywa się inaczej niż mostkowanie do interfejsu przewodowego, ponieważ większość kart bezprzewodowych nie obsługuje trybu swobodnego. Cały ruch musi korzystać z adresu MAC adaptera bezprzewodowego hosta, dlatego VirtualBox musi zastąpić źródłowy adres MAC w nagłówku Ethernet wychodzącego pakietu, aby upewnić się, że odpowiedź zostanie wysłana do interfejsu hosta. [...] VirtualBox bada pakiety ARP i DHCP, aby poznać adresy IP maszyn wirtualnych.

To rozszerzenie sterownika powinno być open source, ponieważ nie jest wymienione w „Oracle VM VirtualBox Extension Pack”, ale trudno znaleźć dokumentację na ten temat. Niestety nie wiem, jak go rozwiązać, ale postaram się:

  1. Spójrz na właściwości karty bezprzewodowej hosta, sprawdź, czy widzisz tam rzeczy z wirtualnej skrzynki (od tego czasu ponownie zainstalowałem komputer, więc nie mogę dokładnie sprawdzić, jakie są dodatkowe elementy)
  2. Odinstaluj i zainstaluj ponownie kartę sieci bezprzewodowej. Prawdopodobnie usunie dodatkowe elementy, więc zakładam, że dezaktywacja / reaktywacja mostkowanej sieci we właściwościach maszyny wirtualnej przeinstalowałaby tę część.

Również, jeśli router jest twój, możesz przejrzeć jego dziennik, sprawdzić, czy przynajmniej otrzymuje pewne wstępne połączenia od gościa.


Edytuj: Skomentowałeś, że działa z innym routerem / punktem dostępu? W tym przypadku możliwe jest, że niektóre routery odmówią przydzielenia więcej niż jednego IP na ten sam adres MAC. Szkoda, że ​​nie mam już maszyny, aby sprawdzić, czy MAC dla każdego IP w routerze są takie same, ale tak powinno być.

bonob
źródło
1
Odnośnie do edycji: serwery DHCP powinny dać ten sam adres IP dzierżawy zwrotnej klientowi, który ponownie prosi o ten sam identyfikator klienta, a identyfikator klienta domyślnie przyjmuje adres MAC. Jeśli to, w co on wchodzi, powinien spróbować ręcznie ustawić inny identyfikator klienta (może to być dowolny ciąg) w systemie gościa. // cc @wnstnsmth
Spiff
Po wyczerpującej odpowiedzi. Akceptuję ten. W międzyczasie problem sam się rozwiązał. Podejrzewam, że routerowi zabrakło adresów IP w okresie, w którym próbowałem nawiązać połączenie. Tak naprawdę nie wiem. Ale jeśli problem się powtórzy, użyję tej odpowiedzi i powyższego komentarza do debugowania.
wnstnsmth
1

Standard IEEE 802.11 wymaga, aby punkty AP odrzucały pakiety z nieznanych adresów MAC; klient musi najpierw wykonać uwierzytelnianie i powiązanie 802.11, zanim AP będzie mógł odbierać z niego pakiety danych. Jeśli więc „tryb mostkowy” oznacza, że ​​Twoja maszyna wirtualna lub system gościa próbuje użyć drugiego adresu MAC na tej samej karcie radiowej, musi upewnić się, że drugi adres MAC jest uwierzytelniany i kojarzony z 802.11, w przeciwnym razie AP musi zignorować pakiety od drugi adres MAC.

Czy istnieje dokumentacja dotycząca tego, jak VirtualBox radzi sobie z tym problemem? Musi to być dobrze znany problem, który został rozwiązany (i powinna istnieć dokumentacja dotycząca jego rozwiązania) lub powinien być dobrze udokumentowany, że „tryb mostkowy przez Wi-Fi nie jest obsługiwany”.

Spiff
źródło
Musi być obsługiwany, gdy pomyślnie przetestowałem go z innym AP. Czy to możliwe, że AP odrzuca kolejne MAC? Nie jest to jednak prawdopodobne, ponieważ wciąż mogę łączyć się z innymi urządzeniami, więc nadal musi istnieć „pokój” na więcej.
wnstnsmth