Настройка сети в VirtualBox
VirtualBox часто применяют, чтобы тестировать программы, которым требуется доступ к Интернету. Перед запуском утилиты надо разобраться в правилах настройки сети и в том, какие существуют виды подключения. Ознакомившись с инструкцией, вы поймете тонкости объединения виртуальных машин (ВМ) в компьютерную сеть, приобретения ими доступа к Интернету и связывания с основной системой.
Сетевые адаптеры: особенности и виды
В программе сеть можно настраивать при помощи нескольких вариантов, каждый из которых предназначен для выполнения определенных задач. К основным методам относят:
1. «Внутренняя сеть». При выборе данного метода ВМ — это полноправный участник компьютерной сети. Преимущества способа — простота настройки. У гостевой отсутствует возможность входить в хозяйскую систему, так же и наоборот. При этом зайти в Интернет вы не сможете. Сервер внутренних сетей не настроите при помощи графического интерфейса. Поэтому применяйте команды панели.
2. «NAT». Применяется в автоматическом режиме. Внутри формируется компьютерная сеть, которой предоставляется индивидуальный IP- адрес. Связь с Интернетом происходит при помощи «NAT». Обращаться к машине сможете, применяя пробросы портов утилиты VirtualBox. Особенность — простота настройки. Благодаря отдельному роутеру обеспечивается изолированность. Каждой гостевой ОС присваивается личный IP.

3. «Сетевой мост». В этом случае ВМ — это полноправный участник компьютерной сети, подключающийся к главной системе. Для приобретения места размещения применяют сетевой интерфейс. Другому оборудованию ВМ становится видна по персональному IP.
4. «Виртуальный адаптер хоста». Создает адаптер, к которому подключаются ВМ, объединяющиеся в компьютерную сеть. При этом выход у пользователя в Интернет отсутствует. У всех ВМ есть возможность связываться между собой. У каждой есть собственный IP- адрес.
5. «Универсальный драйвер». Разные гостевые машины работают совместно на различных ОС.
Каждый метод настройки необходимо рассмотреть подробнее.
Сетевой мост в VirtualBox
Сеть дает возможность ВМ становиться настоящим сетевым оборудованием, обладающим персональным IP. Сначала выберите «Настройки». Найдите «Сеть». Кликните на эту кнопку, далее «Тип подключения», а после этого на «Сетевой мост».

В графе «Имя» выберите интерфейс, назначенный для связи с Интернетом. Этот способ не совсем безопасен, так как любой ПК легко обретет доступ к ВМ.
Сеть NAT
Каждой ВМ автоматически предоставляется выход в Интернет при помощи «NAT». Первоначальная настройка не требуется. При подключении к Интернету гостевая ОС изолируется от прямого подключения извне, но пользователь может беспрепятственно изучать сайты и выполнять нужную работу.
Если ранее были отсоединены сетевые адаптеры, то для включения:
1. Зайдите в «Настройки» виртуальной машины.
2. Кликните на надпись «Сеть».
3. Выберите необходимый адаптер. Есть возможность подключать несколько штук и комбинировать их с хостом и сетью для получения преимуществ двух режимов. Далее в поле под названием «Тип подключения» найдите «NAT». Нажмите «Дополнительно». В МАС-адресе укажите — 080027436F18, выберите тип адаптера.
Виртуальный хост
Необходимо запустить локальную сеть, связывающую несколько хостов и виртуальных машин. Для верной работы в Linux необходимо загрузить модули ядер.

Чтобы они правильно работали, необходима установка пакета net-tools. Затем:
1. Зайдите в «Файл», после чего выберите «Настройки», кликните «Сеть». Нажмите на кнопку «+», а потом подтвердите действие, кликнув на «ОК». Все данные в графах оставляйте без изменения. Если установлена программа версией выше 5.2, то в меню кликните «Инструменты». Выберите «Менеджер сетей хоста».

2. Кликните на надпись «Создать». Поставьте галочку рядом с пунктом «DYCP». Перейдите обратно к списку с перечислением ВМ. Зайдите в «Настройки». Нажмите на «Сеть».
3. Нажмите «Тип подключения». Кликните «Виртуальный адаптер хоста». Название будет, такое же, как вы ранее создавали.
Чтобы все машины работали в общей сети, подключайтесь к одному адаптеру. Если требуется предоставление выхода в интернет, то зайдите в «Адаптер2». После включения настройте «Network Address Translation».
Внутренняя сеть
Для настройки зайдите в «Тип подключения», кликните «Внутреннюю сеть». В графе «Имя» найдите требуемую сеть (при необходимости можете создавать новые, изменяя название текущих).
VirtualBox: виртуальная локальная сеть, маршрутизация в Linux
На 4 курсе Бауманки я получил задание: сделать виртуальную локальную сеть на базе Linux. Информации на эту тему оказалось довольно много, но ее поиск может занять много времени, а порой даже запутать. Поэтому я решил расписать самые основные шаги для построения локальной сети с использованием VirtualBox, а также пролить свет на некоторые неочевидные настройки Linux.

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

