Совсем недавно вышла новая версия этого замечательного дистрибутива, а ещё раньше обновилась бесплатная кроссплатформенная программа для управления виртуальными машинами — VirtualBox. Теперь это ветка под номером 2, ну а самая последняя (на сегодняшний день) версия за номером 2.0.4.
Для тех кто не знает, что такое VirtualBox и зачем он нужен отправляю прямиком в википедию.
В этой статье я расскажу как настроить сеть на виртуальной машине в режиме сетевого моста (bridge) в ОС Линукс.
Итак исходные данные:
- ОС установленная на компьютер (хостовая) — Linux Ubuntu 8.10
- VirtualBox 2.0.4 (проприетарная) с установленной в нём гостевой ОС WindowsXP SP3. (Можно было использовать и открытую версию VirtualBox которая присутствует в репозитории Ubuntu, но мне больше нравится бесплатная, проприетарная)
- Желание включить гостевую ОС в ЛВС к которой подключен хостовый компьютер.
Небольшое отступление. Сеть в VirtualBox, по умолчанию работает в режиме NAT драйвера. Это значит, что все пакеты из виртуальной машины будут отправляться в сеть с адресом хостовой машины. Этот режим накладывает некоторые ограничения на работу некоторых сетевых программ. В частности не работает протокол icmp, а это значит, что такие программы как trace и ping тоже не работают. Тем не менее для многих случаев вам может хватить этого режима. Например совершенно спокойно можно бороздить бескрайние просторы интернета или читать e-mail. Меня это не устраивало потому, что необходимо было запустить в виртуальной машине программу для мониторинга сети, которая никак не хотела запускаться в wine. Программа работала именно по протоколу icmp для отслеживания доступности хостов в сети.
Настраиваем режим моста для Virtualbox.
Шаг 1.
Устанавливаем необходимые утилиты для работы с мостом в Линукс:
sudo apt-get install uml-utilities bridge-utils
Шаг 2.
Останавливаем сетевые интерфейсы:
sudo invoke-rc.d networking stop
Шаг 3.
Редактируем файл интерфесов /etc/network/interfaces следующим образом:
sudo gedit /etc/network/interfaces
Содержимое файла должно быть примерно таким:
auto lo iface lo inet loopback auto eth0 iface eth0 inet manual auto br0 iface br0 inet static address 10.10.20.77 netmask 255.255.255.0 gateway 10.10.20.1 bridge_ports eth0 vbox0 bridge_fd 9 bridge_hello 2 bridge_maxage 12 bridge_stp off
Здесь конфигурируется интерфейс br0 со статическим адресом, если необходим динамический адрес получаемый по DHCP, то используйте следующий код:
auto lo iface lo inet loopback auto eth0 iface eth0 inet manual auto br0 iface br0 inet dhcp bridge_ports eth0 vbox0 bridge_fd 9 bridge_hello 2 bridge_maxage 12 bridge_stp off
Шаг 4.
Перезапустите сетевые интерфейсы командой:
sudo /etc/init.d/networking restart
Подпишись на наш канал в Telegram или VK - первым узнавай о бесплатных вебинарах и курсах, а так же скидках на платное обучение.
Шаг 5.
Создадим на хостовой машине виртуальный интерфейс для подключения виртуальной машины:
sudo VBoxAddIF vbox0 `whoami` br0
Шаг 6.
Добавим созданный ранее интерфейс в виртуальную машину:
VBoxManage modifyvm "My VM" -hostifdev1 vbox0
My VM — это название вашей виртуальной машины.
Шаг 7.
Добавляем необходимые права:
sudo chmod 0666 /dev/net/tun
Шаг 8.
Убедитесь в свойствах виртуальной машины в разделе сеть установлены параметры как на скриншоте:
На этом процедура настройки закончена, можно смело запускать гостевую ОС в виртуальной машине и настраивать сетевые параметры в соответствии с настройками вашей сети.
UPD (01.08.2012)
С большим опозданием, но всё же. В последних версиях VirtualBox настройка сети в редиме моста значительно упростилась под любой операционной системой и выглядит следующим образом: