Перейти к содержимому

Как объединить виртуальные машины в сеть virtualbox

  • автор:

Настройка сети в 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 OS Windows 7,8

Настройка виртуальной сети в virtualbox. Как правильно и быстро создать и настроить виртуальную сеть читайте в нашей подробной инструкции.

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

Как правило, работа с ПК предполагает сетевое взаимодействие, в котором компьютер выполняет одну из ролей: клиента либо сервера.

Содержание:

В этой статье мы рассмотрим создание и настройку виртуальной компьютерной сети средствами программы VirtualBox.

Сетевые режимы VirtualBox

Заходим на официальный сайт программы, скачиваем и устанавливаем Virtualbox. Создаем и устанавливаем одну или несколько гостевых ОС.

Далее следует выбрать в списке виртуальную машину и нажать кнопку «Настроить».

cоздание и настройка виртуальной сети VirtualBox OS Windows 7,8

В правой колонке переходим в меню «Сеть».

Каждая виртуальная машина имеет 4 условных адаптера, каждый из адаптеров имеет 5 профилей настройки, о которых мы поговорим ниже.

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

Рассмотрим более детально каждый тип сетевого интерфейса.

Network Adress Translation — механизм в сетях, построенных с использованием TCP/IP протокола, преобразующий IP-адреса транзитных пакетов.

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

Данный принцип используется в домашних роутерах.

Устройство имеет 1 внешний, «белый» IP-адрес, выданный провайдером для идентификации в глобальной сети, и множество внутренних, «серых» IP-адресов, установленных пользователем для взаимодействия сетевых устройств в локальной сети.

cоздание и настройка виртуальной сети VirtualBox OS Windows 7,8

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

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

Сетевой адаптер при такой настройке служит мостом между виртуальной и физической сетью.

Условный сетевой адаптер подключается и работает напрямую с физическим адаптером минуя хост-машину.

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

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

cоздание и настройка виртуальной сети VirtualBox OS Windows 7,8

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

При таком режиме работы есть возможность взаимодействия как между виртуальными машинами, так и виртуальной машиной и хостом.

В этом случае используется специальное устройство — vboxnet0, которое создает подсети и назначает IP-адреса гостевым ОС.

cоздание и настройка виртуальной сети VirtualBox OS Windows 7,8

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

Как видно из названия данный тип взаимодействия предполагает подключение гостевых ОС к единой внутренней сети.

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

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

cоздание и настройка виртуальной сети VirtualBox OS Windows 7,8

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

Позволяет самостоятельно выбирать драйвер для работы сетевого адаптера. Драйвер может входить в состав VirtualBox или загружается вместе с пакетом обновлений.

На сегодня существует 2 драйвера для двух режимов работы виртуального адаптера:

UDP туннель. Используется для связи машин, запущенных на разных хостах.

VDE. Используется для подключения виртуальных машин к виртуальному Ethernet-коммутатору на FreeBSD или Linux-хостах.

Стоить отметить, что режим VDE позволяет выполнять эмуляцию L2/L3 коммутаторов и STP, WAN, VLANs протоколов.

cоздание и настройка виртуальной сети VirtualBox OS Windows 7,8

Настройка сети для основных режимов VirtualBox

Выбираем данный тип подключения и запускаем удаленную машину. После запуска необходимо установить сетевой адаптер в режим DHCP-клиента.

cоздание и настройка виртуальной сети VirtualBox OS Windows 7,8

Сетевой мост

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

Если сетевые настройки назначаются вручную следует внести их в соответствующие поля.

cоздание и настройка виртуальной сети VirtualBox OS Windows 7,8

В данном режиме у нас есть доступ к локальной и глобальной сетям.

cоздание и настройка виртуальной сети VirtualBox OS Windows 7,8

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

Для этого режима необходимо внести некоторые предварительные настройки. В VirtualBox заходим в меню «Файл», подменю «Настройки».

Выбираем пункт «Сеть» и переходим во вкладку «Виртуальные сети хоста». Нажимаем на иконке сетевого адаптера со знаком +.

В результате создается виртуальный адаптер vboxnet0.

настройка виртуальной сети в virtualbox

настройка виртуальной сети в virtualbox

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

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

Чтобы объединить несколько виртуальных машин в одну виртуальную сеть, необходимо в профиле всех гостевых ОС выбрать тип подключения «Внутренняя сеть», после чего ввести название виртуальной сети либо воспользоваться стандартным — intnet.

настройка виртуальной сети в virtualbox

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

Например, назначив одному адаптеру работать в режиме «Внутренней сети», а другому режим NAT, мы получим виртуальную сеть с выходом в Интернет.

THE INTRO

Tony Mucci

Throughout the week, I work from multiple locations around the Salt Lake City area and my laptop (Windows 10) connections to a variety of networks to perform my work. However, the way I had my VM configured on my Virtual Box left me in a bit of a pickle because of the way I was using my static IPs as well as the Bridged Adapter of VirtualBox.

