Магазин / аукцион / FPR / donate / услуги / RSS / распечатать / вход 
Мой мир
Вконтакте
Одноклассники
Google+

[24 января 2017 | 1 февраля 2017 | 11 февраля 2017]

PXE загрузка компьютеров с использованием DHCP CISCO

Когда в организации степень лени администратора не позволяет записывать CD или USB для загрузки компьютеров, то на помощь приходит загрузка операционной системы по сети. На самом деле, тут вопрос не лени, а оптимизации рабочего процесса. С использовнием PXE можно загружать тонкие клиенты, установочные диски, реанимационные и тестовые пакеты. О том, как это работает можно ознакомиться в различной литературе. Так же хочу заметить, что в организациях у которых сеть развёрнута на Актив директори или в качестве шлюза используются Линуксы или FreeBSD, то у них уже есть DHCP на основе которого можно поднять точно такую же систему. Я хочу затронуть тему развёртывания PXE в небольшой сети в которой стоит один роутер Cisco и нет возможности развернуть DHCP на Windows, Linux, FreeBSD или иной экзотической системы.

Для реализации PXE нам понадобится TFTP-сервер и роутер Cisco. TFTP-сервер можно поднять на любом компьютере с установленной операционной системой Windows, Linux или FreeBSD. Например, TFTP-сервер можно поднять на любом Windows с запущенной программой Tftpd64.

Запуск TFTP-сервера

Скачиваем программу Tftpd64 себе на компьютер. Устанавливаем сервер себе на компьютер, далее устанавливаем настройки как на картинках.

Tftpd64 Настройки.
Tftpd64 Настройки GLOBAL

Tftpd64 Настройки.
Tftpd64 Настройки TFTP

Можно настроить имеющийся TFTP-сервер в серверных версиях Windows, но он там сильно «обрезанный». Плюс придётся совершить пару шаманских действий для запуска.

Настройка DHCP на CISCO

С этой стороны всё обстоит довольно интересно. Для того, чтобы вся система заработала необходимо настроить BOOTP, точнее DHCP, который будет объяснять компьютерам о необходимости загрузиться с TFTP-сервера.

Вот тут начинается самое интересное. Почитав мануалы и различные инструкции всё выглядело очень просто. Необходимо прописать две строчки и всё должно заработать. И действительно, в DHCP на Windows данная процедура выглядит аналогично. Но, в моём случае, подобная настройка ни к чему не привела. Вот так выглядит настройка рекомендуемая подавляющим большинством сайтов и на форумах:

ip dhcp pool LAN
 ...
 option 66 ip 192.168.30.3
 option 67 ascii "pxelinux.0"
 ...

Может быть проблема была в том, что на моеём роутере Cisco ISR 2821 установлен IOS 15, но как бы я не модифицировал данные опции у меня ничего не хотело работать. Углубившись в техническую документацию я нашел, что Cisco может передавать данные совместимые с BOOTP, а на форумах посвященных настройке FreeBSD узнал, какие параметры можно передать в DHCP совместимые с BOOTP. В результате, дополнительные строчки, необходимые для загрузки PXE превратились вот в такой вариант.

ip dhcp pool LAN
 ...
 bootfile pxelinux.0
 next-server 192.168.30.3
 ...

Данные записи полностью удовлетворили имеющиеся компьютеры. Загрузились компьютеры с сетевыми карточками: D-Link, Intel, Broadcom и виртуальной сетевой карточкой VMWare. Как было указано в инструкция по DHCP/BOOTP на FreeBSD по умолчанию в качестве адреса TFTP-сервера передаётся адрес шлюза. А вот параметр next-server передаёт информацию о следующем TFTP-сервере в сети. На мой взгляд, совершенно не логичное описание параметра, содержащего адрес TFTP-сервера.

С настроками софта работающего на серверных площадках разобрались. Осталось разобраться, что записать на TFTP-сервер и, что будет отдано PXE-клиенту.

Файлы необходимые для работы PXE клиента

Теперь мы добрались до самого интересного. Теоретически, через PXE можно отправить всё, что угодно. Но у меня стояла задача следующего плана:

Для полноценной системы развёртывания и подготовки образов операционных систем я рекомендую использовать WDS, а для небольших компаний подойдёт описываемый мной метод. Так как он не заставляет приобретать Windows Server, под которым запускается служба WDS.