Любой компьютер первой сети должен успешно выполнять пинг любого другого компьютера второй сети и наоборот. ICMP-пакеты должны проходить через сервер. Сети и сервер должны быть представлены в виде компьютеров с соответствующими ipv4-адресами.
Настройка виртуальных машин
Если говорить максимально коротко, то сервер одновременно находится и в первой локальной сети, и во второй. Это значит, что по одному сетевому интерфейсу он видит все компьютеры из сети на 2048 хостов, а по другому — все компьютеры из сети на 256 хостов. Для объединения виртуальных машин, допустим сервера и машины первой сети, будем использовать тип подключения «Внутренняя сеть». Внутренняя сеть позволит объединить сервер (SERVER) и первую сеть (LAN 1) на физическом уровне (аналог — соединение кабелем).


Следует обратить внимание на то, что имя внутренней сети LAN1 на первом адаптере должно совпадать с именем внутренней сети SERVER’а на первом адаптере. Таким образом, можно реализовать физическое соединение любого адаптера виртуальной машины LAN 1 с любым адаптером виртуальной машины SERVER. Аналогичным образом соединим вторую сеть (LAN 2) с другим сетевым адаптером сервера, за одним исключением, название внутренней сети должно отличаться.
На данном этапе машины соединены физически, но отправлять ICMP пакеты еще нельзя, для этого необходимо настроить ip-адреса.
Настройка адресов сетей и сервера
Для первой сети на 2048 хостов зададим адрес 192.168.1.0/21, для второй — 192.168.2.0/24. Про ip-адресацию написано уже достаточно большое количество статей, поэтому на ней останавливаться не будем. Соответственно, необходимо задать адреса каждой виртуальной машине.
Для начала стоит посмотреть на сетевые интерфейсы сервера с помощью команды ifconfig:

eth0 — из предыдущего пункта адаптер 1 с типом подключения «Сетевой мост», сейчас его рано разбирать
eth1 — адаптер 2 с типом подключения внутренняя сеть, соединяется с адаптером 1 (там это будет eth0) первой виртуальной машины LAN 1, имя подключения LAN 1
eth2 — адаптер 2 с типом подключения внутренняя сеть, соединяется с адаптером 1 второй виртуальной машины LAN 2, имя подключения LAN 2
Следующими двумя командами зададим ip-адреса сервера в первой и второй сетях соответственно:
ifconfig eth1 192.168.1.10 netmask 255.255.248.0
ifconfig eth2 192.168.2.10 netmask 255.255.255.0
Затем необходимо настроить ip-адреса на eth0 виртуальных машин LAN1 и LAN2. Выполнив команду ifconfig на каждой из машин можно увидеть следующее:



На данном этапе LAN 1 видит SERVER по адресу 192.168.1.10, а SERVER видит LAN 1 по 192.168.1.1. Похожая ситуация и со второй сетью, LAN 1 видит SERVER по адресу 192.168.2.10, а SERVER видит LAN 1 по 192.168.2.1.
Убедиться в этом можно с помощью команды ping, которая отсылает icmp пакеты по определенному ip-адресу и принимает ответ. При пинге с SERVER’а адреса 192.168.2.1 (команда ping 192.168.2.10) должен получиться следующий результат:

