гостевая ОС virtualbox через vpn

У меня есть гость Oracle Linux, запускающий веб-сервер в VirtualBox на хосте Windows 7. Мне нужно настроить сеть так, чтобы я мог делать 3 вещи:

  1. хост может подключаться к гостю через браузер и ssh
  2. гость может общаться с другими серверами во внутренней сети через VPN хоста
  3. гость может связаться с внешним интернетом

Я прочитал несколько ответов и попробовал несколько конфигураций, и вот что бывает:

Мостовой

  1. хост не может связаться с guest
  2. Гость не видит через VPN
  3. гость может связаться с интернетом

NAT

  1. хост не может связаться с guest
  2. гость может видеть через VPN
  3. Гость не может выйти в интернет

Хоста

все 3 условия неудача.

NAT-Network

  1. хост не может связаться с guest
  2. гость может видеть через VPN
  3. Гость не может выйти в интернет

Я должен также отметить, что иногда хост подключен через VPN, а в других случаях он просто подключен непосредственно к корпоративной сети. Когда он подключен напрямую, мостовой адаптер удовлетворяет всем трем условиям. В идеале была бы конфигурация, которая удовлетворяет все 3 условия, независимо от того, есть ли VPN или прямое подключение.

7
задан ewok
30.03.2023 20:34 Количество просмотров материала 3191
Распечатать страницу

1 ответ

Я точно та же проблема, и видел его до разрешения, так что я рад объяснить проблему и решение в деталях.

без участия VPN

важно понимать конфигурацию, которая необходима для того, чтобы соответствовать вашим требованиям без с участием VPN. Кроме того, эта информация предполагает, что брандмауэр мешает, ни на хозяина, ни гостя.

без VPN, это обычно решается путем создания двух сетевых адаптеров в конфигурации виртуальной машины.

первый адаптер должен быть установлен в NAT режим, который позволяет гостям получить доступ к сетевым ресурсам (включая Интернет) через сетевой интерфейс хоста.

Adapter 1: NAT

второй адаптер должен быть установлен в Host-only, которое включает двухнаправленное сообщение между хозяином и гостем.

этот адаптер немного сложнее настроить, чем первый, потому что он требует изменения глобальных сетевых настроек VirtualBox для настройки адаптера только для хоста (примечание: для этого требуются права администратора).

в VirtualBox перейдите к File -> Preferences -> Network. Нажмите кнопку Host-only Networks tab и нажмите маленький + значок для добавления нового адаптера. Вам будет предложено повысить разрешения VirtualBox.

