Назначьте статический IP-адрес гостю VirtualBox с сетью NAT без доступа к гостю

489
Mohamed Laradji

Я использую VirtualBox 5.2.18 на сервере Ubuntu 18.04. У меня есть несколько гостевых машин VirtualBox, использующих сеть NAT intnet. В настоящее время intnetимеет DHCP-сервер (настроенный VirtualBox), который автоматически присваивает гостям динамические IP-адреса. Это работает нормально, но я бы хотел, чтобы DHCP-сервер назначал статические IP-адреса конкретным гостям на основе MAC-адреса их сетевого интерфейса. Статические IP-адреса могут быть установлены внутри гостей, но это требует времени и зависит от гостевой ОС. Есть ли способ в VirtualBox назначать статические IP-адреса гостям?

В папке установки VirtualBox находится исполняемый файл VBoxNetDHCP. Судя по выходным данным VBoxNetDHCP, он позволяет назначать статические IP-адреса по MAC-адресу. Я не могу заставить это работать, хотя, и документация для этого фактически отсутствует.

0
Когда я делаю это, я использую другую маленькую виртуальную машину для предоставления DHCP, DNS для поддельного домена и т. Д. Для моей внутренней сети. Используя Debian 9, вы можете использовать 128 МБ оперативной памяти и, возможно, 1,5 ГБ дискового пространства после установки. ivanivan 5 лет назад 2
Я склоняюсь к этому, @ivanivan. У вас есть учебник под рукой? Mohamed Laradji 5 лет назад 0
Я отправлю это как ответ, дай мне несколько ... ivanivan 5 лет назад 0

1 ответ на вопрос

0
ivanivan

Обычно, когда я делаю такие вещи (и я делаю это много), я склонен использовать виртуальную машину, действующую как сетевой сервер, который выполняет такие вещи, как DHCP, DNS - и кеширование для всего мира, и локальное подделывание fake.tld- и т. Д.

Самый простой способ - выполнить базовую, чистую установку Debian с помощью образа netinstall - выберите ни одну из групп пакетов, кроме опции ssh-сервера и, возможно, «стандартных утилит».

После того, как он запущен и работает, чтобы превратить его в DHCP-сервер для вашей внутренней сети виртуальных машин, установите isc-dhcp-serverпакет. Затем отредактируйте/etc/dhcp/dhcpd.conf

Вот простой пример из моего. Это устанавливает короткое время аренды (5 минут), устанавливает клиентский поисковый домен и т. Д. На «fake.tld», указывает их DNS-запросы на 192.168.1.2 и выдает адреса в диапазоне 10.99.98.80-100 с 24 биты сетевой маски. Обратите внимание, что для этой виртуальной машины должен быть настроен адаптер с IP-адресом в подсети 10.99.98.0/24.

В дополнение к общему пулу я даю устройству с 80:c1:6e:2b:b6:cdявно заданным IP- адресом MAC-адрес (а также любой другой optionиспользуемый DNS-сервер, шлюз и т. Д.) Для .110ip. Любая такая «статическая аренда» должна быть для адресов вне вашего динамического диапазона, но внутри подсети, настроенной как в файле конфигурации, так и на сетевом адаптере машины, на которой размещается служба.

Когда вы добавляете новый хост и хотите, чтобы у него был определенный IP, просто добавьте другой раздел хоста - имя хоста не должно совпадать с тем, что отправляет клиент, но оно должно быть уникальным в файле. После добавления перезапустите сервисservice isc-dhcp-server restart

ddns-update-style none; option domain-name "fake.tld"; option domain-name-servers 192.168.1.2; option domain-search "fake.tld"; default-lease-time 600; max-lease-time 720; authoritative; log-facility local7;  subnet 10.99.98.0 netmask 255.255.255.0{ range 10.99.98.80 10.99.98.100; option routers 10.99.98.1; }  host lr-tv { hardware ethernet 80:c1:6e:2b:b6:cd; fixed-address 10.99.98.110; option routers 10.99.98.1; option domain-name-servers 192.168.1.2; } 
Это сработало для меня, за исключением того, что: 1. Моя виртуальная машина DHCP использует `Ubuntu Server` (который основан на` Debian`) вместо `Debian`. Я установил тот же пакет `isc-dhcp-server`. 2. Моя внутренняя сеть (`intnet` в моем вопросе) -` 192.168.1.0 / 24`, и я использовал `option router 192.168.1.1;` и `option domain-name-server 192.168.1.1;`. Я смог сказать, какой IP использовать, используя `nmap -sn 192.168.1.0 / 24`. 3. Я определил параметры `routers` и` domain-name-server` глобально, добавив их в `/ etc / dhcp / dhcpd.conf` после строки` # определений параметров, общих для всех поддерживаемых сетей ... `. Mohamed Laradji 5 лет назад 0