- Подготовка инфраструктуры PXE на Astra Linux
- Введение
- Установка и настройка сервера PXE
- Установка пакетов
- Настройка службы TFTP
- Установка и настройка службы DHCP
- DHCP
- Установка пакета
- Настройка
- Проверка работоспособности сервиса
- Указание параметров домена
- Указание параметров сетевой загрузки
- Указание параметров резервирования IP по MAC-адресу
- Быстрая настройка
- Динамическое обновление DNS FreeIPA
Подготовка инфраструктуры PXE на Astra Linux
PXE (англ.Preboot eXecution Environment) — среда для загрузки компьютеров с помощью сетевой карты без использования жестких дисков, компакт-дисков и других устройств, применяемых при загрузке операционной системы.
Подробная информация об автоматической установке с помощью списка ответов: https://www.debian.org/releases/stretch/s390x/apbs01.html.ru
Введение
Предполагается, что для выполнения загрузки по сети используется следующая конфигурация оборудования:
- все компьютеры находятся в одной локальной сети (в одном широковещательном домене);
- в этой сети имеются:
- настроенный DHCP-сервер, выдающий клиентским компьютерам не только сетевые IP-адреса, но и другие сетевые параметры (в частности, IP-адрес TFTP-сервера, с которого будет загружаться установочный образ). Далее для примера приводится установка и настройка DHCP-сервера, однако если в сети уже имеется собственный DHCP-сервер, то следует выполнить его настройку в соответствии с приведенными в статье инструкциями ;
- настроенный TFTP сервер, с которого можно загрузить установочные данные и файлы для первичной загрузки:
- tftp://192.168.56.1/se
- tftp://192.168.56.1/ce
Это не совсем обычные репозитории пакетов: в обычных репозиториях пакетов нет загрузочных модулей ядра.
Чтобы необходимые модули были доступны при сетевой установке проще всего использовать в качестве разделяемых сетевых ресурсов примонтированные установочные диски (образы дисков).В составе инфраструктуры используются РАЗНЫЕ источники данных, работающие по РАЗНЫМ протоколам, расположенные в РАЗНЫХ местах файловой системы, и, возможно, даже на разных серверах:
- в первом случае это источник установочных файлов и и файлов для первичной загрузки, работающий по протоколу TFTP. Далее в примерах эти данные размещаются в каталоге /srv/tftp/;
- во втором случае (репозитории пакетов), работающий по протоколу HTTP (или FTP). Размещается, например, в каталоге /srv/repo или в каталоге /var/www/html/repo или доступен пр сети. Подробнее про создание и настройку таких репозиториев см. Создание локальных и сетевых репозиториев.
Для упрощения изложения далее предполагается, что сетевые службы DHCP, TFTP, HTTP располагаются на одном и том же компьютере. При необходимости эти службы могут быть установлены на разных компьютерах
- клиент подключается к сети и запрашивает IP-адрес, передавая в запросе информацию о собственной конфигурации;
- DHCP-сервер назначает клиенту IP-адрес и вместе с назначенным адресом передаёт клиенту дополнительные сетевые параметры, в том числа IP-адрес TFTP-сервера с необходимыми файлами сценариев установки;
- клиент подключается к TFTP-серверу и загружает файлы со сценариями установки;
- клиент выполняет установку в соответствии с полученными сценариями.
Установка выполняется с заранее заданными фиксированными именами (имя хоста, имя пользователя, пароль пользователя). Рекомендуется после установки сменить имена и пароли.
Установка и настройка сервера PXE
Установка пакетов
Установить необходимые пакеты:
- tftpd-hpa — TFTP-server;
- pxelinux — загрузчик для сетевой загрузки PXE;
- syslinux — загрузчик для сетевой загрузки DOS FAT / NTFS;
Настройка службы TFTP
Служба tftpd после установки запускается автоматически и сразу предоставляет доступ к каталогу /srv/tftp/, в котором далее и будут размещены файлы для сетевой загрузки.
Установка и настройка службы DHCP
Создание собственой службы DHCP требуется только в том случае, если в сети нет уже такой действующей службы. Если в сети уже имеется служба DHCP (DHCP-сервер), то следует внести в его настройку указанные ниже параметры в соответствии его с инструкциями по эксплуатации.
Для создания собственного DHCP-сервера:
authoritative; option domain-name «my.dom»; default-lease-time 600; max-lease-time 7200; log-facility local7; option domain-name-servers 8.8.8.8; allow booting; allow bootp; option fqdn.no-client-update on; option fqdn.rcode2 255; option pxegrub code 150 = text ; next-server 192.168.56.1; option architecture code 93 = unsigned integer 16 ; if option architecture = 00:07 < filename "bootx64.efi"; >elsif option architecture = 00:09 < filename "bootx64.efi"; >else < filename "pxelinux.0"; >subnet 192.168.56.0 netmask 255.255.255.0
Независимо от использующейся службы DHCP для загрузки по сети нужны следующие файлы:
Эти файлы находятся на установочном диске в каталоге netinst и для того, чтобы они могли быть переданы клиентам, они должны быть скопированы в каталог /srv/tftp/.
- Для Astra Linux Special Edition (в примере ниже предполагается, что основной установочный диск находится в приводе компакт дисков) это копирование сделать командами:
sudo mkdir -p /srv/repo/se/
sudo mount /dev/sr0 /srv/repo/se/
sudo mkdir -p /srv/tftp/se/
sudo cp /srv/repo/se/netinst/linux /srv/tftp/se/
sudo cp /srv/repo/se/netinst/initrd.gz /srv/tftp/se/sudo mkdir -p /srv/repo/ce/
sudo mount ce212.iso /srv/repo/ce
sudo mkdir -p /srv/tftp/ce/
sudo cp /srv/repo/ce/netinst/linux /srv/tftp/ce/
sudo cp /srv/repo/ce/netinst/initrd.gz /srv/tftp/ce/ui menu.c32 PROMPT 0 MENU TITLE PXE Boot menu TIMEOUT 50 DEFAULT local LABEL local MENU LABEL Boot from local drive kernel chain.c32 append hd0 # Astra Linux Special Edition LABEL netinstall MENU LABEL Start Astra Linux SE net install kernel se/linux append initrd=se/initrd.gz modprobe.blacklist=evbug auto=true priority=critical debian-installer/locale=en_US console-keymaps-at/keymap=ru hostname=se16 domain=my.dom astra-license/license=true url=tftp://192.168.56.1/se/preseed.cfg interface=auto netcfg/dhcp_timeout=60 astra_install=1 vga=788 debian-installer/allow_unauthenticated=true nomodeset # Astra Linux Common Edition LABEL netinstall MENU LABEL Start Astra Linux CE net install kernel ce/linux append initrd=ce/initrd.gz modprobe.blacklist=evbug auto=true priority=critical debian-installer/locale=en_US console-keymaps-at/keymap=ru hostname=ce212 domain=my.dom astra-license/license=true url=tftp://192.168.56.1/ce/preseed.cfg interface=auto netcfg/dhcp_timeout=60 vga=788 debian-installer/allow_unauthenticated=true nomodeset
При использовании приведенного выше файла по умолчанию загрузка клиента выполняется с локального жесткого диска. Это сделано для предотвращения повторной автоматической установки после завершения первой установки, или случайной установки на компьютер с уже установленной ОС, подключенный к этой же сети.
- hostname — имя хоста, которое будет использовано при автоматической установке ОС;
- domain — имя домена ;
- url — адрес, по которому должны быть доступны конфигурационные файлы. В данном примере используется протокол TFTP, однако можно использовать FTP или HTTP (файлы при этом должны быть размещены в соответствующих локациях).
- append . astra_install=1 — параметр ядра astra_install=1 необходим для корректной установки Astra Linux Special Edition с включенным МКЦ.
if loadfont $prefix/font.pf2 ; then set gfxmode=800x600 set gfxpayload=keep insmod efi_gop insmod efi_uga insmod video_bochs insmod video_cirrus insmod gfxterm insmod png terminal_output gfxterm fi if background_image /isolinux/splash.png; then set color_normal=light-gray/black set color_highlight=white/black else set menu_color_normal=cyan/blue set menu_color_highlight=white/blue fi menuentry "Boot default EFI bootloader" < set background_color=black regexp -s root '\((.+)\)' "$cmdpath" chainloader /EFI/Boot/Bootx64.efi ># Установка Astra Linux Special Edition menuentry 'Install Astra Linux SE' < set background_color=black linux /se/linux modprobe.blacklist=evbug debian-installer/allow_unauthenticated=true auto=true priority=critical debian-installer/locale=en_US console-keymaps-at/keymap=ru hostname=test2 domain=my.dom astra-license/license=true url=tftp://192.168.56.1/se/preseed.cfg interface=auto netcfg/dhcp_timeout=60 nomodeset initrd /se/initrd.gz ># Установка Astra Linux Common Edition menuentry 'Install Astra Linux CE' < set background_color=black linux /ce/linux modprobe.blacklist=evbug debian-installer/allow_unauthenticated=true auto=true priority=critical debian-installer/locale=en_US console-keymaps-at/keymap=ru hostname=test2 domain=my.dom astra-license/license=true url=tftp://192.168.56.1/ce/preseed.cfg interface=auto netcfg/dhcp_timeout=60 nomodeset initrd /ce/initrd.gz >
DHCP
Помимо описанной в настоящей статье службы DHCP isc-dhcp-server в состав Astra Linux упрощенная служба DHCP dnsmasq. Пример установки и настройки этой службы приведен в статье Терминальный сервер LTSP (ltsp-server-standalone) на базе Astra Linux.
Данная статья применима к:
- Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7)
- Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)
- Astra Linux Special Edition РУСБ.10015-16 исп. 1и исп. 2
- Astra Linux Special Edition РУСБ.10265-01 (очередное обновление 8.1)
- Astra Linux Common Edition 2.12
Установка пакета
В состав дистрибутива ОС Astra Linux входит пакет DHCP-сервера isc-dhcp-server и графический инструмент для его быстрой настройки fly-admin-dhcp. Установка графического инструмента fly-admin-dhcp может быть выполнена из графического менеджера пакетов (см. Графический менеджер пакетов synaptic) , или из командной строки:
При установке f ly-admin-dhcp автоматически будет установлен также и isc-dhcp-server .
После установки инструмент может быть запущен из системного меню («Пуск» > «Панель управления» > «Сеть» > «DHCP сервер), или из командной строки.
Настройка
Конфигурация сервиса DHCP хранится в файлах /etc/default/isc-dhcp-server и /etc/dhcp/dhcpd.conf.
В файле /etc/default/isc-dhcp-server в параметрах INTERFACES нужно указать протоколы и сетевые интерфейсы, с которыми будет работать сервис.
При необходимости указать несколько сетевых интерфейсов, их можно перечислить через пробел.
Пример настроек (для протокола IPv4 используется интерфейс eth0, работа по протоколу IPv6 запрещена):Список имеющихся интерфейсов можно проверить командой
В файле /etc/dhcp/dhcpd.conf указывается топология сети, и параметры выдаваемой через DHCP информации.
При этом, в самом этом файле имеется много примеров задания параметров.Для того, чтобы сервис запустился, указанному в файле /etc/default/isc-dhcp-server сетевому интерфейсу должен быть присвоен IP-адрес.
С учетом того, что DHCP сервис мы только настраиваем, автоматически получить адрес не получится, то есть адрес нужно назначить вручную до запуска сервиса.
Неудачный запуск с ошибкой при запуске «Not configured to listen on any interfaces!» говорит о том, что у сетевого интерфейса нет IP-адреса.При запуске сервера с отключенным IPv6 может выдаваться сообщение об ошибке запуска, связанное с тем, что не может запуститься часть сервиса, отвечающая за работу с IPv6.
При этом часть, работающая с IPv4, запускается и работает нормально.Проверка работоспособности сервиса
Для проверки работоспособности сервиса можно установить и использовать команду nmap:
Указание параметров домена
Особо следует отметить важные для обеспечения работы в составе домена возможности задания в параметрах выдаваемой информации имени домена и адреса DNS-сервера:
option domain-name «somedomain.example.com»;
option domain-name-servers 10.0.2.254;Указание параметров сетевой загрузки
Для указания какой файл и откуда загрузить при старте хоста используются параметры
- filename — имя файла для загрузки
- next-server — адрес сервера, с которого загрузить файл (в виде IP-адреса или в виде имени сервера)
subnet 10.0.2.0 netmask 255.255.255.0 range 10.0.2.10 10.0.2.100;
max-lease-time 86400;
option routers 10.0.2.1;
filename «pxelinux.0»;
next-server 10.0.2.254;
>Указание параметров резервирования IP по MAC-адресу
Быстрая настройка
Быстрая настройка основных параметров DHCP для сети IPv4 может быть осуществлена через графический инструмент f ly-admin-dhcp .
Работа сервиса DHCP существенно влияет на работоспособность сети в целом, и случайное появление в сети неправильно настроенного сервера, некорректно отвечающего на запросы клиентов, может привести к существенным нарушения работы всей сети.
Для предотвращения случайных включений в настройках сервиса предусмотрена специальная защита: в конфигурационном файле /etc/dhcp/dhcpd.conf предусмотрен параметр authoritative. По умолчанию этот параметр оформлен как комментарий, и не действует. Для того, чтобы сервер действительно начал работать (отвечать на запросы), этот параметр нужно раскомментировать.После завершения всех настроек следует перезапустить сервис:
Динамическое обновление DNS FreeIPA
Настройку DHCP для динамического обновления доменного DNS-сервиса FreeIPA см. в статье Динамическое обновление DNS клиентских машин FreeIPA