PXE-загрузка FOG Project в изолированной сети VirtualBox
Пошаговая настройка PXE-загрузки с FOG Project на Debian в VirtualBox для изолированной сети. Настройка DHCP (isc-dhcp-server или dnsmasq), bridged сеть, ProxyDHCP и отладка для загрузки по сети ноутбуков через свитч.
Можно ли настроить PXE-загрузку с FOG Project в изолированной сети на неттопе с Debian в VirtualBox?
Описание конфигурации:
- Неттоп с Debian, запущенным в VirtualBox, где установлен FOG Project.
- Неуправляемый свитч или простой роутер.
- Неттоп получает интернет только по Wi-Fi, без физического доступа к Wi-Fi-роутеру.
- Бридж в VirtualBox настроен, FOG Project работает корректно.
Цель: обеспечить PXE-загрузку ноутбуков через свитч (peer-to-peer подключение кабелем от неттопа к свитчу и ноутбукам) или поднять изолированную локальную сеть на роутере.
Основная проблема: настройка DHCP для автоматической выдачи IP-адресов целевым ноутбукам.
Как реализовать такую схему шаг за шагом?
Да — PXE-загрузка (pxe загрузка) с FOG Project в изолированной сети на неттопе с Debian в VirtualBox возможна. Нужно правильно сконфигурировать virtualbox сеть (bridged к физическому Ethernet), запустить локальный DHCP/TFTP на Debian (настройка dhcp — isc-dhcp-server или dnsmasq) и указать FOG как next-server/bootfile для целевых ноутбуков; если роутер уже раздаёт IP — вариант с ProxyDHCP решает проблему. Ниже — пошаговая схема, конфигурации и отладка.
Содержание
- PXE‑загрузка с FOG Project в VirtualBox‑сети
- Требования и схема сети
- VirtualBox сеть и мостовой режим для FOG Project
- Пошаговая реализация (шаг за шагом)
- Настройка DHCP и TFTP на Debian (isc-dhcp-server и dnsmasq)
- ProxyDHCP: когда использовать и как настроить
- Тестирование и отладка (загрузка по сети pxe)
- Практические советы и безопасность
- Источники
- Заключение
PXE‑загрузка с FOG Project в VirtualBox‑сети
Коротко: FOG Project как сервер PXE/TFTP/HTTP должен «видеть» физическую сеть ноутбуков. В типичном варианте Debian/FOG в VirtualBox получает один интерфейс для доступа в интернет (NAT/Bridged → Wi‑Fi) и второй — bridged к физическому Ethernet порту неттопа, который подключён к свитчу. На этом втором интерфейсе запускается служба DHCP/TFTP — она раздаёт адреса и указывает next-server/filename для pxe загрузки.
Звучит громоздко? На деле — три важных вещи: 1) интерфейс FOG в той же L2‑сети, что и ноутбуки, 2) DHCP выдаёт правильный next-server и bootfile, 3) на хосте/VM не мешает другой DHCP-сервер. Подробнее — ниже.
Требования и схема сети
-
Аппаратное:
-
Неттоп с Ethernet портом и Wi‑Fi (Wi‑Fi даёт интернет, Ethernet идёт на свитч).
-
Неуправляемый свитч или простой роутер (лучше — свитч, чтобы избежать лишнего DHCP).
-
Ноутбуки-клиенты с включённой сетевой загрузкой (BIOS/UEFI).
-
ПО:
-
Debian VM в VirtualBox с установленным FOG Project.
-
DHCP сервер: isc-dhcp-server или dnsmasq (на Debian).
-
TFTP/HTTP: обычно устанавливаются и настраиваются FOG.
-
Адресная схема (пример):
-
Сеть PXE: 192.168.250.0/24
-
FOG (eth1 в VM): 192.168.250.10
-
DHCP range: 192.168.250.100–192.168.250.200
-
Проверки перед работой:
-
VirtualBox разрешает Promiscuous Mode для bridged‑адаптера.
-
Другие DHCP на той же сети отсутствуют (иначе — конфликт).
-
У вас есть доступ к FOG Web GUI (для проверки трафика/логов).
VirtualBox сеть и мостовой режим для FOG Project
Задача — дать Debian VM L2‑доступ к физическому Ethernet. Рекомендация:
- В VirtualBox для VM задайте два адаптера:
- Adapter 1: NAT (или Bridged→Wi‑Fi) — для доступа VM в интернет и загрузки пакетов.
- Adapter 2: Bridged Adapter → выберите физический Ethernet интерфейс хоста (тот, что идёт на свитч). Установите Promiscuous Mode = Allow All и «Cable connected».
-
Если host — Windows: убедитесь, что драйвер VirtualBox Bridged Networking включён для Ethernet в настройках сети Windows. Иногда требуется запустить VirtualBox от администратора.
-
Если bridging к Ethernet неудачен (ограничения ОС), второй вариант — Host‑only + маршрутизация/ICS на хосте, но это сложнее. Для большинства случаев bridged работает надёжнее.
Справочно — раздел про сеть в VirtualBox: VirtualBox Networking Manual.
Пошаговая реализация (шаг за шагом)
-
План адресов: выберите подсеть (пример 192.168.250.0/24). Запланируйте IP для FOG/VM (например, 192.168.250.10).
-
Настройте VirtualBox: Adapter1 = NAT, Adapter2 = Bridged→Ethernet, Promiscuous = Allow All.
-
В Debian VM:
- Настройте статический IP на интерфейсе, который bridged к Ethernet (например, /etc/network/interfaces или systemd-networkd): 192.168.250.10/24.
- Убедитесь, что FOG слушает на этом интерфейсе (FOG обычно доступен по 80/443, TFTP 69, 4011 для proxy).
-
Установите DHCP (пример — isc-dhcp-server или dnsmasq) и сконфигурируйте выдачу IP в выбранном диапазоне, указав next-server 192.168.250.10 и правильное имя bootfile (undionly.kpxe / ipxe.efi / pxelinux.0).
-
Подключите кабели: неттоп (Ethernet) → свитч → ноутбуки. Не подключайте в эту L2‑сеть ваш основной Wi‑Fi‑роутер (если там активен DHCP), иначе будут конфликты.
-
Запустите службы: isc-dhcp-server/dnsmasq, tftpd, apache/nginx (FOG). Проверьте логи.
-
На ноутбуке включите сетевую загрузку и загрузитесь. Наблюдайте логи на FOG (DHCP/TFTP) и в tcpdump для диагностики.
Настройка DHCP и TFTP на Debian (isc-dhcp-server и dnsmasq)
Ниже — два рабочих варианта. Замените адреса на ваши.
A) Пример для isc-dhcp-server (/etc/dhcp/dhcpd.conf):
option domain-name "local";
option domain-name-servers 8.8.8.8;
default-lease-time 600;
max-lease-time 7200;
authoritative;
subnet 192.168.250.0 netmask 255.255.255.0 {
range 192.168.250.100 192.168.250.200;
option routers 192.168.250.1;
option broadcast-address 192.168.250.255;
next-server 192.168.250.10; # IP FOG/TFTP
filename "undionly.kpxe"; # BIOS iPXE (для UEFI — ipxe.efi)
}
В /etc/default/isc-dhcp-server установите:
INTERFACESv4="eth1"
Перезапуск:
systemctl restart isc-dhcp-server
B) Пример для dnsmasq (легче в простых сетях). /etc/dnsmasq.d/fog.conf:
interface=eth1
bind-interfaces
dhcp-range=192.168.250.100,192.168.250.200,12h
dhcp-boot=undionly.kpxe,192.168.250.10
enable-tftp
tftp-root=/var/lib/tftpboot
Перезапуск:
systemctl restart dnsmasq
BIOS vs UEFI: для старых BIOS обычно используется undionly.kpxe/pxelinux.0, для UEFI — ipxe.efi или EFI‑образ. Начните с одного режима (например, включите Legacy Boot) — если ноутбук UEFI, посмотрите в логах TFTP/FOG, какой файл он запрашивает, и добавьте условия в конфиг DHCP при необходимости. Подробности по iPXE: https://ipxe.org
Firewall: откройте порты UDP 67 (DHCP), 69 (TFTP), TCP 80/443 (FOG Web), UDP/TCP 4011 (ProxyDHCP/iPXE в некоторых сценариях). Пример (ufw):
ufw allow 67/udp ufw allow 69/udp ufw allow 80/tcp ufw allow 4011/udp
Если нужен доступ клиентов в интернет (необязательно для PXE): настройте NAT/маршрутизацию на хосте/VM или используйте NAT‑адаптер VirtualBox для доступа VM к интернету параллельно bridged‑интерфейсу.
ProxyDHCP: когда использовать и как настроить
Что делать, если в сети уже есть DHCP (например, простой роутер, который вы не можете настроить)? Есть вариант — ProxyDHCP: основной DHCP раздаёт IP, а маленький proxy (dnsmasq/FOG-proxy) отвечает на запросы PXE, указывая только next-server/bootfile. Это безопаснее, чем пытаться выключить чужой DHCP.
- dnsmasq умеет работать как proxyDHCP (рекламирует только bootfile) — нужен bind на интерфейсе и отключение DNS/основной DHCP в dnsmasq.
- Если router блокирует PXE/UDP‑4011 — proxy не сработает; тогда единственный рабочий путь — изолировать сеть (отключить роутер от свитча или перевести роутер в режим «switch»).
Подробные инструкции по proxy/pxe смотрите в документации FOG и iPXE: FOG Project и iPXE.
Тестирование и отладка (загрузка по сети pxe)
Что смотреть и какие команды запускать:
- На Debian (VM) смотреть логи DHCP/TFTP:
- isc-dhcp-server:
journalctl -u isc-dhcp-server -fили/var/log/syslog - dnsmasq:
journalctl -u dnsmasq -fилиtail -f /var/log/syslog - Ловить трафик:
tcpdump -n -i eth1 port 67 or port 68— смотрите DHCPDISCOVER/DHCPOFFER. - Проверить TFTP:
tftp 192.168.250.10→get undionly.kpxe— убедитесь, что файл скачивается. - Если ноутбук вообще не видит PXE: проверьте, что нет второго DHCP в сети. Если видит IP, но не получает bootfile — проверьте next-server/filename.
- UEFI‑проблемы: многие UEFI требуют специальный .efi образ; посмотрите, какой файл запрашивается в логах TFTP.
Типичные симптомы:
- «No DHCP offers» — значит DHCP не слушает на нужном интерфейсе или пакет не доходит (VirtualBox bridging/Promiscuous).
- «TFTP: file not found» — bootfile указан неверно или tftp-root не содержит нужного файла.
- Конфликты адресов — более одного DHCP в сети.
Практические советы и безопасность
- Никогда не включайте свой PXE‑DHCP в сети, где работает чужой DHCP без согласования — вы создадите конфликт. Лучше изолировать L2‑сегмент.
- Привязывайте DHCP/dnsmasq к конкретному интерфейсу (interface=eth1, INTERFACESv4=“eth1”).
- Ограничьте firewall: доступ к TFTP/DHCP только с нужного интерфейса.
- Включите логирование и тестируйте с одним ноутбуком сначала.
- Для UEFI отключите Secure Boot или используйте подписанные образы, если требуется.
- Если нужно масштабирование/удалённый доступ — потом можно настроить VLAN или выделенный сеть‑интерфейс на сервере.
Источники
- FOG Project — официальный сайт
- FOG Project — Installation (GitHub Wiki)
- VirtualBox Networking Manual
- ISC DHCP — Internet Systems Consortium
- dnsmasq documentation
- iPXE — документация и образы
Заключение
PXE‑загрузка с FOG Project в изолированной сети на неттопе с Debian в VirtualBox реализуема: ключ — корректная настройка virtualbox сеть (bridged к Ethernet) и локальная настройка DHCP/TFTP (настройка dhcp) с указанием next-server и bootfile для pxe загрузки. Если роутер уже раздаёт адреса — используйте ProxyDHCP или изолируйте сеть. Начните с простого: статический IP для FOG‑инстанса, isc‑dhcp‑server/dnsmasq на eth интерфейсе, тест tcpdump + tftp — и вы быстро получите рабочую PXE‑сеть.