Выбираем тип подключения сети VirtualBox.

02.05.2019 0 Автор GodKnowses

Тип подключения сети VirtualBox: что они означают, и чем отличаются друг от друга?

VirtualBox (она же VB) в своих сетевых настройках очень гибка. Причём некоторые изменения в настройках виртуальной машины можно проводить на лету. Однако перед созданием виртуальной системы лучше сразу разобраться что означают настройки в разделе Тип подключения сети. Какой выбрать в зависимости от поставленной цели, и что ожидает пользователя с такими настройками? Virtual Box при этом, напомню, позволяет менять тип подключения сети, что называется, “на лету” – т.е. прямо во время работы гостевой машины.

Для быстрого ознакомления можно представить и держать в голове вот такую простую табличку – какая какую видит, и какое соединение будет недоступно:

Тип подключения сетевого адаптера

Продолжая поблочное отображение типа сетей, можно представить предлагаемые схемы в нижеследующих вариантах. Выбор каждой из схем ложится на пользователя, но практическое применение и настройка (в т.ч. DHCP) будут рассматриваться в контексте отдельных примеров/статей.

Тип подключения сети VirtualBox: что мы имеем?

NAT

NAT

VirtualBox делает возможным настройку отдельного NAT-роутера в сетевом интерфейсе внутри гостевой машины. Каждая из гостевых ОС получает собственный виртуальный роутер и с остальными гостевыми машинами взаимодействовать не может. Запросы по протоколу DHCP отзываются с IP гостевой машины и адреса NAT роутера в виде межсетевого шлюза. Сам сервер DHCP может быть настроен через интерфейс командной строки (без графического интерфейса). Сам роутер NAT использует интерфейс сети хозяйской ОС, никаких особых сетевых интерфейсов создавать не нужно. “Снаружи” или из внешнего интернета/сети виден только интерфейс Хозяйки. Принцип работы сводится к следующему:

  • роутер NAT открывает определённый порт в интерфейсе хозяйской ОС
  • внутренний адрес переводится в адрес Хозяйки: запрос на требуемый IP адрес считается совершённым;
  • после запроса ответ пробрасывается к гостевой ОС; при этом таблица проброса от внешнего порта к внутреннему IP адресу хранится в памяти роутера. При этом возможен ручной проброс на какой-то конкретный порт гостевой ОС.

Такой тип подключения сети VirtualBox просто использовать, настройки минимальны. При этом настройки по большей части изолированы: каждая из гостевых ОС имеет свой собственный “роутер”, роль которого играет сетевой движок VB. Гостевая ОС сразу получает выход в интернет. Возможно присвоение фиксированного IP адреса. Но некоторые характеристики соединения могут нам не подойти. Так, гостевые ОС между собой не контактируют, у них один и тот же адрес. Виртуальный роутер поддаётся настройкам из консоли, что требует определённых навыков. А доступ к гостевой машине из хозяйской требует проброса портов и иногда редакции файла hosts, если требуется указать особые веб-интерфейсы.

Сеть NAT

сеть NAT

Этот тип подключения сети VirtualBox означает, что VB может организовать виртуальный изолированный NAT роутер на сетевом интерфейсе внутри гостевой машины. Каждая гостевая ОС при этом получает собственный виртуальный роутер, но с другими гостевыми контактировать не сможет. DHCP-запросы на интерфейс получают ответ от IP адреса гостевой машины и адреса роутера NAT в качестве шлюза. Сервер DHCP также настраивается без GUI. NAT роутер использует при этом сетевой интерфейс хозяйской ОС.

Никаких особых сетевых интерфейсов создавать здесь нет необходимости; при этом роутер NAT открывает любые порты в интерфейсе хозяйской системы. Далее внутренний адрес переводится в IP адрес хоста. Таким образом, запрос на требуемый IP завершается. Возможна картография портов с целью разрешить попасть на нужный порт гостевой машины через некий порт “хозяйки”. Т.е для доступа к гостевой ОС необходим проброс портов с хозяйской. При этом может потребоваться редактирование hosts файла “хозяйки”.

Отсюда, к особенностям NAT стоит отнести простоту настройки с выходом в интернет, изолированность благодаря “отдельному” роутеру. NAT позволяет закреплять за каждой гостевой ОС фиксированный IP-адрес. При этом “гости” друг друга не видят, а сервер DHCP также настраивается только из командной строки.

Сетевой мост

сетевой мост