заполнение тега Adapter tab является обязательным; он должен выглядеть что-то вроде этого (игнорируйте адаптер с надписью #2; это используется для чего-то несвязанного):

Networking Preferences 1

значения DHCP вкладка сервер необязательны. Если вы собираетесь жестко IP-адрес для этого адаптера в сетевых настройках клиента, то эти значения не нужны. Если, с другой стороны, вы собираетесь использовать DHCP, значения могут выглядеть примерно так это:

Networking Preferences 2

последний шаг в отношении настройки VirtualBox-вернуться в сетевую конфигурацию виртуальной машины и добавить второй адаптер, который ссылается на только что созданный адаптер хоста:

Adapter 2: Host-only

теперь в гостевой операционной системе сеть должна быть настроена на использование этих двух сетевых интерфейсов.

на Debian или Ubuntu GNU / Linux, конфигурация так же проста, как изменение /etc/network/interfaces выглядит так:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp

# The secondary network interface
auto eth1
iface eth1 inet static
     address 192.168.56.101
     netmask 255.255.255.0

(пурист может предпочесть использовать /etc/network/interfaces.d каталог вместо этого, но это выходит за рамки этого объяснения)

перезапустите сетевые службы гостя, или проще говоря, перезагрузите всю гостевую виртуальную машину, и все должно "просто работать".

на этом этапе необходимо проверить связь с гостевой виртуальной машиной по адресу 192.168.56.101 и получите ответ (при условии, программное обеспечение межсетевой экран не вмешивается).

аналогично, можно пинговать хост в 10.0.2.2. Этот IP-адрес, по-видимому," жестко закодирован " в реализации Nat VirtualBox, или, по крайней мере, указан с помощью какой-то неочевидной директивы конфигурации, и существует мало информации о его происхождении. Но, увы, "это просто работает".

учитывая эту конфигурацию, все три условия, изложенные в вашем вопросе, выполнены.

Enter: VPN

но вот в чем загвоздка. Введение VPN вызывает проблему остановки показа (хорошо, в зависимости от определенного VPN и его конфигурации).

современные VPN способны Раздельное Туннелирование, который необходим для вышеупомянутой конфигурации VirtualBox, чтобы функционировать в соответствии с вашими тремя требованиями. По (хорошим) причинам безопасности раздельное туннелирование часто отключается, и это именно проблема в вашем (и моем) случае.

когда вы подключиться к VPN, VPN-клиент (компания Cisco AnyConnect Безопасный клиент подвижности, 3.1.02026, в моем случае) рассматривает главного компьютера таблицы маршрутизации, запоминает их, и потом прокладывает-за их значения, которые обычно поступают от некоторых централизованной месте (т. е. даже с локального администратора, невозможно переопределить параметры).

вы можете изучить таблицы маршрутизации для себя, открыв command.exe (в Windows):

C:\>route print

перед подключением к VPN таблица маршрутизации содержит важные записи, которые позволяют этой конфигурации VirtualBox функционировать правильно. Соединение с VPN заставляет эти записи быть удаленными, который предотвращает связь между хостом и гостем.

(есть много других записей, которые я опустил здесь, поскольку они не имеют отношения к основной причине такого поведения.)

перед подключением к VPN:

     192.168.56.0    255.255.255.0         On-link      192.168.56.1    266
     192.168.56.1  255.255.255.255         On-link      192.168.56.1    266
   192.168.56.255  255.255.255.255         On-link      192.168.56.1    266
        224.0.0.0        240.0.0.0         On-link      192.168.56.1    266
  255.255.255.255  255.255.255.255         On-link      192.168.56.1    266

после подключения к VPN:

     192.168.56.1  255.255.255.255         On-link      192.168.56.1    266
        224.0.0.0        240.0.0.0         On-link      192.168.56.1    266
  255.255.255.255  255.255.255.255         On-link      192.168.56.1    266

клиент VPN удаляет следующие строки:

     192.168.56.0    255.255.255.0         On-link      192.168.56.1    266
   192.168.56.255  255.255.255.255         On-link      192.168.56.1    266

без этих последних двух записей хост и гость не могут взаимодействовать, и это именно то поведение, когда раздельное туннелирование отключено в конфигурации VPN.

обычно эти две команды восстанавливают эти маршруты:

C:\>route ADD 192.168.56.0 MASK 255.255.255.0 192.168.56.1 METRIC 266
C:\>route ADD 192.168.56.255 MASK 255.255.255.255 192.168.56.1 METRIC 266

но VPN-клиент остается бдительным: он перехватывает попытки изменить таблицу маршрутизации. Мой клиент кажется разрешите вторую запись, но не первую. (И это может проложить как на какой-то периодической основе; я не проверял это.)

если ваша конкретная VPN и его конфигурация помощника позволяют включить раздельное туннелирование, обычно оно включается следующим образом:

Cisco VPN client: allow access to LAN resources

при отключении от VPN корректно работающие VPN-клиенты будут восстанавливать таблицы маршрутизации, которые были на месте до соединительный. Кажется, что мой VPN-клиент делает это надежно, что выгодно, поскольку это означает, что гостевую виртуальную машину не нужно перезапускать при подключении к VPN или отключении от нее. В таких случаях дополнительный адаптер виртуальной машины сбрасывается, но он повторно получает свой IP-адрес автоматически и прозрачно, восстанавливая связь между узлом и гостем почти сразу. Еще лучше, монтирования NFS между хостом и гостем (я использую монтирования CIFS) остаются подключенными через VPN connect / disconnect оперативный.

в маловероятном случае, если ваш VPN позволяет раздельное туннелирование, это может быть простой вопрос включения его, и в этом случае, я хотел бы услышать от вас, является ли или нет "все просто работает".

46
отвечен Ben Johnson 2023-04-01 04:22

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх