Энциклопедия мобильной связи

Сетевой мост виртуальная машина. Wmware workstation настройка сети в виртуальных машинах

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

{mosloadposition debug}

В качестве примера мы взяли VirtualBox версии 2.1.0 со стабильно работающей сетью. Наш VirtualBox установлен на операционной системе Windows Vista, а на созданную в VirtualBox виртуальную машину мы инсталлировали Windows XP SP2.
Компьютер с Windows Vista подключен к интернету через шлюз, имеющий адрес 192.168.0.100. Данный шлюз раздает интернет всем компьютерам локальной сети по wi-fi. Настройки шлюза и wi-fi к теме не относятся, поэтому на них мы не будем останавливаться, а перейдем сразу к делу.
Прежде всего, проверим на нашем реальном компьютере свойства реального сетевого подключения, через которое он взаимодействует с интернетом. Так, в Windows Vista откроем «Пуск» - «Панель управления» - «Центр управления сетями и общим доступом» - «Управление сетевыми подключениями».
Щелкнем правой кнопкой мыши по имени сетевого соединения, через которое ПК подключен к интернету или локальной сети, и выберем Свойства. На вкладке «Сеть» должен быть включен пункт «VirtualBox Host Interface Networking Driver». Если галочка не стоит, её нужно поставить и нажать «ОК».

Теперь займемся брандмауэрами - мы должны разрешить им выпускать VirtualBox в сеть. Во встроенном брандмауэре Windows («Пуск» - «Панель управления» - «Брандмауэр Windows») VirtualBox должен быть добавлен в список исключений. Если на компьютере установлен другой фаервол, например, Agnitum Outpost, включаем его в режим обучения, т.к. позже нам придется разрешить соединение VirtualBox с сетью и создать соответствующие правила. Лучше будет, если брандмауэр спросит нас об этом, а не молча заблокирует все попытки VirtualBox выйти в сеть.
На этом оставляем в покое реальную операционную систему и обращаем свой взор на VirtualBox. Нам нужно добавить в виртуальную машину сетевой адаптер и настроить его: выделив виртуальную машину в списке VirtualBox, нажимаем кнопку «Свойства».

В списке слева выбираем раздел «Сеть». На вкладке «Адаптер 1» установим галочку напротив «Включить сетевой адаптер». Вы можете выбрать тип адаптера, как на скриншоте, но можете и поэкспериментировать, выбирая из списка разные адаптеры.
В списке «Присоединен к: » выбираем «Хост-интерфейс». Это означает, что сетевая карта виртуальной операционной системы будет взаимодействовать с интернетом и локальной сетью напрямую.
Сразу хотим сказать, что можно выбрать и другие настройки, но методом научного эксперимента нам удалось заставить работать интернет только таким образом. А всё потому, что настройки виртуальной сети тесным образом связаны с конфигурацией вашего интернет-подключения и вашей реальной компьютерной сети. В каждом конкретном случае придется поэкспериментировать. Но чаше всего, применив указанные на скриншоте опции, нам удавалось получить работающий в VirtualBox интернет.
Не забываем поставить галочку напротив «Кабель подключен», а в списке хост-интерфейсов ниже выделить ту сетевую карту нашего реального компьютера, через которую он подключен к интернету или локальной сети.
На этом добавление сетевого адаптера в виртуальную машину завершено. Нажимаем «ОК» для применения настроек.

Запускаем созданную в VirtualBox операционную систему (у нас это Windows XP SP2). Теперь нам предстоит настроить ранее добавленный сетевой адаптер. В Windows XP данные настройки доступны через «Пуск» - «Настройка» - «Панель управления» - «Сетевые подключения».
В списке сетевых подключений находим «Подключение по локальной сети», щелкаем по нему правой кнопкой мыши и выбираем «Свойства».

На вкладке «Общие» в списке используемых подключением компонентов выделяем «Протокол Интернета (TCP/IP)» и нажимаем кнопочку «Свойства».

Настройки, указанные ниже, полностью зависят от конфигурации вашей сети. Как мы уже говорили, у нас имеется шлюз с адресом 192.168.0.100, который раздает интернет всей локальной сети. Поэтому, наш виртуальный компьютер должен вписаться в конфигурацию реальной сети и иметь адрес 192.168.0.Х, где Х - любая цифра от 1 до 254, не встречающаяся ни в каком другом адресе компьютеров сети. Поскольку у нас уже есть компьютер с адресом 192.168.0.100, то мы можем выбрать любую цифру от 1 до 254, кроме 100.
В нашем примере выбор пал на адрес 192.168.0.77. Маска подсети вводится автоматически, достаточно щелкнуть в данном поле мышкой. В поле «Основной шлюз» вводим адрес компьютера, который раздает интернет или шлюза провайдера. В поле «Предпочитаемый DNS-сервер» вводим адрес соответствующего сервера. Он может совпадать с адресом шлюза или нет. Если в вашей сети есть другой (альтернативный, вторичный) DNS-сервер, введите его адрес в поле ниже.

На этом настройка сетевого подключения в виртуальной операционной системе завершена. Нажимаем «ОК».
Теперь необходимо проверить соединение со шлюзом. Открываем «Пуск» - «Выполнить» и вводим в поле команду «cmd» (без кавычек и на английском).

Откроется командный интерпретатор Windows. Набираем «ping 192.168.0.100» (без кавычек), где 192.168.0.100 - это адрес шлюза или другого компьютера в сети, с которым вы хотите проверить связь из виртуальной машины. Если вы увидите, что ответ от шлюза получен, значит, интернет работает. Теперь вы можете наслаждаться серфингом по всемирной паутине прямо из VirtualBox.

Если ответа от шлюза или любого другого компьютера сети нет, стоит изменить настройки на более подходящие для вашей сети. Здесь всё в ваших руках.


Автор: Robin Catling
Дата публикации: май 2012 г.
Перевод: Семененко В.
Дата перевода: 5 октября 2012 г.

Все началось с того, что однажды мне потребовалось запустить экземпляр CMS Wordpress в песочнице. Начало было простым. Достаточно было создать виртуальный сервер Ubuntu 11.10 в качестве гостевой операционной системы на VirtualBox. Но затем я обнаружил, что я знаю гораздо меньше о сетях и их настройке, чем я думал до этого. В частности, о пакетах, коммутаторах и маршрутизаторах. Еще меньше я знал о настройке сетей в VirtualBox, где все аппаратное обеспечение представлено в программном виде. Несколько попыток и неудачных настроек сети, достигнутая цель - и как результат, представляю вам эту статью. Целью ее является сберечь ваши нервы на основе моих собственных проб и ошибок.

Сетевые настройки VirtualBox

Для начала установите любую версию виртуальной машины VirtualBox, начиная с 3.0. И вы найдете в ней примерно одинаковые возможности по сравнению с теми, что описываются в данной статье.

После установки программы перейдите в меню "Настройки - Сеть". Вид открываемой вкладки соответствует настройкам по умолчанию. Любая из виртуальных машин может быть настроена на использование четырех сетевых адаптеров - в зависимости от того, какой вам необходим в конкретном случае. Но чаще всего на практике требуется только один из них. Как правило, при установке виртуальной машины, по умолчанию создается простой сетевой адаптер. Этого достаточно для выхода в Интернет.

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

Для моего web-сервера с запущенным на нем CMS Wordpress дела обстоят несколько сложнее, поэтому идем дальше... Вкладка "Тип адаптера" отвечает за настройку виртуального аппаратного обеспечения. VirtualBox прекрасно справляется с ролью связующего звена между программной сетевой платой и тем физическим интерфейсом, который установлен на реальной машине (хосте). Откройте ссылку "Дополнительно" и вам будут доступны расширенные возможности сетевого адаптера. В этой статье я детально опишу все настройки в порядке их следования, начиная с установки типа адаптера.

Тип адаптера (Adapter Type)

Виртуальная машина VirtualBox имеет встроенную программную эмуляцию большинства наиболее распространенных типов сетевых карт, под которые созданы драйвера и протоколы. Карта PCnet-FAST III является выбором по умолчанию, однако в своей практике я часто выбираю Intel PRO/1000MT. Я поступаю так, если мне необходима наилучшая совместимость с "железом" от Intel, которое установлено на моем компьютере. Если у вас возникнут проблемы в настройке сетевого соединения, можно попробовать изменить тип адаптера, выбрав другой. Для наиболее древнего оборудования подойдет сетевая карта PCnet-FAST II.

Режим (Mode)

Довольно странно звучащий "Неразборчивый режим" (Promiscuous Mode) обычно применяется для работы VM в качестве виртуального маршрутизатора в локальных сетях; как сетевой мост или же хост. В этом режиме порт виртуальной машины способен принимать любые пакеты, отправляемые для других операционных систем; и даже для хоста. То есть, принимаются сетевые пакеты, предназначенные не только для этого адаптера, но и для других сетевых устройств. В 99% случаев обычным пользователям "Неразборчивый режим" не нужен. Он используется сетевыми администраторами для диагностики проблем, возникающих в сети.

MAC адрес (MAC Address)

MAC-адрес (MAC - аббревиатура от Media Access Control) является уникальным "именем" устройства в сети, однозначно идентифицирующим и отличающим его от остальных адаптеров и узлов. Этот адрес прописывается для каждого сетевого устройства на физическом уровне в памяти самого интерфейса. При создании виртуального сетевого адаптера VirtualBox автоматически генерирует для него MAC-адрес.
Если необходимо изменить уже имеющийся MAC-адрес, то для этого служит небольшая кнопка справа, которая генерирует новое значение. В случае клонирования существующей виртуальной машины, для нее необходимо создать свой собственный уникальный MAC-адрес, который будет отличаться от адреса оригинальной машины.

Галочка напротив надписи "Кабель подключен" выполняет ту же роль, что и подключение или отключение физического кабеля в реальности. Эта настройка отвечает за подключение виртуального сетевого адаптера к сети. Не стоит путать ее с другой более важной настройкой "Включить сетевой адаптер", которая включает или выключает сам адаптер на виртуальной машине.

Кнопка "Проброс портов" открывает диалоговое окно, в котором производится настройка правил поведения трафика на конкретном адаптере; каким образом будет перемещаться трафик определенного типа между хостом и гостевой виртуальной машиной. Эти правила применяются к сетевым моделям, которые будут рассмотрены немного позже. Сами сетевые модели определяются на вкладке "Тип подключения". Эта настройка является наиболее сложным моментом в установке соединений в VirtualBox. Она доставила мне наибольшие проблемы в экспериментах.

"Подводные камни"

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

Типы подключения к сети

В VirtualBox имеются четыре готовые модели для подключения к сети:

  • Трансляция сетевых адресов (NAT), которая является настройкой по умолчанию
  • Сетевой мост (Bridged)
  • Виртуальный адаптер хоста (Host Only)

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

Трансляция сетевых адресов (NAT)

Протокол NAT позволяет гостевой операционной системе выходить в Интернет, используя при этом частный IP, который не доступен со стороны внешней сети или же для всех машин локальной физической сети. Такая сетевая настройка позволяет посещать web-страницы, скачивать файлы, просматривать электронную почту. И все это, используя гостевую операционную систему. Однако извне невозможно напрямую соединиться с такой системой, если она использует NAT.

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

Например, в вашей домашней локальной сети хост и другие физические сетевые устройства имеют адреса в диапазоне, начинающемся с 192.168.х.х. В VirtualBox адаптеры, работающие по протоколу NAT, имеют IP-адреса в диапазоне, начинающемся с 10.0.2.1 и заканчивающемся 10.0.2.24. Такой диапазон называется под-сетью. Как правило, этот диапазон не используется для присвоения адресов устройствам в основной сети, поэтому такая система недоступна извне, со стороны хоста. Гостевая ОС может выполнять обновление программного обеспечения и web-серфинг, но остается невидимой для остальных "участников".

В руководстве VirtualBox этот момент описан более подробно:

"В режиме NAT гостевому сетевому интерфейсу присваивается по умолчанию IPv4 адрес из диапазона 10.0.х.0/24, где х обозначает конкретный адрес NAT-интерфейса, определяемый по формуле +2. Таким образом, х будет равен 2, если имеется только один активный NAT-интерфейс. В этом случае, гостевая операционная система получает IP-адрес 10.0.2.15, сетевому шлюзу назначается адрес 10.0.2.2, серверу имен (DNS) назначается адрес 10.0.2.3." (Oracle Corporation, 2012, Глава 9).

Протокол NAT полезен в том случае, когда нет разницы в том, какие IP-адреса будут использовать гостевые ОС на виртуальной машине, поскольку все они будут уникальными. Однако, если потребуется настроить перенаправление сетевого трафика, или же расширить функциональность гостевой ОС, развернув на ней web-сервер (к примеру), то необходимы дополнительные настройки. В режиме NAT также недоступны такие возможности, как предоставление общего доступа к папкам и файлам.

Сетевой мост (Bridged)

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

Адаптер в режиме "Сетевой мост" подключается, минуя хост, к устройству, которое распределяет IP-адреса внутри локальной сети для всех физических сетевых карт. VirtualBox соединяется с одной из установленных сетевых карт и передает пакеты через нее напрямую; получается работа моста, по которому передаются данные. Как правило, адаптер в модели "Сетевой мост" получает стандартный адрес из диапазона 192.168.х.х от роутера. Поэтому виртуальная машина в сети выглядит так, как будто это обычное физическое устройство, неотличимое от остальных.

На хосте могут быть активными одновременно несколько сетевых устройств; например, на моем ноутбуке имеется проводное подключение (называемое eth0) и беспроводное подключение (называемое wlan0). Поле "Имя" позволяет выбрать, какой из сетевых интерфейсов вы бы хотели использовать в качестве моста на VirtualBox.

В моем случае, я использую беспроводной адаптер wlan0 , так как он подключен к маршрутизатору. В то время как проводной интерфейс eth0 не имеет даже кабеля.

Поэтому моему хосту назначен роутером IP-адрес 192.168.0.2. Виртуальной машине в режиме "Сетевой мост" присвоен адрес 192.168.2.6. При этом не имеет значения тот факт, что VirtualBox передает и получает трафик как бы "сквозь" хост, минуя его. В результате получается, что виртуальная машина становится просто еще одним компьютером в локальной сети. Если я пересчитаю свой компьютер и три виртуальные машины (VM), работающие в режиме "Сетевой мост", то у меня получиться четыре компьютера в физической локальной сети.

Дальше - больше...

Протокол NAT полезен, потому что он защищает гостевые операционные системы со стороны Интернет. Но для того, чтобы получить доступ к ним извне (а на некоторых ОС у меня имеются установленные web-сервера), потребуется дополнительная настройка для перенаправления трафика. Тип подключения "Сетевой мост" позволяет получить доступ к ним, но системы в этом случае становятся незащищенными.

Если ваше сетевое устройство доступа (это может быть маршрутизатор, сетевой коммутатор или же настройки, предоставленные Интернет-провайдером) позволяет предоставлять только один IP-адрес для сетевого интерфейса, возможно, вам не удастся настроить "Сетевой мост".

Виртуальный адаптер хоста (Host-only)

При подключении типа "Виртуальный адаптер хоста" гостевые ОС могут взаимодействовать между собой, а также с хостом. Но все это только внутри самой виртуальной машины VirtualBox. В этом режиме адаптер хоста использует свое собственное, специально для этого предназначенное устройство, которое называется vboxnet0 . Также им создается под-сеть и назначаются IP-адреса сетевым картам гостевых операционных систем. Гостевые ОС не могут взаимодействовать с устройствами, находящимися во внешней сети, так как они не подключены к ней через физический интерфейс. Режим "Виртуальный адаптер хоста" предоставляет ограниченный набор служб, полезных для создания частных сетей под VirtualBox для ее гостевых ОС.

В отличие от других продуктов виртуализации, адаптер, работающий под протоколом NAT в VirtualBox, не может выступать в роли связующего моста между сетевым устройством по умолчанию на хостах. Поэтому невозможен прямой доступ извне к машинам, "спрятанным" за NAT - ни к программам, работающим на них; ни к данным, находящимся на самих хостах. Давайте рассмотрим следующий пример.

Как правило, хост имеет свой собственный сетевой адрес, который используется для выхода в Интернет. Обычно это 192.168.0.101. В режиме "Виртуальный адаптер хоста" машина-хост также выступает в роли роутера VirtualBox и обладает IP-адресом по умолчанию 192.168.56.1. Создается внутренняя локальная сеть, обслуживающая все гостевые операционные системы, настроенные для режима "Виртуальный адаптер хоста" и видимые для остальной части физической сети. Адаптер vboxnet0 использует адреса из диапазона, начинающегося с 192.168.56.101. Но при желании можно изменить адрес по умолчанию.

Подобно адаптеру в режиме "Сетевой мост", в режиме "Виртуальный адаптер хоста" используются разные диапазоны адресов. Можно легко настроить гостевые системы для получения IP-адресов, используя для этого встроенный DHCP-сервер виртуальной машины VirtualBox.

В дополнение нужно сказать, что в режиме "Виртуальный адаптер хоста" созданная им сеть не имеет внешнего шлюза для выхода в Интернет, как для хоста, так и для гостевых операционных систем. Он работает только как обычный сетевой коммутатор, соединяя между собой хост и гостевые системы. Поэтому адаптер в режиме "Виртуальный адаптер хоста" не предоставляет гостевым машинам выход в Интернет; vboxnet0 по умолчанию не имеет шлюза. Дополнительные возможности для этого адаптера значительно упрощают настройку сети между хостом и гостевыми ОС, однако все же отсутствует внешний доступ или перенаправление портов. Поэтому может потребоваться второй адаптер в режиме "Виртуальный адаптер хоста" или "Сетевой мост", который подключается к гостевой операционной системе для получения полного доступа к ней.

Внутренняя сеть (Internal Network)

Если на практике вам потребуется настроить взаимосвязь между несколькими гостевыми операционными системами, работающими на одном хосте и могущими сообщаться только между собой, тогда можно воспользоваться режимом "Внутренняя сеть". Конечно, для этой цели можно использовать режим "Сетевой мост", но режим "Внутренняя сеть" обладает большей безопасностью. В режиме "Сетевой мост" все пакеты отправляются и получаются через адаптер физической сети, установленный на машине-хосте. В этом случае весь трафик может быть перехвачен (например, путем установки сниффера пакетов на машине-хосте).

Внутренняя сеть, согласно руководству VirtualBox, является "программной сетью, которая может быть видима для выборочно установленных виртуальных машин, но не для приложений, работающих на хосте или на удаленных машинах, расположенных извне". Такая сеть представляет из себя набор из хоста и нескольких виртуальных машин. Но ни одно из вышеперечисленных устройств не имеет выхода через физический сетевой адаптер - он полностью программный, используемый VirtualBox в качестве сетевого маршрутизатора. В целом получается частная локальная сеть только для гостевых операционных систем без доступа в Интернет, что делает ее максимально безопасной. Возможное применение такой сети - сверхсекретный сервер с клиентами, предназначенный для разработки; тестирование систем на проникновение или какие-либо другие цели, преследующие создание внутренней сети для команд-разработчиков или организаций. Это идеальный способ для блокировки окружения от неавторизованной установки программного обеспечения, скачивания или закачивания файлов, посещения сервисов типа Facebook в рабочее время.

Итак, мы рассмотрели различные типы сетевых соединений. Каждый из них имеет свои собственные настройки и предназначен для определенных целей. Вернемся к тому моменту, откуда все началось - создание виртуального сервера для развертывания на нем CMS Wordpress и его тестирования.

Доступ к гостевой операционной системе

Во-первых, мне нужен доступ в Интернет из гостевой системы для установки обновлений, скачивания пакетов и других подобных задач. Мне также необходим доступ к Сети с машины-хоста. Но мне не нужно, чтобы сервер был доступен из внешней сети.

Выбираю необходимую виртуальную машину из менеджера VirtualBox и затем перехожу в меню "Настройки - Сеть".

Оставляю выбранным по умолчанию сетевой адаптер в режиме NAT. Это позволит гостевым системам выходить в Интернет через настроенное соединение хоста, на котором установлены эти машины. Гостевые системы не видны извне в локальной сети; я также не имею доступа к любой из гостевых систем со стороны хоста; аналогично, гостевые системы не могут взаимодействовать между собой.

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

Самый простой способ - это использовать адаптер в режиме "Виртуальный адаптер хоста", предоставляемый VirtualBox по умолчанию. Он имеет имя vboxnet0 . Можно добавить столько адаптеров подобного типа, сколько нужно (если есть необходимость в настройке нескольких отдельных сетей типа "Виртуальный адаптер хоста"). Открыв основное окно менеджера гостевых операционных систем VirtualBox, и выбрав в меню "Настройки - Сеть", вы можете конфигурировать существующий адаптер vboxnet0 или создать еще несколько подобных (vboxnet1 , vboxnet2).

Щелкните мышью на кнопке "Редактировать" - иконка с изображением отвертки (третья по счету сверху вниз). Щелчок на этой иконке откроет настройки по умолчанию. В них адрес 192.168.56.1 является тем адресом, по которому гостевые системы получают доступ к хосту. Я оставил его "как есть", не меняя.

По умолчанию, адаптер vboxnet0 динамически получает IP адрес во время сессии подключения от DHCP-сервера. Для моего виртуального web-сервера Wordpress необходимо, чтобы он имел статический IP-адрес. Поэтому на вкладке "DHCP сервер" я убрал галочку с надписи "Включить сервер". Таким образом, DHCP-сервер у меня отключен.

Добавление виртуального адаптера хоста

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

Поэтому в настройках гостевой системы я открываю вкладку "Адаптер 2" и устанавливаю значение "Тип подключения" в положение "Виртуальный адаптер хоста". По умолчанию, вновь созданному адаптеру присваивается имя vboxnet0 . "Неразборчивый режим" для меня не имеет значения, поэтому оставляю его в значении "Запретить". Надпись "Кабель подключен" я также оставляю активной.

Настройка гостевой системы

Мне необходимо, чтобы гостевой виртуальный сервер имел статический IP-адрес в сети, работающей в режиме "Виртуальный адаптер хоста". Иначе адрес сервера будет меняться от сессии до сессии, каждый раз при подключении. Я буду вынужден снова и снова решать задачу настройки, чтобы соединиться с хостом. Поэтому захожу в гостевую систему, открываю в ней терминал и ввожу в нем две следующие команды:

