Virtualbox локальная сеть между виртуальными машинами linux

Как настроить сеть между гостевой виртуальной машиной и хостом в Oracle VirtualBox

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

В этой статье мы опишем самый простой и прямой метод настройки сети для гостевых виртуальных машин и хоста в Linux.

Для целей этого руководства:

  1. Основная операционная система – Linux Mint 18
  2. ОС виртуальной машины — CentOS 7 и Ubuntu 16.10

Требования

  1. Рабочий Oracle Virtualbox, установленный на хост-компьютере.
  2. У вас должна быть установлена гостевая операционная система, такая как Ubuntu, Fedora, CentOS, Linux Mint или любая другая по вашему выбору в виртуальной машине Oracle.
  3. Выключайте виртуальные машины по мере выполнения настроек вплоть до шага, на котором требуется их включить.

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

Сетевая карта по умолчанию (адаптер 1) обычно используется для подключения гостевых машин к Интернету с помощью NAT через хост-компьютер.

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

Создайте сеть для гостей и хост-машины

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

Перейдите в Файл –> Настройки или нажмите Ctrl + G :

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

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

При желании вы можете удалить его, нажав кнопку — посередине, а для просмотра сведений/настроек сети нажмите кнопку изменить.

Вы также можете изменить значения в соответствии с вашими предпочтениями, такие как сетевой адрес, маска сети и т. д.

Примечание. Адрес IPv4 в интерфейсе ниже — это IP-адрес вашего хост-компьютера.

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

Читайте также:  Astra linux dhcp server

Теперь нажмите ОК во всех интерфейсах сетевых настроек ниже, чтобы сохранить изменения.

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

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

Вернувшись в интерфейс диспетчера виртуальных ящиков, выберите свою гостевую виртуальную машину, например сервер Ubuntu 16.10 или CentOS 7, и щелкните меню Настройки.

Настройте адаптер для подключения виртуальной машины к хосту

Выберите параметр Сеть в интерфейсе выше. После этого настройте первую сетевую карту (Адаптер 1) со следующими параметрами:

  1. Отметьте параметр \Включить сетевой адаптер, чтобы включить его.
  2. В поле Прикреплено к: выберите Адаптер только для хоста
  3. Затем выберите имя сети: vboxnet0

Как показано на снимке экрана ниже, нажмите OK, чтобы сохранить настройки:

Настройка адаптера для подключения виртуальной машины к Интернету

Затем добавьте вторую сетевую карту (адаптер 2), чтобы подключить виртуальную машину к Интернету через хост. Используйте настройки ниже:

  1. Отметьте параметр \Включить сетевой адаптер, чтобы активировать его.
  2. В поле Подключено к: выберите NAT

Настройка статического IP-адреса для гостевой виртуальной машины

На этом этапе включите гостевую виртуальную машину, войдите в систему и настройте статический IP-адрес. Запустите команду ниже, чтобы отобразить все интерфейсы на гостевой машине и выделенные IP-адреса:

На снимке экрана выше видно, что на виртуальной машине включены три интерфейса:

  1. lo – петлевой интерфейс
  2. enp0s3 (адаптер 1) — для связи только с хостом, использующей DHCP, установленный на одном из предыдущих шагов, а затем настроенный со статическим IP-адресом.
  3. enp0s8 (Адаптер 2) — для подключения к Интернету. По умолчанию будет использоваться DHCP.
В Debian/Ubuntu/Linux Mint

Важно: здесь я использовал сервер Ubuntu 16.10: IP-адрес: 192.168.56.5.

Откройте файл /etc/network/interfaces в своем любимом редакторе с правами суперпользователя:

$ sudo vi /etc/network/interfaces

Используйте следующие настройки интерфейса enp0s3 (используйте здесь предпочтительные значения):

auto enp0s3 iface enp0s3 inet static address 192.168.56.5 network 192.168.56.0 netmask 255.255.255.0 gateway 192.168.56.1 dns-nameservers 8.8.8.8 192.168.56.1

Затем перезапустите сетевые службы следующим образом:

$ sudo systemctl restart networking

Либо перезагрузите систему и внимательно проверьте, использует ли интерфейс новые IP-адреса:

В RHEL/CentOS/Fedora

Важно. Для этого раздела я использовал CentOS 7: IP-адрес: 192.168.56.10.

Начните с открытия файла для enp0s3 — сетевого интерфейса только для хоста; /etc/sysconfig/network-scripts/ifcfg-enp0s3 в вашем любимом редакторе с правами суперпользователя:

$ sudo vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

Создайте/измените следующие настройки (используйте здесь предпочтительные значения):

BOOTPROTO=static ONBOOT=yes IPADDR=192.168.56.10 NETWORK=192.168.56.0 NETMASK=255.255.255.0 GATEWAY=192.168.56.1 DNS=8.8.8.8 192.168.56.1 NM_CONTROLLED=no #use this file not network manager to manage interface

Сохраните файл и выйдите. Затем перезапустите сетевую службу следующим образом (вы также можете перезагрузиться):

$ sudo systemctl restart network.service

Проверьте, использует ли интерфейс новые IP-адреса, следующим образом:

Читайте также:  Tar archive directory linux

Управление виртуальными машинами с хоста с помощью SSH

На хост-компьютере используйте SSH для управления виртуальными машинами. В следующем примере я получаю доступ к серверу CentOS 7 (192.168.56.10) с помощью SSH:

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

Источник

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-адресацию написано уже достаточно большое количество статей, поэтому на ней останавливаться не будем. Соответственно, необходимо задать адреса каждой виртуальной машине.

Читайте также:  Спо справки бк linux

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

Источник

Оцените статью
Adblock
detector