В этом случае гостевая машина будет использовать интерфейс хозяйской. В интерфейсе хоста появляется сетевой фильтр в виде специального драйвера, который позволяет VirtualBox отправлять данные в сторону “гостевой”. Такой режим работы позволяет сетевому адаптеру использовать множественные mac-адреса. Однако большинство беспроводных модулей такой неразборчивый (смешанный) режим работы адаптера не поддерживает физически. И тогда VB подменяет mac-адрес пакетов, которые адаптеру точно видны. При этом используется внешний сервер DHCP, виртуальный DHCP здесь не требуется. Гостевая машина в таком режиме доступна из сети, к которой присоединилась хозяйская ОС: у них единый доступ. Хозяйка контактирует с гостевыми машинами по IP, и те видят хост на такой же манер. Гостевые ОС также могут переговариваться друг с другом. Но этот же факт делает невозможным создание изолированных внутри хозяйки сетей (на основе гостевых машин). Более того, такой тип сетевого соединения капризен в работе, а о безопасном сёрфинге по интернету говорить не приходится.

Внутренняя сеть

внутренняя сеть

В VirtualBox возможно настроить сетевой интерфейс внутри гостевой машины. Так как куча гостевых машин делят между собой этот единственный интерфейс, они соединяются на манер коммутатора (свитча) и способны между собой общаться. Характеристиками такой сети являются быстрая настройка, возможность гостевых систем общаться между собой. При этом доступа из хозяйской ни в одну гостевую не будет. Равно как и никакая из гостевых машин не увидит хозяйскую ОС. Кроме того, гостевая система в интернет не выйдет. Сервер DHCP внутренней сети опять же нельзя настроить с помощью графического интерфейса – только командами из консоли.

внутренняя сеть virtualbox

Виртуальный адаптер хоста

виртуальный адаптер хоста

Виртуальный адаптер хоста – это такой тип сетевого соединения VirtualBox, когда VB создаёт хозяйский интерфейс, который может быть разделён между гостевыми машинами. Гости могут между собой разговаривать, при этом можно использовать отдельные гостевые сети. Фиксация IP адреса для каждой гостевой машины также возможна. Запросы по протоколу DHCP получают ответы с IP адреса гостевой ОС виртуального адаптера. Здесь DHCP-сервер можно настроить, используя интерфейс VirtualBox GUI. Однако для доступа из хозяйской ОС в гостевую необходим проброс портов, а также возможно придётся прибегнуть к редактированию hosts-файла хозяйки. И выхода в интернет из гостевой ОС также не будет.

Универсальный драйвер

Этот тип подключения сети VirtualBox стоит особняком, “Window”-возы им пользуются отчасти. Смысл этого типа сетевого подключения – совместная работа разных гостевых машин на разных хозяйских ОС. Единственный вариант виртуальной сети, где без дополнительных свитчей и кабелей часто не обойтись. В составе Oracle VB эта сетевая настройка идёт лишь опционально. Для указанного режима существуют две настройки, которые имеют разный акцент:

  • UDP-туннель
  • Децентрализованная виртуальная сеть Ethernet (она же VDE-сеть)

Туннеллирование позволяет создавать виртуальную сеть между гостевыми ОС, которые находятся на различных хозяйских машинах. Технически это реализуется в виде выделения сетевых блоков данных (пересылаемых или получаемых гостевой машиной) в самостоятельный, выделенный модуль UDP-пакетов. Такие пакеты способны “гулять” по любой сети, на которую настроена хозяйская машина. Режим UDP туннеля имеет такие характеристики как

  • адресный UDP-порт (порт слушается “хозяйкой” и принимает данные со всех адресов, пересылая на сетевую карту гостевой машины)
  • IP адрес назначения хозяйской ОС
  • принимающий UDP порт

При этом гостевые ОС, сидящих на разных “хозяйках”, обмениваются IP адресами в прямом смысле этого слова. Если же хост один, это происходит с номерами UDP-портов.

VDE-сеть доступна только на ОС Linux и FreeBSD. Требует подключения специальных библиотек на хозяйской машине, по умолчанию VirtualBox идёт без них. Суть схемы – работа гостевых ОС, сидящих на разных хостах в защищённом режиме благодаря эмуляции интернета, дополнительной виртуализации VLAN, специальных связующих сетевых протоколов. В этой части настроек я, честно говоря, уже плаваю (на практике его использовать никогда не приходилось), и подробнее, чем эта Wiki-справка, мануала не обнаружил.

Успехов.