Пакеты идут, значит все правильно.
Маршрутизация через сервер
Данная часть статьи легче для понимая, поэтому коротко и по делу. LAN 1 и LAN 2 находят в разных сетях, но у них есть общая точка соприкосновения — SERVER. Это значит, что две сети могут общаться между собой именно через него. Но для этого надо настроить маршрутизацию.
Для начала стоит разрешить на сервере пересылку пакетов между различными сетевыми интерфейсами командой: echo 1 > /proc/sys/net/ipv4/ip_forward. С помощью утилиты маршрутизации route добавим статические маршруты из сети LAN 1 в LAN 2 через SERVER, и из сети LAN 2 в LAN 1 через SERVER.
LAN 1: route add -net 192,168.2.0 netmask 255.255.255.0 gw 192.168.1.10 dev eth0
LAN 2: route add -net 192.168.0.0 netmask 255.255.248.0 gw 192.168.2.10 dev eth0
Следует отметить, что атрибут -net указывается для того, чтобы провести маршрут именно до сети, а не до отдельного хоста, а после атрибута gw указывается адрес сервера для той сети, в которой начинается маршрут.
Такая маршрутизация позволяет первой сети направлять пакеты из одной сети в другую через сервер.
Заключение
Данная статья должна ответить на базовые вопросы читателей по поводу практической реализации и расставить по местам некоторые вопросы о создании виртуальных локальных сетей в VirtualBox с использованием Linux.
Также стоит отметить, что на практике стоит выбрать другой адрес для первой подсети, например 10.0.0.0/21, чтобы избежать пересекающихся диапазонов адресов.
Настройка сети VirtualBox
Виртуальные машины VirtualBox очень часто используются для тестирования различного программного обеспечения и его взаимодействия между собой. Обычно, таким программам необходим доступ к интернету. Время от времени возникает необходимость протестировать работу программ по сети или даже создать небольшую тестовую лабораторию из виртуальных машин.
В этой инструкции мы рассмотрим как выполняется настройка сети VirtualBox различными способами. Вы узнаете как объединить машины в одну локальную сеть, как дать им доступ к интернету и как связать их с основной системой. Но сначала поговорим о том, как может работать сеть.
Виды сетевых адаптеров VirtualBox
Существует несколько способов как настроить сеть в virtualbox, и каждый из них подходит для лучше для решения одной задачи и меньше для другой. Рассмотрим основные:
- NAT — этот способ используется по умолчанию. Для каждой машины создается отдельная внутренняя локальная сеть, в которой машина получает ip 10.10.0.1. Машина может связаться с интернетом, используя технологию NAT, и вы можете обратиться к машине, используя проброс портов VirtualBox, но если у вас будет две виртуальные машины, то вы уже не сможете между ними так взаимодействовать. И если из основной системы к гостевой можно обратиться, то к основной ни гостевой уже никак не получится;
- Виртуальный адаптер хоста — создается виртуальный сетевой адаптер, к которому можно подключить несколько виртуальных машин, тем самым объединив их в локальную сеть. Доступа к интернету нет, но зато машины находятся в одной сети и каждая имеет свой ip адрес, теперь они могут взаимодействовать между собой. Основная система тоже доступна по ip 192.168.56.1. Машины доступны не только между собой, но и из основной системы;
- Сетевой мост — при таком подключении виртуальная машина становится полноценным членом локальной сети, к которой подключена основная система. Машина использует сетевой интерфейс чтобы получить адрес у роутера и становится доступна для других устройств, как и основной компьютер по своему ip адресу.
- Внутренняя сеть — почти то же самое, что и виртуальный адаптер хоста, только без возможности доступа к виртуальной сети из основной системы, доступа к интернету нет.
- Универсальный драйвер — позволяет использовать драйвер из расширений VirtualBox для связи между машинами, расположенными на разных физических хостах.
Теперь рассмотрим каждый вариант настройки более подробно.
Настройка сети Virtualbox
1. Настройка сети NAT
Здесь почти нет о чем говорить. Получение доступа к сети через NAT включено по умолчанию. Проброс портов я рассматривал в отдельной статье. Но если вы раньше отключали сетевые адаптеры, то чтобы включить NAT обратно достаточно открыть настройки нужной машины:

Перейти на вкладку «Сеть»:

Выбрать один из адаптеров. К виртуальной машине можно подключить несколько адаптеров и это очень удобно, так как вы можете комбинировать вместе адаптер виртуального хоста и NAT чтобы получить преимущества обоих режимов. Дальше вам нужно выбрать пункт «NAT» в списке «Тип подключения».
На вкладке «Дополнительно» вы можете настроить марку устройства адаптера и MAC адрес:

Если вы собираетесь устанавливать туда в Windows, то лучше будет работать Intel PRO/1000 MT Desktop, а для Linux можно оставить AMD PCNet FAST III, так как он поддерживается всеми операционными системами.
2. Настройка сети NAT
В версии Virtualbox, начиная с 4.3 была добавлена поддержка сетей NAT, это работает очень похоже на виртуальный адаптер хоста, все машины, подключенные к одной сети могут получить доступ друг к другу, а доступ в интернет выполняется через NAT, но основная система доступа к гостевым не имеет. Чтобы настроить такое подключение нужно сначала создать сеть NAT. Для этого откройте «Файл» -> «Настройки», «Сеть». Здесь перейдите на вкладку «Сети NAT». Дальше нажмите кнопку с зеленым плюсом, чтобы создать новую сеть:

