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