
VirtualBox Host-Only Network — представляет из себя сетевой виртуальный интерфейс, который создает сеть между хостовой машиной (host) и гостевой (VirtualBox).
Разбираемся
- Виртуальный сетевой адаптер VirtualBox Host-Only Network по умолчанию работает в сети 192.168.56.0/24, шлюз/IP-адрес адаптера — 192.168.56.1, по DHCP раздает IP-адреса гостям. Соединяет подсеть и host-систему без прямого интернет-доступа (сеть доступна для хоста и гостя).
- Когда необходимо, что бы гость прозрачно виден был в локальной сети (LAN) тогда необходимо выбирать Сетевой мост и физический сетевой адаптер, тогда если в локальной сети присутствует DHCP-сервер — гость будет автоматом получать IP-адрес, если отсутствует тогда вручную.
- Также чтобы виртуальной машине получить интернет, можно просто выбрать вариант NAT через параметры VirtualBox — программной маршрутизатор, который дает интернет на виртуальную машину. Внешне, со стороны хоста, это выглядит просто как определенный процесс VirtualBox, установил соединение с интернетом (по аналогии с VMware).

How to Set Up Host-Only Networking in VirtualBox

Надеюсь данная информация была полезной. Успехов.
Источник: virtmachine.ru
Настройка сети на платформе виртуализации Oracle VM VirtualBox
Данная статья посвящена платформе виртуализации VirtualBox, а если конкретнее, то настройке её сетевой части, т.е. обеспечения полного сетевого взаимодействия виртуальной машины и host-системы. Рассказ об установке и базовой настройке VirtualBox вы найдете в этой статье. В основном, мы будем рассматривать использование Virtual Host-Only Ethernet Adapter, применение которого позволяет обеспечить полное взаимодействие машин между собой и выход обеих во внешний мир, хотя описание настройки будет приведено для каждого типа сетевого интерфейса.
Настройка Host-части VirtualBox

В качестве host-системы в данном случае выступает операционная система Windows Vista Home Premium SP2, а качестве гостевой Windows XP Pro SP3. Как и в предыдущей статье, рассматриваться будет платформа VirualBox версии 3.2.8 r64453 (скачать). Итак, первым делом определимся с реальным подключением host-машины к сети Интернет и самое главное и нужное свойство это тип IP-адреса – статический или динамический. В настройках приложения VirtualBox через меню «File» («Файл») открываем вкладку «Network» («Сеть») и производим следующие действия. Сначала выставляем IPv4-адрес и IPv4-маску подсети (рис. 1). Рис.1: параметры адаптера. Указанные в данном случае IPv4-адрес и IPv4-маска подсети выбраны на основании следующих факторов:
- мой компьютер для подключения к глобальной сети использует один из двух сетевых адаптеров, где первый адаптер имеет статический IPv4-адрес 10.184.1.10, а второй 192.168.0.121, также статический;
- вводимый здесь IPv4-адрес обязательно должен находиться в диапазоне адресов реальных адаптеров;
- Ipv4-маска подсети должна соответствовать маске, используемой реальным адаптером (хотя бы одного из двух).
Затем включаем DHCP-сервер (независимо от того, статический или динамический IP-адрес Вашего реального сетевого адаптера), рис.2.
VirtualBox networking — NAT, NAT network, bridged network, internal network, host only network