Ifconfig eth1 192.168.56.101 netmask 255.255.255.0 up

Эти действия устанавливают указанный IP-адрес для адаптера, расположенного в гостевой системе и запускают этот сетевой интерфейс. В этом адресе используется сетевой префикс 192 для домашних сетей, затем следует.168 в качестве начального адреса хоста ID, .56 для установки диапазона адресов под-сети; и наконец, финальный идентификатор.1 (хост) для сети. Адаптер в режиме NAT имеет имя eth0 , поэтому логично предположить, что адаптер в режиме "Виртуальный адаптер хоста" имеет имя eth1 . Я могу использовать этот IP-адрес для тестирования гостевой системы из хоста через протокол SSH или браузер.

Однако, эти настройки являются временными. Если я произведу перезагрузку системы, все они бесследно пропадут. Для того, чтобы установить их постоянными, нужно добавить (используя учетную запись root) в файл /etc/network/interfaces следующие строки:

# The host-only network interface auto eth1 iface eth1 inet static address 192.168.56.101 netmask 255.255.255.0 network 192.168.56.0 broadcast 192.168.56.255

Теперь, при перезагрузке, этот сетевой интерфейс запустится автоматически. Для проверки - запустился ли он, я использую команду ifconfig , которую ввожу в терминале гостевой операционной системы.

Присвоение имен

Так как я не слишком "дружу" с числами и IP-адресами, то для себя я всегда использую имена для гостевых систем вместо присвоения им IP-адресов. Для этого я редактирую файл /etc/hosts на машине-хосте и добавляю туда ссылки. Таким образом, я могу просматривать запущенные гостевые системы по их именам.

В файл /etc/hosts я добавляю строку:

192.168.56.101 ocelotsvr

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

Альтернативный маршрут

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

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

Используя панель настроек "Сетевой адаптер" в гостевой операционной системе, можно настроить проброс портов в виртуальной машине VirtualBox. Для этого переходим к настройкам адаптера NAT (кнопка внизу окна) для настройки перенаправления портов. При нажатии на нее откроется диалоговое окно, в котором настраиваются правила проброса для данного сетевого адаптера и гостевой системы.

Мне необходимо настроить два правила; одно для получения доступа к web-серверу Apache на гостевой системе, второе - для регулирования всего остального TCP-трафика (в большинстве это http-запросы).

Не мудрствуя лукаво, я назвал эти правила Apache и TCP, соответственно; оба используют TCP-протокол. Если говорить о привязке номеров портов, то порт 8888 на хосте перенаправляет трафик на гостевую систему для сервера Apache; порт 2222 на хосте перенаправляет трафик на порт 22, расположенный на гостевой операционной системе; такая настройка предоставляет мне доступ к гостевой системе для управления ее службами. Любой другой трафик будет отклонен виртуальной машиной, как не подпадающий под правила.

Это означает, что любые другие гостевые системы, которые я запущу на виртуальной машине, не смогут соединиться с виртуальным сервером, так как просто не существует сетевого маршрута под NAT.

23.05.2017 Ромчик

Доброго времени суток. В одной из статей мы c вами установили Ubuntu в качестве гостевой системы и предоставили ей доступ в интернет. Проблем у нас не возникло. Но мне бы хотелось из хоста иметь доступ к гостевой системе Ubuntu, при этом чтобы наша Ubuntu оставалась за NAT. Есть несколько вариантов реализации данной задачи. И я рассмотрю один – создание еще одного сетевого интерфейса. Второй вариант, проброс портов я не буду рассматривать, т.к. он мне не подошел. Приступим.

Нам необходимо добавить еще один виртуальный адаптер (один уже есть и используется для выхода в интернет гостевых ОС)

Для этого открываем настройки VirtualBox

Также можно настроить и DHCP сервер.

Жмем «Ок». Теперь переходим к настройке виртуальной машины.

Настройка сети в виртуальной машине.

Открываем настройки нашей виртуальной машины.

Выбираем «Сеть» и переходим во вкладку «Адаптер 2»

Включаем сетевой адаптер. Затем выбираем тип подключения «Виртуальный адаптер» и из списка выбираем имя. Жмем «Ок»

На этом настройка виртуальной машины завершена. Запускаем машину.

Настройка гостевой Ubuntu

Открываем терминал и вводим команду ifconfig.

И так, интерфейс enp0s3 служит для выхода в интернет, а enp0s8 для связи гостевой системы с хостом. Ок, давайте пропишем enp0s8 статический IP. Например, 10.0.1.10.

Открываем sudo gedit /etc/network/interfaces

И добавляем:

Auto enp0s8 iface enp0s8 inet static address 10.0.1.10 netmask 255.255.255.0

Сохраняем и перезапускаем сеть, командой:

Sudo /etc/init.d/networking restart

Ждем и проверяем, запустим пинг на 8.8.8.8

Отлично все работает. Теперь проверим доступ с хоста к гостевой системе. Запускаем пинг на 10.0.1.10

Вот и все.

Заключение.

Мы с вами настроили доступ к гостевой системе из хоста, при этом есть доступ из гостевой системы в интернет (через NAT)

Чтобы не пропустить выхода новых статей подписываемя.

Оригинал: VirtualBox Networking
Перевод на Linux по-русски
Автор: Robin Catling
Дата публикации: май 2012 г.
Перевод: Семененко В.
Дата перевода: 5 октября 2012 г.
Все началось с того, что однажды мне потребовалось запустить экземпляр CMS Wordpress в песочнице. Начало было простым. Достаточно было создать виртуальный сервер Ubuntu 11.10 в качестве гостевой операционной системы на VirtualBox. Но затем я обнаружил, что я знаю гораздо меньше о сетях и их настройке, чем я думал до этого. В частности, о пакетах, коммутаторах и маршрутизаторах. Еще меньше я знал о настройке сетей в VirtualBox, где все аппаратное обеспечение представлено в программном виде. Несколько попыток и неудачных настроек сети, достигнутая цель - и как результат, представляю вам эту статью. Целью ее является сберечь ваши нервы на основе моих собственных проб и ошибок.

Сетевые настройки VirtualBox

Для начала установите любую версию виртуальной машины VirtualBox, начиная с 3.0. И вы найдете в ней примерно одинаковые возможности по сравнению с теми, что описываются в данной статье.
После установки программы перейдите в меню "Настройки - Сеть". Вид открываемой вкладки соответствует настройкам по умолчанию. Любая из виртуальных машин может быть настроена на использование четырех сетевых адаптеров - в зависимости от того, какой вам необходим в конкретном случае. Но чаще всего на практике требуется только один из них. Как правило, при установке виртуальной машины, по умолчанию создается простой сетевой адаптер. Этого достаточно для выхода в Интернет.
В зависимости от потребностей, может понадобиться создание нескольких сетевых интерфейсов разных типов. Или же нескольких устройств одного типа, но с разными настройками. Это может потребоваться для использования на виртуальной машине как физических, так и виртуальных сетевых адаптеров. Все зависит от того, какие из них подключены.

Для моего web-сервера с запущенным на нем CMS Wordpress дела обстоят несколько сложнее, поэтому идем дальше... Вкладка "Тип адаптера" отвечает за настройку виртуального аппаратного обеспечения. VirtualBox прекрасно справляется с ролью связующего звена между программной сетевой платой и тем физическим интерфейсом, который установлен на реальной машине (хосте). Откройте ссылку "Дополнительно" и вам будут доступны расширенные возможности сетевого адаптера. В этой статье я детально опишу все настройки в порядке их следования, начиная с установки типа адаптера.

