Mam gościa Oracle Linux działającego na serwerze internetowym w VirtualBox na hoście Windows 7. Muszę skonfigurować sieć, aby móc zrobić 3 rzeczy:
- host może połączyć się z gościem za pomocą przeglądarki i ssh
- gość może rozmawiać z innymi serwerami w sieci wewnętrznej za pośrednictwem sieci VPN hosta
- gość może uzyskać dostęp do zewnętrznego Internetu
Przeczytałem kilka odpowiedzi i wypróbowałem kilka konfiguracji, a oto co się dzieje:
Bridged
- gospodarz nie może dotrzeć do gościa
- gość nie widzi przez VPN
- gość może uzyskać dostęp do Internetu
NAT
- gospodarz nie może dotrzeć do gościa
- gość może widzieć przez VPN
- gość nie może połączyć się z Internetem
Tylko host
wszystkie 3 warunki zawodzą.
Sieć NAT
- gospodarz nie może dotrzeć do gościa
- gość może widzieć przez VPN
- gość nie może połączyć się z Internetem
Powinienem również zauważyć, że czasami host jest podłączony przez VPN, a innym razem jest podłączony bezpośrednio do sieci korporacyjnej. Gdy jest podłączony bezpośrednio, mostkowany adapter spełnia wszystkie 3 warunki. Idealnie byłoby, gdyby konfiguracja spełniała wszystkie 3 warunki, niezależnie od tego, czy jest VPN czy bezpośrednie połączenie.
networking
virtualbox
vpn
ewok
źródło
źródło
Odpowiedzi:
Miałem dokładnie ten sam problem i przejrzałem go do rozwiązania, więc chętnie wyjaśnię problem i rozwiązanie szczegółowo.
Bez udziału VPN
Ważne jest, aby zrozumieć konfigurację wymaganą do spełnienia wymagań bez udziału VPN. Ponadto informacje te zakładają, że żadna zapora programowa nie ingeruje, ani na hoście, ani na gościu.
Bez sieci VPN można to zwykle rozwiązać, tworząc dwie karty sieciowe w konfiguracji maszyny wirtualnej.
Pierwszy adapter musi być ustawiony w
NAT
tryb, który umożliwia gościowi dostęp do zasobów sieciowych (w tym Internetu) przez interfejs sieciowy hosta.Drugi adapter musi być ustawiony na
Host-only
, co umożliwia dwukierunkową komunikację między hostem a gościem.Ten adapter jest nieco bardziej skomplikowany w konfiguracji niż pierwszy, ponieważ wymaga zmodyfikowania globalnych preferencji sieci VirtualBox w celu skonfigurowania adaptera samego hosta (uwaga: wymaga to uprawnień administratora).
W VirtualBox przejdź do
File -> Preferences -> Network
. KliknijHost-only Networks
kartę i kliknij małą+
ikonę, aby dodać nowy adapter. Zostaniesz poproszony o podniesienie uprawnień VirtualBox.Wypełnienie
Adapter
zakładki jest obowiązkowe; powinien wyglądać mniej więcej tak (zignoruj adapter oznaczony#2
; jest używany do czegoś niezwiązanego):Wartości na
DHCP
karcie serwera są opcjonalne. Jeśli zamierzasz zakodować na stałe adres IP tego adaptera w konfiguracji sieci gościa, te wartości są niepotrzebne. Jeśli z drugiej strony zamierzasz używać DHCP, wartości mogą wyglądać mniej więcej tak:Ostatnim krokiem związanym z konfiguracją VirtualBox jest powrót do konfiguracji sieci maszyny wirtualnej i dodanie drugiego adaptera, który odwołuje się do właśnie utworzonego adaptera hosta:
Teraz w systemie operacyjnym gościa sieć musi być skonfigurowana do korzystania z tych dwóch interfejsów sieciowych.
W systemie Debian lub Ubuntu GNU / Linux konfiguracja jest tak prosta, jak modyfikacja,
/etc/network/interfaces
aby wyglądała następująco:(purysta może preferować korzystanie z
/etc/network/interfaces.d
katalogu, ale to wykracza poza zakres tego wyjaśnienia)Zrestartuj usługi sieciowe gościa lub prościej, uruchom ponownie całą maszynę wirtualną gościa i wszystko powinno „po prostu działać”.
W tym momencie można pingować maszynę wirtualną gościa
192.168.56.101
i otrzymać odpowiedź (pod warunkiem, że zapora programowa nie zakłóca).Podobnie, powinno być możliwe pingowanie hosta na
10.0.2.2
. Wydaje się, że ten adres IP jest „zakodowany na stałe” w implementacji NAT VirtualBox, lub przynajmniej określony przez jakąś nieoczywistą dyrektywę konfiguracyjną, a niewiele jest informacji na temat jego pochodzenia. Ale niestety „po prostu działa”.Biorąc pod uwagę tę konfigurację, wszystkie trzy warunki przedstawione w pytaniu są spełnione.
Wpisz: VPN
Ale oto pocieranie. Wprowadzenie VPN powoduje problem z zatrzymaniem pokazu (cóż, w zależności od konkretnej sieci VPN i jej konfiguracji).
Nowoczesne sieci VPN są w stanie dzielić tunelowanie , co jest wymagane, aby wspomniana konfiguracja VirtualBox działała zgodnie z trzema wymaganiami. Z (dobrych) powodów bezpieczeństwa dzielone tunelowanie jest często wyłączone, i to jest właśnie problem w twoim przypadku (i moim).
Kiedy łączysz się z VPN, klient VPN (w moim przypadku Cisco AnyConnect Secure Mobility Client, 3.1.02026) sprawdza tabele routingu komputera hosta, zapamiętuje je, a następnie przesyła je wartościami, które zwykle pochodzą z niektórych centralnie- zarządzana lokalizacja (tzn. nawet przy lokalnych uprawnieniach administratora nie można zastąpić ustawień).
Możesz sam sprawdzić tabele routingu, otwierając
command.exe
(w systemie Windows):Przed połączeniem z VPN tabela routingu zawiera kluczowe wpisy, które pozwalają na prawidłowe działanie konfiguracji VirtualBox. Połączenie z VPN powoduje usunięcie tych wpisów, co uniemożliwia komunikację między hostem a gościem.
(Istnieje wiele innych pozycji, które tutaj pominąłem, ponieważ nie mają one związku z podstawową przyczyną tego zachowania).
Przed połączeniem z VPN:
Po połączeniu z VPN:
Klient VPN usuwa następujące linie:
Bez tych dwóch ostatnich wpisów host i gość nie mogą się komunikować i jest to dokładnie zamierzone zachowanie, gdy tunelowanie podzielone jest wyłączone w konfiguracji VPN.
Zwykle te dwa polecenia przywracają te trasy:
Ale klient VPN pozostaje czujny: przechwytuje próby modyfikacji tabeli routingu. Mój klient wydaje się zezwalać na drugie wejście, ale nie na pierwsze. (I może się to czasem pomijać; nie testowałem tego.)
Jeśli Twoja konkretna sieć VPN i towarzysząca jej konfiguracja pozwalają na włączenie tunelowania podzielonego, zazwyczaj jest ona włączana w następujący sposób:
Po rozłączeniu z VPN dobrze zachowani klienci VPN przywrócą tabele routingu, które były na miejscu przed połączeniem. Mój klient VPN wydaje się robić to niezawodnie, co jest korzystne, ponieważ oznacza, że nie trzeba ponownie uruchamiać maszyny wirtualnej gościa, gdy łączę się lub rozłączam z VPN. W takich przypadkach dodatkowy adapter maszyny wirtualnej jest resetowany, ale automatycznie odzyskuje swój adres IP automatycznie i przejrzyście, niemal natychmiast przywracając komunikację między hostem a gościem. Co więcej, podłączenia NFS między hostem a gościem (korzystam z podłączeń CIFS) pozostają połączone podczas operacji łączenia / rozłączania VPN.
W mało prawdopodobnym przypadku, gdy twoja sieć VPN zezwala na dzielone tunelowanie, może to być prosta kwestia włączenia go, w takim przypadku chciałbym usłyszeć od ciebie, czy „wszystko po prostu działa”.
źródło
Jak korzystać z mojego hosta systemu Windows VPN na maszynie gościa Linux Linux
Ustaw mój VPN, aby używał stałych numerów portów w ustawieniach
Ustaw sieć VM na NAT
Skonfiguruj ustawienia proxy linuksa na ip 10.0.2.2 (domyślna brama NAT wirtualnej skrzynki) i porty, które ręcznie wprowadziłem do mojej VPN
źródło