2017-09-27

Загрузка по сети: Установка и настройка DHCP, TFTP-сервера

В моей практике часто приходится подготавливать новые компьютеры, в плане установки ОС и программного обеспечения. Количество ПК для подготовки может варьироваться от двух и более. Конечно, можно при себе иметь две-три флешки с установочной версией необходимой ОС и прочего ПО, но если компьютеров будет больше трех, к примеру шесть? Это означало бы, подготовку оборудования в два подхода. Что в свою очередь, отнимет драгоценное время и подарит связку из установочных флешек. А если к этому еще и добавить необходимость диагностировать ПК, с какими либо проблемами в работе, параллельно установке вышеописанных шести компьютеров. Связка флешек может пополнится минимум еще одной.
Как раз для таких ситуаций будет полезно организовать загрузку по сети с необходимым загрузочным контентом для выполнения всех вышеописанных задач.




Загрузка по сети изнутри


Загрузка по сети организуется за счет клиент-серверной технологии PXE (Preboot eXecution Environment) основанной на протоколах BOOTP, DHCP, TFTP. Клиентом в данном случае выступает компьютер с сетевой картой, которая имеет на своем борту чип с PXE прошивкой (таковой обладают все современные карточки).

Сама сетевая загрузка выглядит следующим образом. В BIOS материнской платы активируется функция OnBoard LAN Boot ROM (данная функция как раз и включает исполнение кода PXE прошивки) и в качестве первого загрузочного устройства выбирается сетевая карта.
Во время загрузки, BIOS передает управление загрузочной микропрограмме сетевой карты. Цель данной программы, получить сетевые настройки (IP адрес, маску подсети, шлюз), адрес сервера с которого будет производится дальнейшая загрузка, и имя файла который следует загрузить с сервера и выполнить. Запрос, ожидание и принятие всех вышеописанных настроек осуществляется протоколом BOOTP.

Итак, микропрограмма сетевой карты запустилась. Что происходит дальше? А дальше, она посылает широковещательный запрос, с целью найти DHCP сервер, который предоставит все вышеописанные настройки. Это означает, что в сети должен присутствовать DHCP сервер. При наличии DHCP сервера, и получении от него ответа, микропрограмма сетевой карты примет переданные ей настройки. А именно установит сетевые параметры (IP адрес, маску подсети, шлюз), после чего попытается подключится к серверу загрузки по протоколу TFTP и загрузить с него указанный исполняемый файл. То есть, кроме DHCP сервера в сети еще должен присутствовать TFTP сервер.

При наличии TFTP сервера, и присутствии на нем указанного файла, микропрограмма сетевой карты загрузит и попытается его выполнить. Если данный файл действительно исполняемый, то дальнейшая загрузка будет продолжаться согласно инструкциям прописанным в данном файле. Обычно данным файлом является загрузчик (bootmgr, grub4dos, syslinux) которому будет передано дальнейшее управление.


Tftp32(64)


Для операционной системы Windows, а организовывать сетевую загрузку мы будем именно на этой платформе, существует программа, именуемая Tftpd32 или Tftpd64, в зависимости от используемой разрядности ОС. Она сочетает в себе возможность запуска следующих сервисов: TFTP, SNTP, DHCP, DNS, Syslog. И все это при размере программы в ~340 КБ.


Ею мы и воспользуемся для дальнейших действий.


Установка Tftp32(64)


Скачать дистрибутив Tftp32(64) можно отсюда. На странице загрузки доступны несколько редакций программы Standart, Portable и Service Edition.


Первые две ничем не отличаются, разве что наличием установщика, и запускаются вручную. Третья же редакция, устанавливается в виде службы Windows. А это означает что, она может работать до входа пользователя в систему, сразу после загрузки Windows. Её мы и установим.

Так как у меня 64-битная версия ОС Windows, устанавливать я буду Tftp64. Актуальная версия на момент написания этих строк 4.60. Скачиваем установщик и запускаем.


Подтверждаем внесение изменений.


Соглашаемся с условиями лицензии нажатием кнопки I Agree.


На этапе выбора компонент для установки, ставим галочку напротив пункта Start service Tftpd32_svc и нажимаем на кнопку Next.


На данном этапе можно указать расположение для устанавливаемых файлов нажатием на кнопку Browse и выбора нового месторасположения. После жмем на кнопку Install, тем самым запуская процесс установки.


По окончании, установщик оповестит об успешности произведенной операции. Нажимаем OK.


В последнем окне, можно наблюдать отчет о проделанной работе установщиком. Если интересно, изучаем его, а затем закрываем установщик кнопкой Close. Установка на этом завершена.


Настройка Tftp32(64)


После установки Tftp64 на рабочем столе появится соответствующий значок.


Запускаем его двойным щелчком мыши. Откроется главное окно мониторинга запущенных служб программы. Представлены они в виде вкладок с информационными полями.


Перейдем к настройке нажатием на кнопку Settings (в нижней части окна по центру). Откроется окно настроек. Переходим в нем на вкладку GLOBAL.


В секции Start Services оставляем галочки на пунктах TFTP Server и DHCP Server. Так как нам нужны только эти службы.


Теперь настроим каждую службу по отдельности. Начнем с TFTP. Для этого перейдем на одноименную вкладку в окне настроек программы. По умолчанию настройки следующие.


В настройках TFTP сервера, в секции Base Directory, нам необходимо указать папку, которая будет являться корневой директорией для данного сервера. В данной директории будут располагаться все загрузочные файлы, поэтому позаботьтесь чтобы она располагалась на диске с достаточным свободным местом. В моем случае это будет директория D:\TFTP.

Вторым делом, нужно указать сетевой адрес к которому будет привязан TFTP сервер. Ставим галку на пункт Bind TFTP to this address, и выбираем из списка интерфейс, который смотрит в необходимую нам сеть. В моем случае это интерфейс с адресом 192.168.0.2.

И третье, включаем опцию Allow "\" As virtual root. Данный параметр делает каталог, выбранный в разделе Base Directory, корневым для TFTP сервера.

Все вышеописанное будет выглядеть так.


И последнее, настройка DHCP сервера. Переходим на вкладку DCHP. По умолчанию данный раздел выглядит следующим образом.


Небольшое отступление. Если в вашей сети уже есть DHCP сервер, то можно отказаться от встроенного в Tftpd32(64), при условии что в текущем можно прописать опции 66 - адрес TFTP сервера, и 67 - путь до загрузочного файла.

В моем случае, в сети DHCP сервер присутствует. Но настроить указанные выше опции в нем невозможно, так как запущен он на простеньком роутере D-Link DIR-615.


Выходов из данной ситуации два, либо полностью отказаться от DHCP сервера на роутере, но при этом постоянно нужно будет держать включенным компьютер с запущенной программой Tftpd32(64) с активным DHCP. Чтобы остальные клиенты сети, в частности мобильные устройства (планшеты, телефоны) могли работать. Либо использовать сразу оба DHCP сервера, при этом каждому выделить свой диапазон адресов.

Мне больше подходит второй вариант. Разделение сети следующее, диапазон адресов 192.168.0.2-199 отведен под раздачу для DHCP на роутере. А диапазон 192.168.0.200-250 отведен для Tftp32(64) DHCP.

Теперь вернемся к настройкам программы. В секции DHCP Pool Definition, в поле IP pool start address, вписываем начальный IP адрес диапазона адресов, в моем случае 192.168.0.200. В поле Size of pool прописываем размер диапазона адресов, в моем случае 50. Остальные параметры данной секции оставляем без измененеий.

В секции DHCP Options, в поле Def. router (Opt 3) прописываем IP адрес основного шлюза сети, в моем случае это адрес 192.168.0.1. В поле Mask (Opt 1) прописываем маску текущей сети, в моем случае маска следующая 255.255.255.0. В поле DNS servers (Opt 6) прописываем DNS сервер, в данном поле я указал сервер 8.8.8.8.

В секции DHCP Settings ставим галочку у пункта Double answer if relay detected, и галочку Bind DHCP to this address выбрав необходимый сетевой интерфейс к которому будет привязан DHCP сервер, в моем случае 192.168.0.2.

Итак, приведу итоговый скрин с проделанными изменениями.


На этом необходимые настройки программы выполнены. Нажимаем на кнопку OK, в нижней части окна, для сохранения внесенных изменений. Программа попросит перезапустить себя для применения настроек.


Нажимаем OK, после чего закрываем программу и снова ее открываем.


После рестарта, в окне программы видны внесенные нами изменения, а именно, прописана директория TFTP и выбран интерфейс сервера. Так же, пропадут вкладки неиспользуемых служб.


Продолжение следует...


В следующей статье будет рассмотрена тема установки загрузчиков на TFTP сервер, и их конфигурирование. А пока, на сегодня все.

P. S. Дополнения к этому материалу.
Установка загрузчика BOOTMGR на TFTP сервер

Комментариев нет :

Отправить комментарий