Тип адаптера (Adapter Type)

Виртуальная машина VirtualBox имеет встроенную программную эмуляцию большинства наиболее распространенных типов сетевых карт, под которые созданы драйвера и протоколы. Карта PCnet-FAST III является выбором по умолчанию, однако в своей практике я часто выбираю Intel PRO/1000MT. Я поступаю так, если мне необходима наилучшая совместимость с "железом" от Intel, которое установлено на моем компьютере. Если у вас возникнут проблемы в настройке сетевого соединения, можно попробовать изменить тип адаптера, выбрав другой. Для наиболее древнего оборудования подойдет сетевая карта PCnet-FAST II.

Режим (Mode)

Довольно странно звучащий "Неразборчивый режим" (Promiscuous Mode) обычно применяется для работы VM в качестве виртуального маршрутизатора в локальных сетях; как сетевой мост или же хост. В этом режиме порт виртуальной машины способен принимать любые пакеты, отправляемые для других операционных систем; и даже для хоста. То есть, принимаются сетевые пакеты, предназначенные не только для этого адаптера, но и для других сетевых устройств. В 99% случаев обычным пользователям "Неразборчивый режим" не нужен. Он используется сетевыми администраторами для диагностики проблем, возникающих в сети.

MAC адрес (MAC Address)

MAC-адрес (MAC - аббревиатура от Media Access Control) является уникальным "именем" устройства в сети, однозначно идентифицирующим и отличающим его от остальных адаптеров и узлов. Этот адрес прописывается для каждого сетевого устройства на физическом уровне в памяти самого интерфейса. При создании виртуального сетевого адаптера VirtualBox автоматически генерирует для него MAC-адрес.
Если необходимо изменить уже имеющийся MAC-адрес, то для этого служит небольшая кнопка справа, которая генерирует новое значение. В случае клонирования существующей виртуальной машины, для нее необходимо создать свой собственный уникальный MAC-адрес, который будет отличаться от адреса оригинальной машины.
Галочка напротив надписи "Кабель подключен" выполняет ту же роль, что и подключение или отключение физического кабеля в реальности. Эта настройка отвечает за подключение виртуального сетевого адаптера к сети. Не стоит путать ее с другой более важной настройкой "Включить сетевой адаптер", которая включает или выключает сам адаптер на виртуальной машине.
Кнопка "Проброс портов" открывает диалоговое окно, в котором производится настройка правил поведения трафика на конкретном адаптере; каким образом будет перемещаться трафик определенного типа между хостом и гостевой виртуальной машиной. Эти правила применяются к сетевым моделям, которые будут рассмотрены немного позже. Сами сетевые модели определяются на вкладке "Тип подключения". Эта настройка является наиболее сложным моментом в установке соединений в VirtualBox. Она доставила мне наибольшие проблемы в экспериментах.

"Подводные камни"

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

Типы подключения к сети

В VirtualBox имеются четыре готовые модели для подключения к сети:
  • Трансляция сетевых адресов (NAT), которая является настройкой по умолчанию
  • Сетевой мост (Bridged)
  • Виртуальный адаптер хоста (Host Only)
Соединение типа "Не подключен" также является настройкой сети, но служит только для одной цели - определения возможных неполадок. В этом режиме VirtualBox сообщает гостевой операционной системе, что сетевая карта присутствует, но соединения с ней нет.

Трансляция сетевых адресов (NAT)

Протокол NAT позволяет гостевой операционной системе выходить в Интернет, используя при этом частный IP, который не доступен со стороны внешней сети или же для всех машин локальной физической сети. Такая сетевая настройка позволяет посещать web-страницы, скачивать файлы, просматривать электронную почту. И все это, используя гостевую операционную систему. Однако извне невозможно напрямую соединиться с такой системой, если она использует NAT.
Принцип трансляции сетевых адресов заключается в следующем. Когда гостевая ОС отправляет пакеты на конкретный адрес удаленной машины в сети, сервис NAT, работающий под VirtualBox, перехватывает эти пакеты, извлекает из них сегменты, содержащие в себе адрес пункта отправки (IP-адрес гостевой операционной системы) и производит их замену на IP-адрес машины-хоста. Затем заново упаковывает их и отправляет по указанному адресу.
Например, в вашей домашней локальной сети хост и другие физические сетевые устройства имеют адреса в диапазоне, начинающемся с 192.168.х.х. В VirtualBox адаптеры, работающие по протоколу NAT, имеют IP-адреса в диапазоне, начинающемся с 10.0.2.1 и заканчивающемся 10.0.2.24. Такой диапазон называется под-сетью. Как правило, этот диапазон не используется для присвоения адресов устройствам в основной сети, поэтому такая система недоступна извне, со стороны хоста. Гостевая ОС может выполнять обновление программного обеспечения и web-серфинг, но остается невидимой для остальных "участников".
В руководстве VirtualBox этот момент описан более подробно:
"В режиме NAT гостевому сетевому интерфейсу присваивается по умолчанию IPv4 адрес из диапазона 10.0.х.0/24, где х обозначает конкретный адрес NAT-интерфейса, определяемый по формуле +2. Таким образом, х будет равен 2, если имеется только один активный NAT-интерфейс. В этом случае, гостевая операционная система получает IP-адрес 10.0.2.15, сетевому шлюзу назначается адрес 10.0.2.2, серверу имен (DNS) назначается адрес 10.0.2.3." (Oracle Corporation, 2012, Глава 9). Протокол NAT полезен в том случае, когда нет разницы в том, какие IP-адреса будут использовать гостевые ОС на виртуальной машине, поскольку все они будут уникальными. Однако, если потребуется настроить перенаправление сетевого трафика, или же расширить функциональность гостевой ОС, развернув на ней web-сервер (к примеру), то необходимы дополнительные настройки. В режиме NAT также недоступны такие возможности, как предоставление общего доступа к папкам и файлам.

Сетевой мост (Bridged)

В соединении типа "Сетевой мост" виртуальная машина работает также, как и все остальные компьютеры в сети. В этом случае адаптер выступает в роли моста между виртуальной и физической сетями. Со стороны внешней сети имеется возможность напрямую соединяться с гостевой операционной системой.
Адаптер в режиме "Сетевой мост" подключается, минуя хост, к устройству, которое распределяет IP-адреса внутри локальной сети для всех физических сетевых карт. VirtualBox соединяется с одной из установленных сетевых карт и передает пакеты через нее напрямую; получается работа моста, по которому передаются данные. Как правило, адаптер в модели "Сетевой мост" получает стандартный адрес из диапазона 192.168.х.х от роутера. Поэтому виртуальная машина в сети выглядит так, как будто это обычное физическое устройство, неотличимое от остальных.
На хосте могут быть активными одновременно несколько сетевых устройств; например, на моем ноутбуке имеется проводное подключение (называемое eth0) и беспроводное подключение (называемое wlan0). Поле "Имя" позволяет выбрать, какой из сетевых интерфейсов вы бы хотели использовать в качестве моста на VirtualBox.
В моем случае, я использую беспроводной адаптер wlan0 , так как он подключен к маршрутизатору. В то время как проводной интерфейс eth0 не имеет даже кабеля.

Поэтому моему хосту назначен роутером IP-адрес 192.168.0.2. Виртуальной машине в режиме "Сетевой мост" присвоен адрес 192.168.2.6. При этом не имеет значения тот факт, что VirtualBox передает и получает трафик как бы "сквозь" хост, минуя его. В результате получается, что виртуальная машина становится просто еще одним компьютером в локальной сети. Если я пересчитаю свой компьютер и три виртуальные машины (VM), работающие в режиме "Сетевой мост", то у меня получиться четыре компьютера в физической локальной сети.

