Настройка сетевого доступа для VirtualBox окружения в Ubuntu/Debian Linux |
[исправить] |
В простейшем случае работу сети внутри гостевой системы в VirtualBox можно обеспечить через NAT.
Достаточно выбрать тип эмуляции сетевого интерфейса - NAT, а в гостевой ОС получить IP по DHCP или
установить вручную из диапазона 10.0.2.0/24, шлюз 10.0.2.2, DNS 10.0.2.3.
Для проброса портов из вне можно использовать:
VBoxManage setextradata "freebsd" "VBoxInternal/Devices/e1000/0/LUN#0/Config/guestssh/Protocol" TCP
VBoxManage setextradata "freebsd" "VBoxInternal/Devices/e1000/0/LUN#0/Config/guestssh/GuestPort" 22
VBoxManage setextradata "freebsd" "VBoxInternal/Devices/e1000/0/LUN#0/Config/guestssh/HostPort" 2222
где, "freebsd" - это имя виртуальной машины, а e1000 тип эмулируемой карты
(можно посмотреть в VBox.log).
Заходя на 2222 порт хостовой машины мы будем переброшены на 22 порт виртуального окружения.
Для обеспечения полноценного сетевого окружения для виртуального сервера
необходимо поднять виртуальный сетевой интерфейс.
Устанавливаем пакеты:
sudo apt-get install uml-utilities bridge-utils
Настраиваем бриждинг, редактируем /etc/network/interfaces в случае если IP
хост-система получает динамически (DHCP):
auto eth0
iface eth0 inet manual
auto br0
iface br0 inet dhcp
bridge_ports eth0 vbox0
# The loopback network interface
auto lo
iface lo inet loopback
eth0 - сетевой интерфейс, br0 - создаваемый бридж, vbox0 - имя устройства,
используемого в VirtualBox
Если виртуальных окружений несколько, можно написать:
bridge_ports eth0 vbox0 vbox1 vbox2 vbox3 vbox4
В случае со статическим IP настройки примут вид:
auto eth0
iface eth0 inet manual
auto br0
iface br0 inet static
address 192.168.0.100
netmask 255.255.255.0
gateway 192.168.0.1
bridge_ports eth0 vbox0 vbox1
# The loopback network interface
auto lo
iface lo inet loopback
При использовании статического IP в eth0, его настройки должны совпадать с br0
Перезапускаем сетевую подсистему:
sudo /etc/init.d/networking restart
В сетевых настройках VirtualBox определяем виртуальные интерфейсы.
Для этого редактируем файл /etc/vbox/interfaces:
# Each line should be of the format :
# <interface name> <user name> [<bridge>]
vbox0 <your user name> br0
vbox1 <your user name> br0
Перезапускаем virtualbox для принятия изменений:
Для OpenSource версии:
sudo /etc/init.d/virtualbox-ose restart
Для проприетарной сборки:
sudo /etc/init.d/vboxnet restart
Не забываем убедиться в наличии прав доступа на чтение и запись для
пользователей группы vboxusers для устройства /dev/net/tun
sudo chown root:vboxusers /dev/net/tun
sudo chmod g+rw /dev/net/tun
Чтобы права автоматически установились после перезагрузки в
/etc/udev/rules.d/20-names.rules меняем
KERNEL=="tun", NAME="net/%k"
на
KERNEL=="tun", NAME="net/%k", GROUP="vboxusers", MODE="0660"
В настройках VirtualBox для гостевого окружения выбираем "host networking" указав имя
созданного виртуального интерфейса, а внутри оргужения ставим IP из
представленного на интерфейсе диапазона адресов (192.168.0.x).
Вручную отдельный TUN интерфейс без бриджинга можно поднять используя tunctl из
пакета uml-utilities:
tunctl -t vbox0 -u имя_текущего_пользователя
ifconfig vbox0 192.168.0.254 up
route add -host 192.168.0.253 dev vbox0
echo 1 > /proc/sys/net/ipv4/conf/vbox0/proxy_arp
arp -Ds 192.168.0.253 eth0 pub
С бриджем:
brctl addbr br0
ifconfig eth0 0.0.0.0 promisc up
ifconfig vbox0 0.0.0.0 promisc up
ifconfig br0 192.168.0.1 netmask 255.255.255.0 up
brctl stp br0 off
brctl setfd br0 1
brctl sethello br0 1
brctl addif br0 eth0
brctl addif br0 vbox0
|
|
|
|
Раздел: Корень / Безопасность / Виртуализация - Xen, OpenVZ, KVM, Qemu |