Перейти к содержанию

Настройка NFS-сервера и DNSmasq-сервера

Примечание

В статье IP-адреса являются примерами. Необходимо производить настройку в соответствии с существующей инфраструктурой.

  1. Развернуть виртуальную машину с ОС Debian 12 в виртуальной среде SpaceVM.

    Возможно использовать другую ОС с набором пакетов (NFS-сервер и DNSmasq-сервер), но необходимо учитывать особенности настройки.

  2. Установить NFS-сервер с помощью команды:

    sudo apt-get install nfs-kernel-server

  3. Установить DNSmasq-сервер (proxy-DHCP и TFTP-сервер).

    sudo apt-get install dnsmasq

    DNSmasq-сервер имеет встроенный TFTP-сервер (через enable-tftp), не требует отдельной установки tftpd-hpa и не имеет конфликтов с основным DHCP-сервером.

  4. Загрузить архив tar.gz на виртуальную машину.

  5. Создать директорию для распаковки архива:
    sudo mkdir /srv/tftp/
  6. Распаковать архив tar.gz в директорию TFTP-сервера:

    sudo tar -xzf space-client-livecd-pxe.tar.gz -C /srv/tftp/
    архив tar.gz

    tar.gz входит в состав образа Space Client Live (PXE) и необходим для настройки PXE-сервера. Архив содержит:

    • vmlinuz — ядро Linux.
    • initrd — начальный RAM диск.
    • live/filesystem.squashfs — сжатая файловая система (~700 MB).
    • pxelinux.0 и *.c32 — загрузчики для BIOS.
    • pxelinux.cfg/default — конфигурация для BIOS.
    • grub/bootx64.efi, grub/grubx64.efi — загрузчики для UEFI.
    • grub/grub.cfg — конфигурация для UEFI.
  7. Добавить экспорт TFTP-директории:

    echo '/srv/tftp *
    (ro,sync,no_wdelay,insecure_locks,no_root_squash,insecure,no_subtree_check)' | sudo tee -a /etc/exports

  8. Применить изменения с помощью команды:
    sudo exportfs -ra
  9. Перезапустить службу nfs:
    sudo systemctl restart nfs-kernel-server
  10. Проверить статус службы nfs:
    sudo systemctl status nfs-kernel-server
  11. Проверить экспорты:
    sudo exportfs -v
  12. Создать директорию для конфигурации:

    sudo mkdir -p /srv/tftp/pxelinux.cfg  
    sudo mv /srv/tftp/pxelinux.cfg-default /srv/tftp/pxelinux.cfg/default

  13. Отредактировать конфигурацию PXE, заменив ${TFTPSERVER} на IP адрес TFTP-сервера:

    sudo nano /srv/tftp/pxelinux.cfg/default

    Конфигурация PXE

    image

  14. Отредактировать конфигурацию grub, заменив ${TFTPSERVER} на IP адрес TFTP-сервера:

    sudo nano /srv/tftp/grub/grub.cfg

    Конфигурация grub

    image

  15. Привести конфигурационный файл /etc/dnsmasq.conf к следующему виду:

    # Отключить DNS (если нужен только PXE):
    port=0
    # Включить TFTP сервер:
    enable-tftp
    tftp-root=/srv/tftp
    # Proxy DHCP режим (не конфликтует с основным DHCP):
    dhcp-range=192.168.128.0,proxy
    dhcp-no-override
    # Определение архитектуры клиента:
    dhcp-match=set:bios,option:client-arch,0
    dhcp-match=set:efi-x86_64,option:client-arch,7
    dhcp-match=set:efi-x86_64,option:client-arch,9
    # Указать файлы загрузки:
    dhcp-boot=tag:bios,pxelinux.0,192.168.128.150
    dhcp-boot=tag:efi-x86_64,grub/bootx64.efi,192.168.128.150
    # PXE меню (опционально):
    pxe-service=tag:bios,x86PC,"Astra Linux Live (BIOS)",pxelinux
    pxe-service=tag:efi-x86_64,BC_EFI,"Astra Linux Live (UEFI)",grub/bootx64.efi
    # Логирование для отладки:
    log-dhcp
    log-queries

    Примечание

    Можно очистить все содержимое файла и вставить написанное выше, заменив IP-адреса на:

    • IP-адрес сети, в которой разворачивается сервер.
    • IP-адрес машины, на которой разворачивается сервер.
    Конфигурационный файл /etc/dnsmasq.conf

    image

  16. Перезапустить службу dnsmasq:

    sudo systemctl restart dnsmasq.service
  17. Перезапустить службу nfs:

    sudo systemctl restart nfs-kernel-server
    

Далее необходимо перейти к настройке DHCP-сервера.