Дальше - больше...

Протокол NAT полезен, потому что он защищает гостевые операционные системы со стороны Интернет. Но для того, чтобы получить доступ к ним извне (а на некоторых ОС у меня имеются установленные web-сервера), потребуется дополнительная настройка для перенаправления трафика. Тип подключения "Сетевой мост" позволяет получить доступ к ним, но системы в этом случае становятся незащищенными.
Если ваше сетевое устройство доступа (это может быть маршрутизатор, сетевой коммутатор или же настройки, предоставленные Интернет-провайдером) позволяет предоставлять только один IP-адрес для сетевого интерфейса, возможно, вам не удастся настроить "Сетевой мост".

Виртуальный адаптер хоста (Host-only)

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

Как правило, хост имеет свой собственный сетевой адрес, который используется для выхода в Интернет. Обычно это 192.168.0.101. В режиме "Виртуальный адаптер хоста" машина-хост также выступает в роли роутера VirtualBox и обладает IP-адресом по умолчанию 192.168.56.1. Создается внутренняя локальная сеть, обслуживающая все гостевые операционные системы, настроенные для режима "Виртуальный адаптер хоста" и видимые для остальной части физической сети. Адаптер vboxnet0 использует адреса из диапазона, начинающегося с 192.168.56.101. Но при желании можно изменить адрес по умолчанию.
Подобно адаптеру в режиме "Сетевой мост", в режиме "Виртуальный адаптер хоста" используются разные диапазоны адресов. Можно легко настроить гостевые системы для получения IP-адресов, используя для этого встроенный DHCP-сервер виртуальной машины VirtualBox.
В дополнение нужно сказать, что в режиме "Виртуальный адаптер хоста" созданная им сеть не имеет внешнего шлюза для выхода в Интернет, как для хоста, так и для гостевых операционных систем. Он работает только как обычный сетевой коммутатор, соединяя между собой хост и гостевые системы. Поэтому адаптер в режиме "Виртуальный адаптер хоста" не предоставляет гостевым машинам выход в Интернет; vboxnet0 по умолчанию не имеет шлюза. Дополнительные возможности для этого адаптера значительно упрощают настройку сети между хостом и гостевыми ОС, однако все же отсутствует внешний доступ или перенаправление портов. Поэтому может потребоваться второй адаптер в режиме "Виртуальный адаптер хоста" или "Сетевой мост", который подключается к гостевой операционной системе для получения полного доступа к ней.

Внутренняя сеть (Internal Network)

Если на практике вам потребуется настроить взаимосвязь между несколькими гостевыми операционными системами, работающими на одном хосте и могущими сообщаться только между собой, тогда можно воспользоваться режимом "Внутренняя сеть". Конечно, для этой цели можно использовать режим "Сетевой мост", но режим "Внутренняя сеть" обладает большей безопасностью. В режиме "Сетевой мост" все пакеты отправляются и получаются через адаптер физической сети, установленный на машине-хосте. В этом случае весь трафик может быть перехвачен (например, путем установки сниффера пакетов на машине-хосте).

Внутренняя сеть, согласно руководству VirtualBox, является "программной сетью, которая может быть видима для выборочно установленных виртуальных машин, но не для приложений, работающих на хосте или на удаленных машинах, расположенных извне". Такая сеть представляет из себя набор из хоста и нескольких виртуальных машин. Но ни одно из вышеперечисленных устройств не имеет выхода через физический сетевой адаптер - он полностью программный, используемый VirtualBox в качестве сетевого маршрутизатора. В целом получается частная локальная сеть только для гостевых операционных систем без доступа в Интернет, что делает ее максимально безопасной. Возможное применение такой сети - сверхсекретный сервер с клиентами, предназначенный для разработки; тестирование систем на проникновение или какие-либо другие цели, преследующие создание внутренней сети для команд-разработчиков или организаций. Это идеальный способ для блокировки окружения от неавторизованной установки программного обеспечения, скачивания или закачивания файлов, посещения сервисов типа Facebook в рабочее время.
Итак, мы рассмотрели различные типы сетевых соединений. Каждый из них имеет свои собственные настройки и предназначен для определенных целей. Вернемся к тому моменту, откуда все началось - создание виртуального сервера для развертывания на нем CMS Wordpress и его тестирования.

Доступ к гостевой операционной системе

Во-первых, мне нужен доступ в Интернет из гостевой системы для установки обновлений, скачивания пакетов и других подобных задач. Мне также необходим доступ к Сети с машины-хоста. Но мне не нужно, чтобы сервер был доступен из внешней сети.
Выбираю необходимую виртуальную машину из менеджера VirtualBox и затем перехожу в меню "Настройки - Сеть".
Оставляю выбранным по умолчанию сетевой адаптер в режиме NAT. Это позволит гостевым системам выходить в Интернет через настроенное соединение хоста, на котором установлены эти машины. Гостевые системы не видны извне в локальной сети; я также не имею доступа к любой из гостевых систем со стороны хоста; аналогично, гостевые системы не могут взаимодействовать между собой.

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

Самый простой способ - это использовать адаптер в режиме "Виртуальный адаптер хоста", предоставляемый VirtualBox по умолчанию. Он имеет имя vboxnet0 . Можно добавить столько адаптеров подобного типа, сколько нужно (если есть необходимость в настройке нескольких отдельных сетей типа "Виртуальный адаптер хоста"). Открыв основное окно менеджера гостевых операционных систем VirtualBox, и выбрав в меню "Настройки - Сеть", вы можете конфигурировать существующий адаптер vboxnet0 или создать еще несколько подобных (vboxnet1 , vboxnet2).
Щелкните мышью на кнопке "Редактировать" - иконка с изображением отвертки (третья по счету сверху вниз). Щелчок на этой иконке откроет настройки по умолчанию. В них адрес 192.168.56.1 является тем адресом, по которому гостевые системы получают доступ к хосту. Я оставил его "как есть", не меняя.


По умолчанию, адаптер vboxnet0 динамически получает IP адрес во время сессии подключения от DHCP-сервера. Для моего виртуального web-сервера Wordpress необходимо, чтобы он имел статический IP-адрес. Поэтому на вкладке "DHCP сервер" я убрал галочку с надписи "Включить сервер". Таким образом, DHCP-сервер у меня отключен.

Добавление виртуального адаптера хоста

Я собираюсь добавить еще один сетевой адаптер (в режиме "Виртуальный адаптер хоста") к гостевой машине, что позволит создать самодостаточную частную виртуальную сеть. Эта сеть будет состоять только из хоста и любой гостевой операционной машины, настроенной в режиме "Виртуальный адаптер хоста".
Поэтому в настройках гостевой системы я открываю вкладку "Адаптер 2" и устанавливаю значение "Тип подключения" в положение "Виртуальный адаптер хоста". По умолчанию, вновь созданному адаптеру присваивается имя vboxnet0 . "Неразборчивый режим" для меня не имеет значения, поэтому оставляю его в значении "Запретить". Надпись "Кабель подключен" я также оставляю активной.

Настройка гостевой системы


