Сети

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‑сети

Коротко: 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. Рекомендация:

  1. В VirtualBox для VM задайте два адаптера:
  • Adapter 1: NAT (или Bridged→Wi‑Fi) — для доступа VM в интернет и загрузки пакетов.
  • Adapter 2: Bridged Adapter → выберите физический Ethernet интерфейс хоста (тот, что идёт на свитч). Установите Promiscuous Mode = Allow All и «Cable connected».
  1. Если host — Windows: убедитесь, что драйвер VirtualBox Bridged Networking включён для Ethernet в настройках сети Windows. Иногда требуется запустить VirtualBox от администратора.

  2. Если bridging к Ethernet неудачен (ограничения ОС), второй вариант — Host‑only + маршрутизация/ICS на хосте, но это сложнее. Для большинства случаев bridged работает надёжнее.

Справочно — раздел про сеть в VirtualBox: VirtualBox Networking Manual.


Пошаговая реализация (шаг за шагом)

  1. План адресов: выберите подсеть (пример 192.168.250.0/24). Запланируйте IP для FOG/VM (например, 192.168.250.10).

  2. Настройте VirtualBox: Adapter1 = NAT, Adapter2 = Bridged→Ethernet, Promiscuous = Allow All.

  3. В Debian VM:

  • Настройте статический IP на интерфейсе, который bridged к Ethernet (например, /etc/network/interfaces или systemd-networkd): 192.168.250.10/24.
  • Убедитесь, что FOG слушает на этом интерфейсе (FOG обычно доступен по 80/443, TFTP 69, 4011 для proxy).
  1. Установите DHCP (пример — isc-dhcp-server или dnsmasq) и сконфигурируйте выдачу IP в выбранном диапазоне, указав next-server 192.168.250.10 и правильное имя bootfile (undionly.kpxe / ipxe.efi / pxelinux.0).

  2. Подключите кабели: неттоп (Ethernet) → свитч → ноутбуки. Не подключайте в эту L2‑сеть ваш основной Wi‑Fi‑роутер (если там активен DHCP), иначе будут конфликты.

  3. Запустите службы: isc-dhcp-server/dnsmasq, tftpd, apache/nginx (FOG). Проверьте логи.

  4. На ноутбуке включите сетевую загрузку и загрузитесь. Наблюдайте логи на FOG (DHCP/TFTP) и в tcpdump для диагностики.


Настройка DHCP и TFTP на Debian (isc-dhcp-server и dnsmasq)

Ниже — два рабочих варианта. Замените адреса на ваши.

A) Пример для isc-dhcp-server (/etc/dhcp/dhcpd.conf):

bash
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"

Перезапуск:

bash
systemctl restart isc-dhcp-server

B) Пример для dnsmasq (легче в простых сетях). /etc/dnsmasq.d/fog.conf:

ini
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

Перезапуск:

bash
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):

bash
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.10get 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 или выделенный сеть‑интерфейс на сервере.

Источники


Заключение

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‑сеть.

Авторы
Проверено модерацией
Модерация
PXE-загрузка FOG Project в изолированной сети VirtualBox