Рис.2: параметры DНCP-сервера.
Адрес сервера также должен находиться в диапазоне адресов реальных адаптеров, IPv4-маска подсети должна соответствовать маске, используемой реальным адаптером (хотя бы одного из двух), верхняя и нижняя границы адресов должны захватывать все адреса, используемые в системе.
Сетевые настройки виртуальной машины
В настройках Settings (Настройки) установленной виртуальной машины открываем вкладку Network (Сеть) и производим следующие действия:
- Включаем адаптер Host-only adapter;
- Включаем адаптер NAT;
- Включаем адаптер Bridge Adapter и для него выбираем Ваш реальный интерфейс сети Интернет, но т.к. речь идет о настройке именно для Virtual Host-Only Ethernet Adapter, то пока не важно, что там выбрано;
- Включаем адаптер Internal Network;
- Для каждого адаптера выбираем тип сетевой карты PCnet-Fast III (Am79C973), т.к. операционная система Windows XP, установленная гостевой, поддерживает только этот адаптер;
- В настройках каждого адаптера ставим флаг о подключении кабеля.
Теперь кратко поясню по каждому адаптеру:
- NAT – наипростейший способ предоставить гостевой ОС доступ в интернет, при таком режиме осуществляется просто перенаправление (транзакции) пакетов;
- Bridge Adapter — сетевой адаптер виртуальной машины получает такой же доступ в сеть, как и сетевой адаптер host-машины, но нет доступа во внешний мир;
- Internal Network — внутренняя сеть для объединения виртуальных машин в локальную сеть, без наружу и к host-машине;
- Host-only adapter — Ваша виртуалка как живая, она имеет доступ к сети Интернет, находится в одной локальной сети с реальной и имеет к ней доступ.
Настройка сетевого моста и шлюза Интернет
Теперь открываем папку «Сетевые подключения», с помощью клавиши «Ctrl» выделяем реальное подключение к сети интернет и VirtualBox Host-Only Network, созданный программой VirtualBox, и через контекстное меню правой кнопки мыши выбираем пункт «Сетевой мост». После этого это соглашаемся с сообщением о том, что данному адаптеру (сетевому мосту) присвоен адрес шлюза 192.168.0.1.
Примечание. Если Вы решили ограничиться сетевым интерфейсом NAT или Bridge, то сетевой мост Вам не нужен и эту часть настроек Вы можете пропустить.
В папке «Сетевые подключения» должна быть следующая картина:
Рис.3: «Сетевые подключения»
Но это еще не все, открываем «Карту сети» и видим там следующее:

Рис.4: «Карта сети»
И самое теперь самое неприятное — у нас пропало подключение к Интернету. Для того чтобы привести положение дел в порядок, нужно настроить сетевой мост, рис.5:

Рис.5: Настройка сетевого моста
Для IPv4-адреса используем любой адрес из установленного ранее диапазона адресов в DHCP-сервере VirtualBox, маску подсети берем ту же, шлюз уже выставлен, а адрес DNS-сервера выставляем таким же, как и адрес шлюза. Применяем настройки, нажимая кнопку OK.
Примечание. Если Ваш реальный сетевой адаптер использует динамический IPv4-адрес, то в настройках сетевого моста, а также для всех сетевых интерфейсов виртуальной машины (их настройки будут приведены далее) следует выбрать пункт «Получить IP-адрес автоматически», но в случае отсутствия подключения к интернету Вам следует произвести настройки, указанные для статического IP-адреса.
Снова открываем «Карту сети» и теперь видим там следующее, рис.6:
Рис.6: «Карта сети» после настройки сетевого моста
Примечание. Возможно, что у Вас в «Карте сети» элемент коммутатор отображаться не будет, но это не важно, а важно то, что наше подключение к Интернету снова активно!
Настройка сетевых подключений виртуальной машины
Теперь пора заняться настройками виртуальной машины, для чего запускаем её и переходим к папке «Сетевые подключения», рис.7.

Рис.7: «Сетевые подключения» виртуальной машины
Все созданные подключения на месте – давайте настроим каждое из них, для этого щелкнем правой кнопкой мыши на интерфейсе и в контекстном меню выберем пункт «Свойства»:
- Для адаптера Virtual Host-Only Ethernet Adapter:
Рис.8: Virtual Host-Only Ethernet Adapter - Для адаптера NAT Ethernet Adapter просто выставляем получить IP- адрес автоматически;
- Для адаптера Intranet Ethernet Adapter:
Рис.9: Intranet Ethernet Adapter - Для адаптера Bridge Ethernet Adapter:

Рис.10: Bridge Ethernet Adapter
Примечание. Обратите внимание, что все использованные IPv4-адреса берутся из установленного ранее диапазона адресов в DHCP-сервере VirtualBox, при этом используется диапазон от адреса шлюза (192.168.0.1) до верхней границы адресов. Ни в коем случае не выставляйте адреса, не входящие в указанную область. Например, адаптер виртуальной машины с установленным для него IP-адресом 192.167.0.111 не позволит Вам подключиться настраиваемой сети. Адреса маски подсети, шлюза и DNS-сервера соответствуют адресам, заданным для сетевого моста для host-машины.
После того, как Вы произвели все указанные операции, в системном лотке появится уведомление «Интернет сейчас подключен», но это мы проверим в самом конце.
Настройка рабочих групп
После проведенных нами операций перезагружаем сначала виртуальную машину, а затем и host-машину. После того как наша реальная операционная система загрузилась, запускаем VirtualBox и включаем нашу виртуальную машину и на host-машине (Windows Vista) открываем «Карту сети»:
Рис.11: «Карта сети» после настроек виртуальной машины
Тут мы видим host-машину (HPPavilion-PC) и подключенную через два адаптера (Bridge Ethernet Adapter и Virtual Host-Only Ethernet Adapter) виртуальную машину (Virtual-PC). Для большей наглядности на изображении приведены краткие комментарии.
Самое главное – мы видим наши обе машины, то же самое можно определить, запустив сеанс командной строки на обеих машинах и выполнив в нем команду net view. На изображении ниже (рис.12) приведены результаты отработки данной команды – справа для Windows Vista, слева для Windows XP.
Рис.12: Результат выполнения команды net view
Теперь определимся с рабочими группами – в сети Интернет часто приводится некое требование, согласно которому обе машины должны находиться в одной рабочей группе, но это не так. В нашем случае рабочие группы разные, т.к. по умолчанию ОС Windows XP включена в Workgroup, а Windows Vista в MShome.
Чтобы увидеть, что это означает, перейдем в папку «Сетевое окружение» на нашей виртуальной машине. В данном расположении мы видим две рабочие группы — Workgroup и MShome:
Рис.13: Разные рабочие группы
Откроем рабочую группу MShome и увидим нашу host-машину (HPPavilion-PC).

Рис.14: Рабочая группа MShome и host-машина (HPPavilion-PC).
Вернемся на шаг назад и откроем рабочую группу Workgroup, в ней мы увидим нашу виртуальную машину (Virtual-PC).

Рис.15: Рабочая группа Workgroup и виртуальная машина (Virtual-PC).
Несмотря на то, что все работает, перенесем Virtual-PC, т.е. нашу виртуальную машину, в ту же рабочую группу, что и host-машина (HPPavilion-PC). Для этого откроем свойства Мой Компьютер, перейдем на вкладку «Имя компьютера» и нажмем кнопку «Изменить». В открывшемся окне в поле «Рабочая группа» введем имя рабочей группы, в которой состоит реальная машина (в нашем случае MShome), чтобы увидеть результат перейдем в папку «Сетевое окружение» обеих машин и убедимся, что обе станции находятся в одной рабочей группе.
Посмотрим, что у нас получилось сначала на нашей виртуальной машине Windows XP:

Рис.16: Общая рабочая группа на виртуальной машине
А теперь на host-машине Windows Vista:

Рис.17: Общая рабочая группа на host-машине
Завершение настройки
Конечно, использовать все четыре адаптера в виртуальной машине нет никакого смысла, поэтому мы оставляем только один, но самый нужный — Virtual Host-Only Ethernet Adapter. Для этого на нашей виртуальной машине откроем папку «Сетевые подключения» и отключим ненужные нам интерфейсы. Дополнительно проверим, сохранились ли настройки указанного адаптера, выполнив команду ipconfig в окне командной строки. На изображении ниже приведен вид папки «Сетевые подключения», в которой мы обязательно должны видеть все наши четыре адаптера и Шлюз Интернета, который должен находиться в подключенном состоянии.
Рис.18: Окончательная конфигурация сетевого интерфейса.
Для того чтобы удостовериться, что подключение к Интернету действительно активно, снова откроем окно командной строки и выполним команду ping для узла ya.ru, результат вывода команды должен быть таким:

Рис.19: Вывод команды ping
Таким образом, все работает, взаимодействует, находится в одной сети, и обе машины имеют доступ к глобальной сети.
Примечание. Если при запуске Вашей host-машины или виртуальной машины Вы обнаружили, что на одной из них или на обеих отсутствует подключение к Интернету, следует проверить настройки Вашего сетевого моста, как правило, проблема заключается в отсутствии записи адреса основного шлюза и решается вводом оного (198.162.0.1).
Упрощаем функцию проверки
Для того чтобы каждый раз не открывать «Сетевые подключения», «Сетевое окружение» или «Карту сети», можно воспользоваться простеньким сценарием Windows Sript Host, написанном на языке Vbscript (скачать).
При запуске сценария Вы увидите сообщение, содержащее имя Вашей рабочей группы и список находящихся в ней машин:

Рис.20: Перечень рабочих станций
Заключение
Напоследок хотелось бы отметить, что платформа виртуализации Oracle VM VirtualBox очень удобна в использовании (уже хотя бы потому, что имеет полностью русский интерфейс), интуитивно понятна, очень скромно потребляет ресурсы ПК. Данная программа является очень гибким и функциональным инструментом для проведения экспериментов, как в рамках локальной машины, так и сетевого взаимодействия между удаленными рабочими станциями, с установленными на них различными операционными системами. Также следует отметить возможность использования виртуальных машин, построенных на данной платформе, в качестве RDP-серверов (серверов удаленного рабочего стола), что позволяет абсолютно безопасно разрешать подключения удаленных мониторов, например, для открытых интерактивных трансляций.
Источник: www.oszone.net
Кластер, который всегда с собой

Захотелось странного.
Во-первых, взгромоздить кучу виртуальных машин прямо на свой ноутбук.
А во-вторых, раскурить одну виртуализацию внутри другой.
Речь пойдет про использование контейнеров LXC, причем внутри другой виртуальной машины.
WTF! На кой это нужно?
- Распределенные базы данных, файловые системы, параллельные вычисления и т.д.
- Системы управления инфраструктурой (типа Chef, Puppet, Fabric и т.п.)
- Тестирование и сборка в разных окружениях
- Ваш вариант (пишите в комментариях)
Думаю, эта заметка будет полезна как тем, у кого на десктопе Windows или Mac OS X, так и тем, у кого Linux (часть про LXC).
Задача
Запустить на среднем ноутбуке 10-20 виртуальных машин, которые
– могут ходить в интернет (через NAT)
– видят друг друга и хост-компьютер (то есть, наш ноут)
– доступны с хост-компьютера (то есть по ssh можно зайти на любую из этих виртуальных машин)
Решение
- На компьютере (с Windows или Mac OS X) запустить VirtualBox
- Установить на нем Linux
- Внутри Linux-а наделать кучу LXC-контейнеров с независимыми Linux-ами
1. Устанавливаем VirtualBox и систему на виртуальную машину
Здесь особо и описывать нечего.
После установки системы — не забыть поставить Guest Additions.
2. Настраиваем сетевые интерфейсы в VirtualBox
- Тип подключения NAT (он создается по умолчанию). Через него наши виртуалки смогут ходить в интернет (например, чтобы скачивать пакеты).
- Тип подключения Host-only networking (по-русски это называется «Виртуальный адаптер хоста»).
Важно! Нужно разрешить «Promiscuous mode» («Неразборчивый режим») на Host-only интерфейсе. Это позволит контейнерам видеть хост-машину и друг друга.