Мне необходимо, чтобы гостевой виртуальный сервер имел статический IP-адрес в сети, работающей в режиме "Виртуальный адаптер хоста". Иначе адрес сервера будет меняться от сессии до сессии, каждый раз при подключении. Я буду вынужден снова и снова решать задачу настройки, чтобы соединиться с хостом. Поэтому захожу в гостевую систему, открываю в ней терминал и ввожу в нем две следующие команды:
ifconfig eth1 192.168.56.101 netmask 255.255.255.0 up Эти действия устанавливают указанный IP-адрес для адаптера, расположенного в гостевой системе и запускают этот сетевой интерфейс. В этом адресе используется сетевой префикс 192 для домашних сетей, затем следует.168 в качестве начального адреса хоста ID, .56 для установки диапазона адресов под-сети; и наконец, финальный идентификатор.1 (хост) для сети. Адаптер в режиме NAT имеет имя eth0 , поэтому логично предположить, что адаптер в режиме "Виртуальный адаптер хоста" имеет имя eth1 . Я могу использовать этот IP-адрес для тестирования гостевой системы из хоста через протокол SSH или браузер.
Однако, эти настройки являются временными. Если я произведу перезагрузку системы, все они бесследно пропадут. Для того, чтобы установить их постоянными, нужно добавить (используя учетную запись root) в файл /etc/network/interfaces следующие строки:
# The host­only network interface auto eth1 iface eth1 inet static address 192.168.56.101 netmask 255.255.255.0 network 192.168.56.0 broadcast 192.168.56.255 Теперь, при перезагрузке, этот сетевой интерфейс запустится автоматически. Для проверки - запустился ли он, я использую команду ifconfig , которую ввожу в терминале гостевой операционной системы.

Присвоение имен

Так как я не слишком "дружу" с числами и IP-адресами, то для себя я всегда использую имена для гостевых систем вместо присвоения им IP-адресов. Для этого я редактирую файл /etc/hosts на машине-хосте и добавляю туда ссылки. Таким образом, я могу просматривать запущенные гостевые системы по их именам.
В файл /etc/hosts я добавляю строку:
192.168.56.101 ocelotsvr Если я добавляю еще несколько гостевых систем с сеть, то мне достаточно отредактировать этот файл и дописать нужное количество строк. Благодаря такому приему я легко могу обратиться к любой из этих систем.

Альтернативный маршрут

Эксперты сетевых технологий могут заметить, что в моей конфигурации существует альтернативный маршрут для доступа к виртуальному серверу.
Используя адаптер по умолчанию, работающий по протоколу NAT, можно запустить дополнительную конфигурацию, которая позволит мне получить доступ к виртуальному серверу с хоста, не используя при этом сетевую настройку "Виртуальный адаптер хоста".
Используя панель настроек "Сетевой адаптер" в гостевой операционной системе, можно настроить проброс портов в виртуальной машине VirtualBox. Для этого переходим к настройкам адаптера NAT (кнопка внизу окна) для настройки перенаправления портов. При нажатии на нее откроется диалоговое окно, в котором настраиваются правила проброса для данного сетевого адаптера и гостевой системы.
Мне необходимо настроить два правила; одно для получения доступа к web-серверу Apache на гостевой системе, второе - для регулирования всего остального TCP-трафика (в большинстве это http-запросы).
Не мудрствуя лукаво, я назвал эти правила Apache и TCP, соответственно; оба используют TCP-протокол. Если говорить о привязке номеров портов, то порт 8888 на хосте перенаправляет трафик на гостевую систему для сервера Apache; порт 2222 на хосте перенаправляет трафик на порт 22, расположенный на гостевой операционной системе; такая настройка предоставляет мне доступ к гостевой системе для управления ее службами. Любой другой трафик будет отклонен виртуальной машиной, как не подпадающий под правила.

Это означает, что любые другие гостевые системы, которые я запущу на виртуальной машине, не смогут соединиться с виртуальным сервером, так как просто не существует сетевого маршрута под NAT.

Для начала установите любую версию виртуальной машины VirtualBox, начиная с 3.0. И вы найдете в ней примерно одинаковые возможности по сравнению с теми, что описываются в данной статье.

После установки программы перейдите в меню “Настройки – Сеть”. Вид открываемой вкладки соответствует настройкам по умолчанию. Любая из виртуальных машин может быть настроена на использование четырех сетевых адаптеров – в зависимости от того, какой вам необходим в конкретном случае. Но чаще всего на практике требуется только один из них. Как правило, при установке виртуальной машины, по умолчанию создается простой сетевой адаптер. Этого достаточно для выхода в Интернет.

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

Для моего web-сервера с запущенным на нем CMS WordPress дела обстоят несколько сложнее, поэтому идем дальше… Вкладка “Тип адаптера” отвечает за настройку виртуального аппаратного обеспечения. VirtualBox прекрасно справляется с ролью связующего звена между программной сетевой платой и тем физическим интерфейсом, который установлен на реальной машине (хосте). Откройте ссылку “Дополнительно” и вам будут доступны расширенные возможности сетевого адаптера. В этой статье я детально опишу все настройки в порядке их следования, начиная с установки типа адаптера.

Тип адаптера (Adapter Type)

Виртуальная машина VirtualBox имеет встроенную программную эмуляцию большинства наиболее распространенных типов сетевых карт, под которые созданы драйвера и протоколы. Карта PCnet-FAST III является выбором по умолчанию, однако в своей практике я часто выбираю Intel PRO/1000MT. Я поступаю так, если мне необходима наилучшая совместимость с “железом” от Intel, которое установлено на моем компьютере. Если у вас возникнут проблемы в настройке сетевого соединения, можно попробовать изменить тип адаптера, выбрав другой. Для наиболее древнего оборудования подойдет сетевая карта PCnet-FAST II.

Режим (Mode)

Довольно странно звучащий “Неразборчивый режим” (Promiscuous Mode) обычно применяется для работы VM в качестве виртуального маршрутизатора в локальных сетях; как сетевой мост или же хост. В этом режиме порт виртуальной машины способен принимать любые пакеты, отправляемые для других операционных систем; и даже для хоста. То есть, принимаются сетевые пакеты, предназначенные не только для этого адаптера, но и для других сетевых устройств. В 99% случаев обычным пользователям “Неразборчивый режим” не нужен. Он используется сетевыми администраторами для диагностики проблем, возникающих в сети.

MAC адрес (MAC Address)

MAC-адрес (MAC – аббревиатура от Media Access Control) является уникальным “именем” устройства в сети, однозначно идентифицирующим и отличающим его от остальных адаптеров и узлов. Этот адрес прописывается для каждого сетевого устройства на физическом уровне в памяти самого интерфейса. При создании виртуального сетевого адаптера VirtualBox автоматически генерирует для него MAC-адрес.
Если необходимо изменить уже имеющийся MAC-адрес, то для этого служит небольшая кнопка справа, которая генерирует новое значение. В случае клонирования существующей виртуальной машины, для нее необходимо создать свой собственный уникальный MAC-адрес, который будет отличаться от адреса оригинальной машины.

Галочка напротив надписи “Кабель подключен” выполняет ту же роль, что и подключение или отключение физического кабеля в реальности. Эта настройка отвечает за подключение виртуального сетевого адаптера к сети. Не стоит путать ее с другой более важной настройкой “Включить сетевой адаптер”, которая включает или выключает сам адаптер на виртуальной машине.

Кнопка “Проброс портов” открывает диалоговое окно, в котором производится настройка правил поведения трафика на конкретном адаптере; каким образом будет перемещаться трафик определенного типа между хостом и гостевой виртуальной машиной. Эти правила применяются к сетевым моделям, которые будут рассмотрены немного позже. Сами сетевые модели определяются на вкладке “Тип подключения”. Эта настройка является наиболее сложным моментом в установке соединений в VirtualBox. Она доставила мне наибольшие проблемы в экспериментах.

Типы подключения к сети