Нажмите «Ok» и закройте это окно. Дальше откройте настройки для виртуальной машины, перейдите на вкладку «Сеть» -> «Адаптер 1»:

Выберите «Тип подключения» — «Сеть NAT», а «Имя» — только что созданную сеть.

Теперь все машины, подключенные к этой сети, будут доступны друг другу, как в VMWare.
3. Настройка адаптера виртуального хоста
Теперь задача немного интереснее — нам нужна локальная сеть virtualbox между несколькими виртуальными машинами и хостом. Для того чтобы все это заработало в Linux, нам нужно чтобы были загружены модули ядра vboxnetadp и vboxnetflt:
lsmod | grep vbox

Возможно, для их правильной работы вам придется установить пакет net-tools. Дальше нужно создать сам виртуальный адаптер. Для этого откройте меню «Файл», затем «Настройки» -> «Сеть». Затем нажмите кнопку с зеленым значком плюс, а затем «Ok», все параметры можно оставить по умолчанию. В VirtualBox 5.2 и выше интерфейс был изменен. Теперь вам нужно открыть меню «Инструменты» -> «Менеджер сетей хоста»:

Нажмите кнопку «Создать», затем, в появившемся адаптере, напротив пункта DHCP установите галочку «Включен».
Теперь вернитесь к списку виртуальных машин, зайдите в настройки машины, «Сеть»:

Выберите «Тип подключения» — «Виртуальный адаптер хоста», а имя vboxnet0, тот, который вы создали раньше.

Для всех машин, которые вы хотите объединить в одну сеть нужно выбирать один и тот же адаптер хоста. Если вы захотите добавить машинам также доступ в интернет, просто перейдите на вкладку «Адаптер 2», включите его и настройте NAT, как описано в первом пункте.
4. Настройка сетевого моста VirtualBox
Режим сетевого моста позволяет виртуальной машине выступать в роли реального сетевого устройства с отдельным ip адресом. Чтобы это настроить откройте это же меню — настойки виртуальной машины, затем «Сеть». Здесь выберите «Тип подключения» — «Сетевой мост»:

В поле «Имя» вам необходимо выбрать сетевой интерфейс, который будет использоваться для связи с внешним миром. Минус такого способа в том, что внешние компьютеры смогут получить доступ к виртуальной машине, а это не очень хорошо с точки зрения безопасности.
5. Внутренняя сеть VirtualBox
Режим внутренняя сеть Virtualbox похож на «Виртуальный адаптер хоста», за тем лишь исключением, что из хостовой системы доступа к гостевым не будет, и настроить все немного проще. Достаточно выбрать «Тип подключения» — «внутренняя сеть», а затем просто выбрать нужную сеть в поле «Имя», или создать новую, просто изменив имя текущей.

Как видите, существует тип подключения NAT — где только интернет, Мост — где машина становится членом внешней сети, а все остальные — это настройка виртуальной сети virtualbox, где машины могут видеть друг друга.
Выводы

В этой небольшой статье мы рассмотрели как выполняется настройка сети VirtualBox, как видите, это не так уж сложно, как может показаться на первый взгляд, несмотря на операционную систему, которую вы используете. В большинстве случаев достаточно сети NAT, но иногда может понадобиться виртуальный адаптер хоста, все же остальные режимы используются намного реже.
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Как настроить сеть в VirtualBox
На сегодняшний день существует уже куча приложений для виртуализации. И VirtualBox один из них, и как правило почти каждая вторая виртуальная машина имеет доступ по сети. У каждой виртуальной машины своё предназначение, например, кому-то нужно просто протестировать ОС или просто запустить приложение, требующее определенную ОС.
Зачастую использование виртуализации без сети для виртуальных машин затрудняет работу с ними, а иногда они и вовсе не нужны без доступа по сети к ним.
И сегодня рассмотрим, как настроить эту чертову локальную сеть и ваше приложение наконец-то будет доступно из вне по локальной сети.
Требования
Для начала убедитесь, что у вас уже установлен сам VirtualBox и создана виртуальная машина.
Типы сетей
В таблице ниже рассмотрим какие типы сетей вы можете использовать в VirtualBox и какие доступы вы будете иметь.
| Тип сети | VM > Host | Host > VM | VM1 > VM2 | VM > LAN | LAN > VM |
|---|---|---|---|---|---|
| NAT | + | Port forwarding | — | + | Port forwarding |
| Bridged | + | + | + | + | + |
| Internal | — | — | + | — | — |
| Host-Only | + | + | + | — | — |
| NATservice | + | Port forwarding | + | + | Port forwarding |
Когда вы создаёте новую виртуальную машину (сервер) ему автоматом добавляется виртуальный сетевой адаптер (1 активный и 3 неактивных). Как правило хватает только одного сетевого активного адаптера. По умолчанию тип адаптера выставлен в NAT.


Не буду сильно расписывать о том, что это такое просто скажу, что при использовании такого типа происходит сопоставление IP-адреса с другим путем изменения заголовка IP-пакетов. И в этом случае IP-адрес вашей виртуальной машины будет из подсети 10.0.2.0. Отмечу что это самый простой способ дать доступ виртуальной машине к внешней сети.

В таком режиме ваша виртуальная машина при выходе во вне через локальную сеть, например, выход в интернет будет прикидываться вами. Т.е. весь трафик будет идти с вашего локального IP-адреса. И понятное дело, что вы не сможете в таком режиме получить доступ к вашему виртуальному серверу по IP-адресу из подсети 10.0.2.0. Т.е. по сути у вашего виртуального сервера будет только исходящие соединения, но не входящие. Зато не надо ничего настраивать ни на хосте, ни на виртуальной машине.
Т.е. если вам просто нужен доступ в интернет и вас совсем не беспокоит что в итоге весь траффик по сети идёт от вашего локального компьютера то используем NAT.
Также если вам вдруг всё же очень сильно нужен NAT и доступ к виртуальной машине из вне или локальной сети вы можете настроить Port Forwarding. Но в таком случае для доступа к виртуальной машине нужно будет обращаться к IP-адресу хоста.

Если вдруг вам не нравится какие IP-адреса назначаются вашим виртуальным машинам можете изменить это в настройках VirtualBox (Менеджер сетей > NAT).


NATservice
По сути тоже самое что и NAT но плюс ещё вам станет доступна сеть виртуальных машин. Т.е вы сможете обратиться по сети с одной виртуальной машины на другую. Правда, чтобы был такой доступ эти виртуальные машины должны быть в одной сети.
Сама сеть настраивается в (Менеджер сетей > NAT).

Также как и в NAT доступен Port Forwarding.

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

Тут уже немного посложнее, суть в том, что виртуальная машина VirtualBox подключается к одной из ваших сетевых карт на локальном хосте и обменивается сетевыми пакетами напрямую, минуя сетевой стек операционной системы хоста.
Тут если у вас в сети нет DHCP сервера, то придётся прописывать IP-адрес на виртуальной машине вручную. IP-адрес как правило из той же подсети что и IP-адрес на локальном хосте, с тем же шлюзом.
При использовании такого типа подключения помимо доступа к интернету с виртуального хоста вы еще получаете и входящие подключения по IP-адресу виртуального хоста.
Для примера представим ситуацию что у меня нет DHCP сервера в следствии чего мои настройки будут следующими:
С такими настройками я легко смогу попасть в интернет через виртуальную машину, но также буду иметь доступ по локальной сети к локальному хосту (192.168.8.11) и наоборот, если только не включен файрволл.
Internal networking (Внутренняя сеть)

При использовании такого типа соединения доступ по сети будет доступен только внутри сети образованной из ваших виртуальных машин. Т.е. это локальная сеть, которая будет доступна только для виртуальных машин.
Естественно ни, а какой речи доступа к интернету тут не может идти и речи так как доступа у вириальных машин к вашей сети нету и соответственно наоборот тоже.
Для примера представим мои настройки сети будут следующими:
При таких настройках я с легкостью смогу получить доступ с одной виртуальной машины на другую через локальную сеть, например, запущу ping с 192.168.8.12 на 192.168.8.13 или наоборот. Но я никак не смогу получить доступ с локального хоста (192.168.8.11) до виртуальных машин и наоборот (даже если пропишу шлюз 192.168.8.1).
Host-Only Networking (Виртуальный адаптер хоста)

Виртуальный адаптер хоста можно рассматривать как что-то среднее между Internal networking (Внутренняя сеть) и Bridged networking (Сетевой мост).
Когда используется Host-Only Networking (Виртуальный адаптер хоста) VirtualBox создаёт новый виртуальный адаптер, благодаря которому ваши виртуальные машины соединяются с вашим локальным хостом и наоборот. Только тут отличие в том, что вы должны подключаться не к IP-адресу вашего хоста, а к IP-адресу, который вы должны задать в настройках VirtualBox (Менеджер сетей).

IP-адреса для виртуальных машин будут назначаться DHCP сервером, настройки которого вы можете задать также в настройках VirtualBox (Менеджер сетей).


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