3. Настраиваем сетевые интерфейсы
auto eth0 iface eth0 inet dhcp
auto br0 iface br0 inet dhcp bridge_ports eth0 bridge_fd 0 auto br1 iface br1 inet static address 192.168.56.2 netmask 255.255.255.0 bridge_ports eth1 bridge_fd 0
Перезапускаем виртуальную машину чтобы убедиться, что оба интерфейса внутри виртуальной машины поднимаются, сама виртуальная машина доступна по адресу 192.168.56.2 (через Host-only интерфейс) и внутри неё доступен интернет (через NAT-интерфейс).
4. Монтируем файловую систему cgroup
Для работы LXC-контейнеров нужна служебная файловая система cgroup. Точка монтирования не важна — можно смонтировать куда угодно.
Добавляем строчку в /etc/fstab:
cgroup /var/local/cgroup cgroup defaults 0 0
и монтируем
mkdir /var/local/cgroup mount cgroup
| В Ubuntu 11.10 (oneiric) cgroup руками монтировать не нужно. Пакет lxc зависит от пакета cgroup-lite, который монтирует cgroup в /sys/fs/cgroup/ |
5. Устанавливаем пакеты для работы с LXC
apt-get install lxc apt-get install debootstrap
Пакет lxc содержит утилиты для управления и скрипты для создания контейнеров. Пакет debootstrap — это утилита, которая скачивает нужные пакеты и разворачивает минимальную базовую систему (ubuntu или debian). Кроме того, есть пакет febootstrap — он скачивает и разворачивает Fedora.
| Самый быстрый способ изучить lxc: набрать lxc- и нажать два раза «Tab» |
6. Создаем первый LXC-контейнер
В каталоге /usr/lib/lxc/templates/ есть файлы вида lxc-debian , lxc-natty, lxc-oneiric , lxc-fedora и т.п. Это так называемые «шаблоны». На самом деле это скрипты, которые создают соответствующее рабочее окружение.
Создаем контейнер (c Ubuntu 11.04)
lxc-create -n node01 -t natty
Наш контейнер появится в каталоге /var/lib/lxc/node01/.
Во создаваемом окружении у пользователя root пароль «root». Не забудьте поменять!
| В Ubuntu 11.10 (oneiric) пакет lxc посвежее: шаблону «ubuntu» можно передать параметры, в том числе желаемую версию дистрибутива. Чтобы узнать, какие параметры принимает шаблон, выполните lxc-create —template ubuntu —help |
7. Настраиваем сеть в контейнере
7.1. Сетевые интерфейсы
В конфигурационном файле контейнера не хватает параметров сети – их нужно добавить руками. Потом можно будет использовать шаблонный конфиг или просто клонировать контейнер.
vi /var/lib/lxc/node01/config
и добавляем такие строчки (ставим нужные нам MAC- и IP-адреса):
lxc.network.type = veth lxc.network.flags = up lxc.network.link = br0
Здесь 10.0.2.101/24 – это сеть, которая обычно используется для NAT-интерфейсов в VirtualBox. Через этот интерфейс контейнер будет выходить в интернет.
192.168.56.101/24 – это наша Host-Only сеть. Через этот интерфейс контейнер будет общаться с локальной сетью и другими контейнерами.
Рекомендую устанавливать MAC-адрес и IP-адрес вручную. Это делать не обязательно, но удобно. Например, когда нужно послушать сетевой трафик. Я во всех номерах ставлю одинаковую последнюю цифру (node01 – 10.0.2.101 – ac:de:48:00:00:01).
Обратите внимание, файл конфигурации интерфейсов /etc/network/interfaces внутри контейнера не нужно трогать. Интерфейсы достаточно настроить снаружи.
7.2. DNS в контейнере
Добавляем что-нибудь осмысленное в /etc/resolv.conf, чтобы заработал DNS:
echo «nameserver 8.8.8.8» > /var/lib/lxc/node01/rootfs/etc/resolv.conf
Для локального разрешения адресов можно обойтись /etc/hosts. Файл /etc/hosts можно сделать общим для всех контейнеров, если смонтировать его с опцией bind.
8. Запускаем и проверяем контейнер
Запускаем контейнер
lxc-start —logfile /tmp/lxc-node01.log —logpriority DEBUG —name node01
Заходим (root/root) и проверяем, что сеть доступна во все стороны.
| Чтобы запустить контейнер в фоновом режиме надо добавить ключ «—daemon» |
9. Клонируем контейнеры
Для клонирования контейнеров достаточно скопировать его целиком
cp -a node01 node02
и поправить конфигурационные файлы (пути, MAC- и IP-адреса):
vi node02/config vi node02/fstab vi node02/rootfs/etc/hostname
| Начиная с версии lxc 0.7.5 появилась утилита lxc-clone. Она корректно правит пути и hostname, но IP-адреса все равно нужно отредактировать руками |
10. Автозапуск контейнеров
В пакет lxc входит скрипт /etc/init.d/lxc, который запускает определенные контейнеры при старте системы. В файле /etc/default/lxc нужно перечислить, какие контейнеры запускать. Этот скрипт ожидает, что конфигурационные файлы контейнеров лежат в /etc/lxc и имеют расширение *.conf.
Я просто наделал симлинков:
/var/lib/lxc/nodeXX/config -> /etc/lxc/nodeXX.conf
11. Как еще можно облагородить эту кухню
- Написать скрипты, которые автоматизируют рутину по созданию контейнеров (шаблонный конфиг, установка IP-адресов, создание пользователей, настройка ssh по ключам и т.п.)
- Установить прокси apt-cacher-ng, чтобы не качать одни и те же пакеты по нескольку раз
- Смонтировать каталоги и файлы (с помощью опции bind), так чтобы некоторые файлы были общими
- Поставить контейнеры под управление libvirt (Я не пробовал. Возможно, это тема для отдельной заметки)
- Попробовать aufs для запуска “наложенных” (overlay) контейнеров, когда неизменяемые файлы могут быть общими для всех контейнеров (а также утилиту lxc-start-ephemeral).
Источник: habr.com