Everytime I would try to go into my office at Dree, I wouldn’t be able to get my VM to see the internet, which I thought was a bit strange since it worked in other networks. However, after doing some research, I was able to configure my VM so it can now always get to the internet on any network, but I am able to SSH from my host (local computer) to my VM (guest computer). In the content below, I will be doing my examples on an Ubuntu 20 running on Virtual Box 6.1

THE PROBLEM

When I changed networks when I traveled, I was unable to have my VM access the internet and I was unable to SSH into my VM while it was running with a static IP. I need a way to have to auto configure itself.

THE SOLUTION

Short Version:

I was able to fix this by changing my Adapter 1 for my network to NAT, and then adding a Host-Only adapter to my Adapter 2 tab in VirtualBox (Virtualbox UI →Your VM→ Settings → Network). Then, I changed my Adapter 1 (in this case, enp0s3, for Ubuntu)in my Netplan to dhcp4: true and added a static IP for my Adapter 2 ( for me it was enp0s8, it could vary for you.) to a static IP given by the DHCP server running from my Adapter 2 settings in Virtual Box.

I reset /applied the netplan:

Long Version:

Adapter #1

I found that I can still have my VirtualBox access the internet by allowing my Adapter 1 in (usually enp0s3 in Ubuntu Server) Virtualbox UI →Your VM→ Settings → Network set to

This allowed my VM to still piggy-back on my NIC of my Windows 10 machine to get to the internet. However, with the NAT, you are unable to access the VM at all. Meaning, if I am trying to host my local version of a LAMP stack, I wouldn’t be able to see the website I am working on because my Windows 10 host machine can’t see the VM in anyway.

Think of it like the Berlin wall, you have no idea what is going on beyond the wall between the two parts of the city.

So, in order to have my host computer (Windows 10), talked to my guest computer(Ubuntu VM) I needed a 2nd Network Adapter.

Building the 2nd Network Adapter

For this I created a new Network Adapter In the Host Network Adapter Manager (Ctrl+H while in the UI of Virtual Box)

So this is where everyone else’s tutorials AND documentation beings to suck because they don’t tell you what the hell the adapter is or what it acts like (not all of us are Networking Gods). The IP address here acts as a gateway just like your normal gateway works on your home router. When I created this Adapater, it gave me the address of 192.168.211.1. This address IS my gateway that I use to talk between my host and my guest VM. This IS NOT the IP to my guest VM. We will configure that in a bit.

DHCP Server

Next, I went to the DHCP server tab for my new Adapter and configured the settings there. Essentially, everything was good, but I wanted to set the DHCP server to .100 because, well, I saw it on other tutorials and said “Ah, what the hell…why not!?”.

This will allow us to make about 250 IPs addresses on this single Network. However, for me, I only needed 1, but it’s good to have extra in case I want to experience with having multiple VM boxes talk to each other.

Once that was finished, I pressed Apply and closed the manager.

After configuring my network adapter, I set my Adapter #2 to the new Host-Only Adapter I made and clicked OK.

The Ubuntu Side of Things

After configuring all of the adapters, it’s now time to set our static IP inside our Ubuntu VM inside Virtual Box.

First, I logged into the actual VM, not SSH’ed.

After I logged in, I went to my netplan YAML file (your default YAML might be named different.)

Inside the YAML file I wrote the following:

My enp0s3 is my Adapter #1 that I configured to be NAT

My enp0s8 is my Adapter #2 that I configured to be Host-Only

Remember, the enp0s3 is the adapter that can connect your Guest VM to the internet (For more info on how NAT works https://www.nakivo.com/blog/virtualbox-network-setting-guide/)

The enp0s8 adapter is going to be the IP address that we use to have our host machine (Windows 10) talk to our Guest Machine (Ubuntu). In this case, we are setting the IP to 192.168.211.3/24.

The /24 is shorthand for the submask of 255.255.255.0

After we configure and save our YAML file in Vim (:x auto writes and closes your file) we then apply the netplan

The Host File on your Host Machine (Windows 10)

The last thing we need to do is configure our host file on Windows to see a custom domain name we want to use for our VM. That way we don’t have to keep remembering what the IP address is.

So in your System32\drivers\etc folder. Edit the Host File (you will need to edit this file as an Adminstrator).

Below is an example entry for our new VM

Once saved, if I wanted to SSH in

would allow me to ssh into our VM

and if I had my web server on my VM configured I could visit:

and the website would be displayed for me.

I hope this helps you out for all you remote workers who like to bounce between coffee shops and other good internet spots around your town.

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

Настройки сетевых интерфейсов LAN 2

На данном этапе 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, чтобы избежать пересекающихся диапазонов адресов.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *