Настройка сети в Virtualbox (упрощенная)

Обычно настройка сетевых интерфейсов для новичков представляет некоторые трудности. Существующие методы настройки подразумевают использование bridge-utils и iptables.
Но можно настроить сеть и без этих утилит.
Материал честно подмотрен на virtualbox.org. Приступим.

1. Настройка модулей в хост-системе.
В первую очередь установим необходимые модули для работы с Virtualbox в нашей системе:
# modprobe -v vboxdrv
# modprobe -v vboxnetflt
# modprobe -v vboxnetadp
Если все прошло успешно, добавим эти модули в Modules файла /etc/rc.conf :
MODULES=(vboxdrv vboxnetflt vboxnetadp)
2. Запускаем Virtualbox, устанавливаем гостевую систему (в нашем случае Debian Squeeze), и приступаем к настройке выхода в интернет.
Для этого просто активируем NAT в Virtualbox.

В настройках гостевой системы настраиваем соответствующий сетевой интерфейс на получение адрема посредством DHCP.
/etc/network/interfaces:
allow-hotplug eth0
iface eth0 inet dhcp

Но это мы проделаем позже, когда сделаем запуск гостевой машины.

3. Настройка локальной сети в гостевой системе.
Теперь приступим к настройке локальной сети между хост и гостевой системами.
В Virtualbox главном меню выбираем File=>Preferences=>Network и добавляем новый хост -

После этого заходим в настройки хоста и настраиваем его параметры. Сначала отключаем назначение адреса по DHCP (снимаем галочку, позже поймем, почему)

Настраиваем статический адрес (я выбрал сеть 172.16.0.0, потому что у моего провайдера «светятся» в сети адреса класса 192.168.0.0/16)

На всякий случай конвертируем IPv4 адрес в IPv6 — это не представляет трудностей, в www полно конверторов online.
После этого заходим в настройки сетевых интерфейсов гостевой машины и добавляем еще один интерфейс в режиме Host

Заметим для себя, что мы решили присвоить своей гостевой машине локальный адрес 172.16.0.16.

Теперь в хост-системе редактируем файл /etc/hosts, добавив в него наш новый хост с алиасом, например

172.16.0.16 test.virtualdebian6.org virtudeba6
Вот поэтому нам и нужен статический адрес.
Настала пора запустить гостевую систему и провести соответствующие настройки.
После запуска системы проверяем полученные интерфейсы
#dmesg |grep -i eth
Выяснив номера интерфейсов, правим /etc/network/interfaces

И смело перезапускаем сеть на гостевой машине -
#invoke-rc.d networking restart

Если интерфейсы не подымутся (бывало и такое, не знаю, почему) — перезапускаем гостевую машину.

После перезапуска проверяем в гостевой интерфейсы -

И выход в интернет

Теперь посмотрим на нашу гостевую систему из хост-системы:
интерфейсы :
нас интересует наличие такой записи при запуске
$ ip a
vboxnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
link/ether 0a:00:27:00:00:00 brd ff:ff:ff:ff:ff:ff
inet 172.16.0.1/12 brd 172.31.255.255 scope global vboxnet0
inet6 fe80::ac10:1/64 scope link
valid_lft forever preferred_lft forever
inet6 fe80::800:27ff:fe00:0/64 scope link
valid_lft forever preferred_lft forever

Пингуем гостевую машину по имени (см. /etc/hosts) — результат:
PING test.virtualdebian6.org (172.16.0.16) 56(84) bytes of data.
64 bytes from test.virtualdebian6.org (172.16.0.16): icmp_req=1 ttl=64 time=0.597 ms
64 bytes from test.virtualdebian6.org (172.16.0.16): icmp_req=2 ttl=64 time=0.525 ms
64 bytes from test.virtualdebian6.org (172.16.0.16): icmp_req=3 ttl=64 time=0.529 ms
64 bytes from test.virtualdebian6.org (172.16.0.16): icmp_req=4 ttl=64 time=0.541 ms
64 bytes from test.virtualdebian6.org (172.16.0.16): icmp_req=5 ttl=64 time=0.523 ms

test.virtualdebian6.org ping statistics —
5 packets transmitted, 5 received, 0% packet loss, time 4000ms
rtt min/avg/max/mdev = 0.523/0.543/0.597/0.027 ms

Что и требовалось получить. Для более полной картины посмотрим на гостевую при помощи Zenmap :


И пробуем обратиться к гостевой, как к обычному серверу в сети :

Теперь наша гостевая машина имеет полный доступ в интернет, адрес в «локальной» сети, и мы можем работать с ней без проброса портов и дополнительных настроек iptables.
вопрос , а зачес 1 айпишник выдавать? Может там создается не интерфейс а сеть? просто логики не понял, дважды создавать интерфейс, а потом еще и в гостевой он сам прописывается. Боксом не пользовался , только вимарь юзал….
Лозунг у них был такой: "Познание бесконечности требует бесконечного времени". С этим я не спорил, но они делали из этого неожиданный вывод: "А потому работай не работай — все едино". И в интересах неувеличения энтропии Вселенной они не работали. (с)
ipcalc 172.16.0.0/12
Address: 172.16.0.0 10101100.0001 0000.00000000.00000000
Netmask: 255.240.0.0 = 12 11111111.1111 0000.00000000.00000000
Wildcard: 0.15.255.255 00000000.0000 1111.11111111.11111111
=>
Network: 172.16.0.0/12 10101100.0001 0000.00000000.00000000
HostMin: 172.16.0.1 10101100.0001 0000.00000000.00000001
HostMax: 172.31.255.254 10101100.0001 1111.11111111.11111110
Broadcast: 172.31.255.255 10101100.0001 1111.11111111.11111111
Hosts/Net: 1048574 Class B, Private Internet
Столько хватит? Для данного случая. Хост 172.16.0.1 создается один для всех виртуальных машин.
Опять же - это простой способ быстрой настройки, когда нужно, например, быстро посмотреть поведение сервера. А для упражнений с веб-программированием и т.п., вообще, наверное, удобное решение.
Ну и, конечно, ключевое слово - упрощенная настройка. Во всяком случае, все, что удалось найти на wiki и форумах - стоит метка - deprecated. Не спорю, с iptables покрасивее будет, но некогда…
Да нет,все верно, это лучше чем возится с фаером на сервере. Я просто только щас понял то хост 172.16.0.1 это чтото вроде виртуального Хаба в Вимаре…спс. за пояснение.
Лозунг у них был такой: "Познание бесконечности требует бесконечного времени". С этим я не спорил, но они делали из этого неожиданный вывод: "А потому работай не работай — все едино". И в интересах неувеличения энтропии Вселенной они не работали. (с)
Спасибо за разъяснения, помогло описание настройки. У меня хост система - арч, гостевая выньХП. На арче три интерфейса:
eth0 - локальная сеть провайдера
eth1 - внутренняя локальная сеть
ppp0 - ВПН к провайдеру, собственно инет :) и внешний статичный апи

Вопрос, как пробросить этот внешний апи, вместе в апишником :), на гостевую выньХП?
Дополнение:

Раньше, до вступления в силу systemd, интерфейс vboxnet в хост-системе подымался автоматически.
Теперь это не происходит.
Следующие команды подымают vboxnet (соглвсно вышеуказанного примера) :
# ip address add 172.16.0.1/24 scope host dev vboxnet0
# ip link set vboxnet0 up
# ip route add 172.16.0.0 dev vboxnet0
 
Зарегистрироваться или войдите чтобы оставить сообщение.