Internal network virtualbox linux

Настройка сети 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 обратно достаточно открыть настройки нужной машины:

Читайте также:  Linux установка пакетов python

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

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

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

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

Теперь вернитесь к списку виртуальных машин, зайдите в настройки машины, «Сеть»:

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

Для всех машин, которые вы хотите объединить в одну сеть нужно выбирать один и тот же адаптер хоста. Если вы захотите добавить машинам также доступ в интернет, просто перейдите на вкладку «Адаптер 2», включите его и настройте NAT, как описано в первом пункте.

4. Настройка сетевого моста VirtualBox

Режим сетевого моста позволяет виртуальной машине выступать в роли реального сетевого устройства с отдельным ip адресом. Чтобы это настроить откройте это же меню — настойки виртуальной машины, затем «Сеть». Здесь выберите «Тип подключения»«Сетевой мост»:

Читайте также:  Разрешения для папки линукс

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

5. Внутренняя сеть VirtualBox

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

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

Выводы

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

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Источник

Building an Internal Network in VirtualBox

The aim is to create a (virtual) Internet of 3 Linux VMs within VirtualBox using internal networking, and also allow those VMs access to the real Internet via NAT. The final network configuration is:

VirtualBox topology

You may use different IP addresses, but be sure to make the corresponding changes in /etc/network/interfaces.

A 32 minute video demonstrating and explaining the steps below is also available:

Create a Base Linux Machine

Setup a base Linux machine using NAT networking (NOT using bridged or internal networking). Install any software that is necessary on all machines, e.g.

sudo apt install openssh-server man manpages manpages-dev nano
sudo apt update
sudo apt upgrade

Clone Base to Client, Router and Server

Create full clones of the base VM to produce three (3) machines, referred to as client, router and server. Be sure to re-initialise the MAC address for each.

Enable Internal Networking

The client VM must have two (2) network adapters, one using NAT and the other using an internal network, e.g. named neta.

The router VM must have three (3) network adapters: NAT, internal network neta, and internal network netb.

The server VM must have two (2) network adapters: NAT and internal network netb.

Below are screenshots of the settings for router adapter 1 (NAT) and router adapter 3 (internal). Settings for other machines/adapters are similar.

VirtualBox Network Settings for Router Adapter 1 using NATVirtualBox Network Settings for Router Adapter 3 using Internal Network netb

Set the Hostnames

Start each VM and set the hostname using:

sudo hostnamectl set-hostname 
sudo vi /etc/hosts

In the hosts file, change the name for 127.0.1.1 to , where is either client, router or server.

Читайте также:  Linux find string in folder

Configure Interfaces

In each VM, edit /etc/network/interfaces to setup static IP addresses for the internal interfaces. Be sure that the interface names are correct as in the example by running:

Client

Add the following to /etc/network/interfaces:

# The internal interface on neta
auto enp0s8
iface enp0s8 inet static
address 192.168.1.11
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
post-up route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1 dev enp0s8
pre-down route del -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1 dev enp0s8

Router

Add the following to /etc/network/interfaces:

# The internal interface on neta
auto enp0s8
iface enp0s8 inet static
address 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255

# The internal interface on netb
auto enp0s9
iface enp0s9 inet static
address 192.168.2.2
netmask 255.255.255.0
network 192.168.2.0
broadcast 192.168.2.255

Server

Add the following to /etc/network/interfaces:

# The internal interface on netb
auto enp0s8
iface enp0s8 inet static
address 192.168.2.22
netmask 255.255.255.0
network 192.168.2.0
broadcast 192.168.2.255
post-up route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.2.2 dev enp0s8
pre-down route del -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.2.2 dev enp0s8

Enable Forwarding on the Router

and uncomment (remove the hash #) the line referring to ip_forward to be:

The output of /etc/hosts and /etc/sysctl.conf for both client and router is illustrated below.

/etc/hosts and /etc/sysctl.conf for client and router

Reboot the VMs

Test the Internal Network

Use ping to test the internal network:

  • From client, ping 192.168.1.1
  • From client, ping 192.168.2.2
  • From client, ping 192.168.2.22

If all pings work, then the internal network is working successfully. You may also test by SSHing from client to server.

Test the Real Internet

Each VM should still have access to the real Internet. Test by pinging an external website, e.g. ping www.google.com, or installing software with sudo apt install . .

Port Forwarding

Each VM should have port forwarding for SSH enabled on the NAT adapter. However it is important that the Host Port is different for each VM, e.g. 5022, 5023, 5024 for client, router, server, respectively. Then you can connect to each VM (with PuTTY or FileZilla) at the same time, simply by specifying a different port. The image below shows the port forward settings on the router NAT adapter 1 — the red circled Host Port should be different than that of client and server.

Port Forwarding on Router

Create More Servers

To create more servers, simply clone the server (or clone the base and setup as per the server), but ensuring they have different names when setting the hostname and IP addresses in /etc/network/interfaces. E.g. instead of server and 192.168.2.22, set to webserver/192.168.2.22, sshserver/192.168.2.23, fileserver/192.168.2.24. If they all have internal network on netb, then they are all in the same (virtual) LAN.

Created on Tue, 22 May 2018, 3:54pm

Last changed on Thu, 16 Aug 2018, 8:43am

Источник

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