Перейти к основному контенту

Сетевая загрузка

Цель:

Получение навыков по работе с сетевой загрузкой операционной системы

Задачи:

  1. Подключится к виртуальной машине на облачной платформе СПбГУТ
  2. Подготовить образ операционной системы Ubuntu
  3. Cкомпилировать загрузчик IPXE
  4. Настроить dnsmasq
  5. Снять дамп траффика во время установки ОС по сети
  6. Установить операционную систему, с помощью сетевой загрузки

Задание 1. Подготовка образа

В первую очередь необходимо скачать минимальный образ Ubuntu 20.04 Server на виртуальный сервер

cp /var/lib/cloud/s3cfg .s3cfg
s3cmd get s3://lab5/ubuntu-20.04-server.iso ~/  

После этого необходимо смонтировать образ в папку /mnt/

sudo mount ubuntu-20.04-server.iso /mnt/

Создайте папку, где в дальнейшем мы разместим образ ubuntu

sudo mkdir /var/www/deploy/ubuntu

Скопируйте все файлы из папки /mnt/ в папку /var/www/deploy/ubuntu

sudo cp -Rf /mnt/* /var/www/deploy/ubuntu

Также необходимо перенести и сам образ Ubuntu в папку /var/www/deploy/ubuntu

sudo cp ubuntu-20.04-server.iso /var/www/deploy/ubuntu

Измените владельца директории и его все его содержимого на Apache

sudo chown -R apache:apache /var/www/deploy

Задание 2. Подготовка загрузчика IPXE

IPXE - это свободная реализация программного обеспечения для начальной загрузки по сети. В первую очередь устанавливаем все необходимые пакеты для скачивания и сборки пакета

sudo yum install git-core gcc binutils make perl syslinux xz-devel

Перейдите в домашнюю директорию

cd ~

Скопируете репозиторий ipxe c копии официального git репозитория

git clone https://gitlab.resds.ru/tarabanov.if/ipxe.git

Ничего изменять в комманде не нужно

Перейдите в директорию с исходным кодом

cd ipxe/src/

Включаем поддержку сетевого хранилища

sed -i  's/#undef\tDOWNLOAD_PROTO_NFS/#define\tDOWNLOAD_PROTO_NFS/' config/general.h

выполнять внимательно

Также нам необходим добавить поддержку команды Ping

sed -i 's/\/\/#define\ PING_CMD/#define\ PING_CMD/' config/general.h
sed -i 's/\/\/#define\ IPSTAT_CMD/#define\ IPSTAT_CMD/' config/general.h
sed -i 's/\/\/#define\ REBOOT_CMD/#define\ REBOOT_CMD/' config/general.h
sed -i 's/\/\/#define\ POWEROFF/#define\ POWEROFF/' config/general.h

выполнять внимательно

Создайте встроенный скрипт embed.ipxe

vi embed.ipxe

Заполните скрипт такой конфигураций

#!ipxe

dhcp
chain http://${next-server}/boot.ipxe || shell

Не допускается пустая строка сверху

Скомпилируйте образ загрузчика IPXE

make bin-x86_64-efi/ipxe.efi EMBED=embed.ipxe

Скопируйте, скомпилированный загрузчик в папку /var/lib/tftpboot/

sudo cp bin-x86_64-efi/ipxe.efi /var/lib/tftpboot/

Дальше необходимо подготовить скачать загрузочное меню

s3cmd get s3://lab5/boot.ipxe ~/boot.ipxe
sudo cp ~/boot.ipxe /var/www/deploy/boot.ipxe
sudo chown -R apache:apache /var/www/deploy/

Задание 3. Настройка DNSMASQ

Установите пакет dnsmasq

sudo yum install dnsmasq

Запустите демон dnsmasq

sudo systemctl start dnsmasq

Добавьте в автозагрузку

sudo systemctl enable dnsmasq

Измените конфигурацию dnsmasq /etc/dnsmasq.conf

dhcp-range=192.168.0.15,192.168.0.15,12h
dhcp-option=option:router,192.168.0.1
dhcp-boot=ipxe.efi,192.168.0.10
enable-tftp
tftp-root=/var/lib/tftpboot/
log-queries
conf-dir=/etc/dnsmasq.d

конфигурацию можно изначально полностью очистить

Перезапустите dnsmasq

sudo systemctl restart dnsmasq

Для проверки состояния можно воспользоваться командой

sudo systemctl status dnsmasq

Отключите фаервол

sudo systemctl stop firewalld
sudo systemctl disable firewalld
sudo systemctl mask firewalld

Задание 4. Снятие трафика

Во время установки операционной системы будет необходимо снять трафик который идет при взаимодействии labnode1 и labnode2, самый простой способ записи в файл это

sudo tcpdump -i eth0 -w dump.pcap

Задание 5. Развертывания Ubuntu

Для дальнейшей работы нам необходим в инстанс labnode2

  1. Перед вами после перехода в консоль появится UEFI shell в нем необходимо вписать команду exit
  2. После этого в меню вам необходимо выбрать Boot Manager, после этого выбрать вариант загрузки в виде UEFI PXEv4, дальше будет происходить получения ранее созданного ipxe
  3. В меню загрузчика необходимо выбрать образ ubuntu, после нажатия Enter, будет загружен live образ Ubuntu с помощью которого в дальнейшем мы будет производить установку системы. На самом деле перед вами установочное меню операционной системы ubuntu 20 в серверном исполнении, и возможностью установки различных сервисов. В данной работе установка подразумевает под собой установку параметров в режиме по умолчанию. Для навигации по установочному меню используются кнопки клавиатуры: вверх-вниз– для перемещения фокуса выделения по пунктам меню, enter – для нажатия на необходимый пункт, пробел – для выбора пунктов в меню со списком выбора, Tab – для переключения между группами пунктов выбора.
  4. В первом пункте по умолчанию выбран язык English – лучше его изменить на русский, для избегания проблем с локализацией. Для этого переместить фокус выделения на русский язык и нажать – enter.
  5. В следующем пункте выберете вариант продолжения установки без обновления загрузчика
  6. В следующем меню оставить английскую раскладку клавиатуры и нажать готово
  7. В следующем меню – сетевые соединения – оставить все параметры по умолчанию и нажать готово
  8. Меню ввода адреса прокси сервера оставить пустым и нажать – готово
  9. В меню выбора зеркала для скачивания архивов ничего не менять и нажать готово
  10. В меню настройки дисковых устройств выбрать пункт собственной разметки диска, и если он и выбран – нажать готово

Вы должны разметить диски по образцу изображения снизу

В итоге у вас должно получиться разметка как на скриншоте ниже

Рисунок3.png

Когда вы убедитесь, что все сделали правильно нажмите «Готово» В следующем меню заполнить все поля имени пользователя и пароля,в качестве имени пользователя и пароля можно использовать: labuser labpass1!

Рисунок4.png

В новом меню включите установку сервера OpenSSH и нажмите готово

Рисунок5.png

В следующем меню, сразу нажмите готов Дождитесь установки операционной системы и с помощью нажатия Cancel update and reboot, произойдет перезагрузка системы, введите свой логин и пароль установленный в прошлых пунктах и попробуйте проверить работу сети с помощью команды

ping 192.168.0.10

Задание 6. Анализ трафика

  1. закончите снятие трафика
  2. перенесите дамп на аудиторный пк
  3. Ответьте на вопросы:
    1. Какие протоколы использовались во время установки ОС?
    2. Как выглядит сценарий взаимодействия при сетевой загрузки?
    3. За что отвечает dnsmasq?
    4. Что такое IPXE?
  4. Показать сценарий взаимодействия загрузки