В VirtualBox имеются четыре готовые модели для подключения к сети:

  • Трансляция сетевых адресов (NAT), которая является настройкой по умолчанию
  • Сетевой мост (Bridged)
  • Виртуальный адаптер хоста (Host Only)

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

Трансляция сетевых адресов (NAT)

Протокол NAT позволяет гостевой операционной системе выходить в Интернет, используя при этом частный IP, который не доступен со стороны внешней сети или же для всех машин локальной физической сети. Такая сетевая настройка позволяет посещать web-страницы, скачивать файлы, просматривать электронную почту. И все это, используя гостевую операционную систему. Однако извне невозможно напрямую соединиться с такой системой, если она использует NAT.

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

Например, в вашей домашней локальной сети хост и другие физические сетевые устройства имеют адреса в диапазоне, начинающемся с 192.168.х.х. В VirtualBox адаптеры, работающие по протоколу NAT, имеют IP-адреса в диапазоне, начинающемся с 10.0.2.1 и заканчивающемся 10.0.2.24. Такой диапазон называется под-сетью. Как правило, этот диапазон не используется для присвоения адресов устройствам в основной сети, поэтому такая система недоступна извне, со стороны хоста. Гостевая ОС может выполнять обновление программного обеспечения и web-серфинг, но остается невидимой для остальных “участников”.

В руководстве VirtualBox этот момент описан более подробно:

“В режиме NAT гостевому сетевому интерфейсу присваивается по умолчанию IPv4 адрес из диапазона 10.0.х.0/24, где х обозначает конкретный адрес NAT-интерфейса, определяемый по формуле +2. Таким образом, х будет равен 2, если имеется только один активный NAT-интерфейс. В этом случае, гостевая операционная система получает IP-адрес 10.0.2.15, сетевому шлюзу назначается адрес 10.0.2.2, серверу имен (DNS) назначается адрес 10.0.2.3.” (Oracle Corporation, 2012, Глава 9).

Протокол NAT полезен в том случае, когда нет разницы в том, какие IP-адреса будут использовать гостевые ОС на виртуальной машине, поскольку все они будут уникальными. Однако, если потребуется настроить перенаправление сетевого трафика, или же расширить функциональность гостевой ОС, развернув на ней web-сервер (к примеру), то необходимы дополнительные настройки. В режиме NAT также недоступны такие возможности, как предоставление общего доступа к папкам и файлам.

Сетевой мост (Bridged)

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

Адаптер в режиме “Сетевой мост” подключается, минуя хост, к устройству, которое распределяет IP-адреса внутри локальной сети для всех физических сетевых карт. VirtualBox соединяется с одной из установленных сетевых карт и передает пакеты через нее напрямую; получается работа моста, по которому передаются данные. Как правило, адаптер в модели “Сетевой мост” получает стандартный адрес из диапазона 192.168.х.х от роутера. Поэтому виртуальная машина в сети выглядит так, как будто это обычное физическое устройство, неотличимое от остальных.

На хосте могут быть активными одновременно несколько сетевых устройств; например, на моем ноутбуке имеется проводное подключение (называемое eth0) и беспроводное подключение (называемое wlan0). Поле “Имя” позволяет выбрать, какой из сетевых интерфейсов вы бы хотели использовать в качестве моста на VirtualBox.

В моем случае, я использую беспроводной адаптер wlan0 , так как он подключен к маршрутизатору. В то время как проводной интерфейс eth0 не имеет даже кабеля.

Поэтому моему хосту назначен роутером IP-адрес 192.168.0.2. Виртуальной машине в режиме “Сетевой мост” присвоен адрес 192.168.2.6. При этом не имеет значения тот факт, что VirtualBox передает и получает трафик как бы “сквозь” хост, минуя его. В результате получается, что виртуальная машина становится просто еще одним компьютером в локальной сети. Если я пересчитаю свой компьютер и три виртуальные машины (VM), работающие в режиме “Сетевой мост”, то у меня получиться четыре компьютера в физической локальной сети.

Протокол NAT полезен, потому что он защищает гостевые операционные системы со стороны Интернет. Но для того, чтобы получить доступ к ним извне (а на некоторых ОС у меня имеются установленные web-сервера), потребуется дополнительная настройка для перенаправления трафика. Тип подключения “Сетевой мост” позволяет получить доступ к ним, но системы в этом случае становятся незащищенными.

Если ваше сетевое устройство доступа (это может быть маршрутизатор, сетевой коммутатор или же настройки, предоставленные Интернет-провайдером) позволяет предоставлять только один IP-адрес для сетевого интерфейса, возможно, вам не удастся настроить “Сетевой мост”.

Виртуальный адаптер хоста (Host-only)

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

В отличие от других продуктов виртуализации, адаптер, работающий под протоколом NAT в VirtualBox, не может выступать в роли связующего моста между сетевым устройством по умолчанию на хостах. Поэтому невозможен прямой доступ извне к машинам, “спрятанным” за NAT – ни к программам, работающим на них; ни к данным, находящимся на самих хостах. Давайте рассмотрим следующий пример.

Как правило, хост имеет свой собственный сетевой адрес, который используется для выхода в Интернет. Обычно это 192.168.0.101. В режиме “Виртуальный адаптер хоста” машина-хост также выступает в роли роутера VirtualBox и обладает IP-адресом по умолчанию 192.168.56.1. Создается внутренняя локальная сеть, обслуживающая все гостевые операционные системы, настроенные для режима “Виртуальный адаптер хоста” и видимые для остальной части физической сети. Адаптер vboxnet0 использует адреса из диапазона, начинающегося с 192.168.56.101. Но при желании можно изменить адрес по умолчанию.

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

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

Внутренняя сеть (Internal Network)

Если на практике вам потребуется настроить взаимосвязь между несколькими гостевыми операционными системами, работающими на одном хосте и могущими сообщаться только между собой, тогда можно воспользоваться режимом “Внутренняя сеть”. Конечно, для этой цели можно использовать режим “Сетевой мост”, но режим “Внутренняя сеть” обладает большей безопасностью. В режиме “Сетевой мост” все пакеты отправляются и получаются через адаптер физической сети, установленный на машине-хосте. В этом случае весь трафик может быть перехвачен (например, путем установки сниффера пакетов на машине-хосте).

Внутренняя сеть, согласно руководству VirtualBox, является “программной сетью, которая может быть видима для выборочно установленных виртуальных машин, но не для приложений, работающих на хосте или на удаленных машинах, расположенных извне”. Такая сеть представляет из себя набор из хоста и нескольких виртуальных машин. Но ни одно из вышеперечисленных устройств не имеет выхода через физический сетевой адаптер – он полностью программный, используемый VirtualBox в качестве сетевого маршрутизатора. В целом получается частная локальная сеть только для гостевых операционных систем без доступа в Интернет, что делает ее максимально безопасной. Возможное применение такой сети – сверхсекретный сервер с клиентами, предназначенный для разработки; тестирование систем на проникновение или какие-либо другие цели, преследующие создание внутренней сети для команд-разработчиков или организаций. Это идеальный способ для блокировки окружения от неавторизованной установки программного обеспечения, скачивания или закачивания файлов, посещения сервисов типа Facebook в рабочее время.

Итак, мы рассмотрели различные типы сетевых соединений. Каждый из них имеет свои собственные настройки и предназначен для определенных целей.



Понравилась статья? Поделитесь с друзьями!
Была ли эта статья полезной?
Да
Нет
Спасибо, за Ваш отзыв!
Что-то пошло не так и Ваш голос не был учтен.
Спасибо. Ваше сообщение отправлено
Нашли в тексте ошибку?
Выделите её, нажмите Ctrl + Enter и мы всё исправим!