Я решил использовать образ системы Syslinux. Последний образ можно скачать с сервера: www.kernel.org. Из образа необходимо всего несколько файлов:

Так же необходимо создать два каталога. Один каталог называется pxelinux.cfg в котором будет расположен файл default с настройками и меню. Второй каталог можно обозвать как угодно, например, ISO и записать в него необходимые для загрузки образы.

Для работоспособности данной системы надо настроить меню. Дабы не описывать всю систему меню я просто покажу как оно оформлено у меня.

Я использую небольшие красивости, то есть графический режим монитора. Для реализации графики я подключаю модуль vesamenu.c32 и файл настроек меню. В качестве подложки используется картинка из файла background.png, расположенного в корне TFTP-сервера. Далее никаких дополнительных вопросов возникать не должно. Я использую загрузку ISO-образов в память и передаю им управление. Дальше всё зависит от компьютера и образа.

Содержимое файла default:

DEFAULT vesamenu.c32
PROMPT 0
timeout 80
TOTALTIMEOUT 9000

MENU TITLE ORCINUS ORCA PXE Boot
MENU INCLUDE pxelinux.cfg/graphics.conf
MENU AUTOBOOT Starting Local System in 8 seconds

LABEL bootlocal
menu label Boot Local
menu default
localboot 0x80

label windows
menu label Setup Windows
kernel memdisk
append iso raw initrd=iso\windows.iso

label linux
menu label Setup Linux
kernel memdisk
append iso raw initrd=iso\linux.iso

label memtest
menu label Memtest86+
kernel memdisk
append iso raw initrd=iso\memtest86.iso

label drweb
menu label Antivirus DrWeb
kernel memdisk
append iso raw initrd=iso\drweb.iso

label winpe
menu label Windows LiveCD
kernel memdisk
append iso raw initrd=iso\live.iso

Содержимое файла graphics.conf:

MENU MARGIN 10
MENU ROWS 16
MENU TABMSGROW 21
MENU TIMEOUTROW 26
MENU COLOR BORDER 30;44 #00000000 #00000000 none
MENU COLOR SCROLLBAR 30;44 #00000000 #00000000 none
MENU COLOR TITLE 0 #ffffffff #00000000 none
MENU COLOR SEL 30;47 #40000000 #20ffffff
MENU BACKGROUND background.png
NOESCAPE 0
ALLOWOPTIONS 0

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

Для ссылки на вложенное меню необходимо делать ссылку в виде следующего элемента меню:

label unixlist
menu label UNIX setup list
kernel vesamenu.c32
append pxelinux.cfg\unixlist.conf

В качестве примера можно предложить вот такое меню в файле pxelinux.cfg\unixlist.conf.

DEFAULT vesamenu.c32
PROMPT 0
MENU TITLE UNIX Setup list
MENU INCLUDE pxelinux.cfg/graphics.conf

label main menu
menu label Return to main menu
kernel vesamenu.c32
append pxelinux.cfg/default

label ubuntu
menu label Ubuntu
kernel memdisk
append iso raw initrd=iso\ubuntu.iso

label slackware
menu label Slackware
kernel memdisk
append iso raw initrd=iso\slackware.iso

label freebsd
menu label FreeBSD
kernel memdisk
append iso raw initrd=iso\freebsd.iso

label debian
menu label Debian
kernel memdisk
append iso raw initrd=iso\debian.iso

Итоги

Для большой компании лучше использовать специализированные инструменты для развёртывания операционных систем. Так же подобные системы могут использоваться для загрузки тонких клиентов. Хотя специализированные системы уже содержат в себе инструменты развёртывания тонких клиентов.

Для средних компаний вполне позволительно подобное не традиционное использование роутера, чтобы подсказать компьютерам о наличии системы сетевой загрузки ОС.

Для мелкой компании в подобной системе нет смысла. Разве, что для экспериментов.

• Перейти в архив


Комментарии

Включите JavaScript для комментирования.


Сообщайте нам о замеченных ошибках на: web@orcinus.ru. Все пожелания и советы будут учтены при дальнейшем проектировании сайта... Мы готовы сотрудничать со всеми желающими. Мнение авторов может не совпадать с точкой зрения редакции сайта www.orcinus.ru. В некоторых случаях, мнение автора может не совпадать с мнением автора! Phone: +7-902-924-70-49.

Рейтинг@Mail.ru LiveInternet Rambler's Top100 Яндекс.Метрика