воскресенье, 24 марта 2013 г.

NAT для VirtualBox с возможностью прямого доступа к виртуальным машинам с хоста

Когда создавал новую виртуальную машину в Virtualbox (Ubuntu 12.04 LTS) решил спрятать его за NAT в виртуальной сети, но таким образом чтобы иметь возможность достучаться до него напрямую через SSH.
Для этой цели поднял виртуальный сетевой интерфейс, настроил NAT, настроил раздачу айпи и обработку DNS-запросов создаваемой виртуальной сети:

  1. Устанавливаем пакет uml-utilities с утилитой для создания интерфейса tap0
    $ sudo apt-get install uml-utilities
    В файл «/etc/network/interfaces» добавляем описание нового интерфейса
    auto tap0
    iface tap0 inet static
            address 10.0.55.1
            netmask 255.255.255.0
     pre-up /usr/sbin/tunctl -t tap0
     post-down /usr/sbin/tunctl -d tap0
    Поднимаем новый интерфейс
    $ sudo ifup tap0
  2. Теперь настраиваем NAT. Для этой цели используем идущее с системой средство настройки брандмауэра ufw. Редактируем файл «/etc/ufw/before.rules» и добавляем в самом начале строки
    *nat
    :POSTROUTING ACCEPT [0:0]
    -F POSTROUTING
    -A POSTROUTING -s 10.0.55.0/24 -j MASQUERADE
    COMMIT
    Редактируем файл «/etc/default/ufw» и меняем следующие параметры
    DEFAULT_INPUT_POLICY="ACCEPT"
    DEFAULT_OUTPUT_POLICY="ACCEPT"
    DEFAULT_FORWARD_POLICY="ACCEPT"
    Запускаем ufw
    $ sudo ufw enable
  3. Чтобы каждый раз вручную не прописывать айпишники днс-сервера вновь созданным виртуальным машинам устанавливаем dnsmasq
    $ sudo apt-get install dnsmasq
    В файл конфигурации «/etc/dnsmasq.conf» добавляем следующие строки
    # Слушаем порты только на указанном интерфейсе
    bind-interfaces
    # Слушаем на созданном нами интерфейсе
    interface=tap0
    # Не слушаем на локальном интерфейсе. Там как правило слушает запущенный Netwok Manager процесс dnsmasq
    except-interface=lo
    # Диапазон раздаваемых по DHCP адресов виртуальным машинам.
    dhcp-range=10.0.55.10,10.0.55.200,72h
    # Домен создаваемой сети
    domain=virtual
    Запускаем dnsmasq с новыми настройками
    $ sudo service dnsmasq stop
    $ sudo service dnsmasq start

2 комментария:

f-andrey комментирует...

Или я чего то не понимаю, или это стрельба из пушки по воробьям, там же есть host-only "адаптеры"

Lincoln Madison комментирует...

Business Phone Service is an economical communication solution for small businesses. The small business phone systems eliminate the need for appointing additional workforce for managing telephone calls.