Тонкие клиенты. Тоньше не бывает!

Anton Karpov

Xakep, номер #063, стр. 063-104-1

(toxa@real.xakep.ru)

Сажаем пингвина на бездисковую станцию

Идея создания бездисковой станции с загрузкой по Сети далеко не нова. Уже десятилетиями применяется это удобное и безопасное решение. Представь, что в предельно короткие сроки без заморочек с клонированием винчестеров тебе нужно установить любую операционку на сотню-другую одинаковых машин. Сервер удаленной загрузки сведет эту операцию к загрузке Linux по сети, а далее к поблочному копированию на локальный винчестер образа один раз установленной и настроенной ОС. Все, что нужно - это поддержка сетевой карточкой возможности загрузки по сети и наличие соответствующей опции в BIOS.

Карточные игры в дистрибутивы

Существует несколько спецификаций прошивок (ROM) сетевых карт для загрузки по сети. Самая популярная из них – это Intel PXE (Pre-Execution Environment). Твоя карточка либо уже прошита соответствующим образом, либо имеет возможность (микросхему), но не имеет прошивки. В таком случае тебе нужно будет поискать подходящую прошивку на netboot.sf.net.

В этой статье и сервер, и бездисковый клиент будут работать под ОС Linux. В описании я использую дистрибутив Slackware Linux, так как он больше остальных подходит для наших нужд, но все описанное вполне применимо к любому дистрибутиву с незначительными изменениями в расположении конфигурационных файлов и управляющих скриптов. Ядро будем грузить по сети, а корневая файловая система будет монтироваться по nfs. Таким образом, наличие какого-либо носителя информации на клиенте не обязательно. В итоге мы получим полноценную бездисковую Linux-машину, с рабочим ядром и файловой системой.

Удаленная загрузка под прицелом

Для начала нам понадобится сервер удаленной загрузки. Это может быть bootp-сервер или dhcp-сервер, оба они выполняют необходимые функции. Т.к. протокол dhcp умеет все то же, что и bootp, только больше и лучше :), то нет никакого резона использовать bootp-сервер. Поэтому качаем и ставим ISC DHCP сервер, последняя версия которого на момент написания статьи - 3.0.1rc13. Протокол dhcp позволяет намного больше, чем просто раздачу IP-адресов. Нам нужно будет не только "оформиться" у сервера, но и загрузить с сервера ядро. Сам dhcp не умеет предоставлять файлы, для этого используется tftp (trivial file transport protocol) – урезанный, по сравнению с ftp, протокол, не имеющий авторизации и работающий по udp. Также нам необходимо скачать и поставить поддерживающий команду tsize tftp-сервер, к примеру, hpa-tftp. И то и другое требует конфигурирования. Dhcp-сервер читает все настройки из файла /etc/dhcpd.conf:

Конфиг /etc/dhcpd.conf

allow booting;

allow bootp;

# Глобальные опции

option domain-name "nwudc.lan";

option broadcast-address 192.168.1.255;

option subnet-mask 255.255.255.0;

default-lease-time -1;

use-host-decl-names on;

ddns-update-style ad-hoc;

filename "pxelinux.0";

# Опции для подсети

subnet 192.168.1.0 netmask 255.255.255.0

range 192.168.1.10 192.168.1.30;

option routers 192.168.1.1;

Запуск демона происходит следующим образом:

# /usr/sbin/dhcpd -cf /etc/dhcpd.conf

Содержание  Вперед на стр. 063-104-2
загрузка...
Журнал Хакер #151Журнал Хакер #150Журнал Хакер #149Журнал Хакер #148Журнал Хакер #147Журнал Хакер #146Журнал Хакер #145Журнал Хакер #144Журнал Хакер #143Журнал Хакер #142Журнал Хакер #141Журнал Хакер #140Журнал Хакер #139Журнал Хакер #138Журнал Хакер #137Журнал Хакер #136Журнал Хакер #135Журнал Хакер #134Журнал Хакер #133Журнал Хакер #132Журнал Хакер #131Журнал Хакер #130Журнал Хакер #129Журнал Хакер #128Журнал Хакер #127Журнал Хакер #126Журнал Хакер #125Журнал Хакер #124Журнал Хакер #123Журнал Хакер #122Журнал Хакер #121Журнал Хакер #120Журнал Хакер #119Журнал Хакер #118Журнал Хакер #117Журнал Хакер #116Журнал Хакер #115Журнал Хакер #114Журнал Хакер #113Журнал Хакер #112Журнал Хакер #111Журнал Хакер #110Журнал Хакер #109Журнал Хакер #108Журнал Хакер #107Журнал Хакер #106Журнал Хакер #105Журнал Хакер #104Журнал Хакер #103Журнал Хакер #102Журнал Хакер #101Журнал Хакер #100Журнал Хакер #099Журнал Хакер #098Журнал Хакер #097Журнал Хакер #096Журнал Хакер #095Журнал Хакер #094Журнал Хакер #093Журнал Хакер #092Журнал Хакер #091Журнал Хакер #090Журнал Хакер #089Журнал Хакер #088Журнал Хакер #087Журнал Хакер #086Журнал Хакер #085Журнал Хакер #084Журнал Хакер #083Журнал Хакер #082Журнал Хакер #081Журнал Хакер #080Журнал Хакер #079Журнал Хакер #078Журнал Хакер #077Журнал Хакер #076Журнал Хакер #075Журнал Хакер #074Журнал Хакер #073Журнал Хакер #072Журнал Хакер #071Журнал Хакер #070Журнал Хакер #069Журнал Хакер #068Журнал Хакер #067Журнал Хакер #066Журнал Хакер #065Журнал Хакер #064Журнал Хакер #063Журнал Хакер #062Журнал Хакер #061Журнал Хакер #060Журнал Хакер #059Журнал Хакер #058Журнал Хакер #057Журнал Хакер #056Журнал Хакер #055Журнал Хакер #054Журнал Хакер #053Журнал Хакер #052Журнал Хакер #051Журнал Хакер #050Журнал Хакер #049Журнал Хакер #048Журнал Хакер #047Журнал Хакер #046Журнал Хакер #045Журнал Хакер #044Журнал Хакер #043Журнал Хакер #042Журнал Хакер #041Журнал Хакер #040Журнал Хакер #039Журнал Хакер #038Журнал Хакер #037Журнал Хакер #036Журнал Хакер #035Журнал Хакер #034Журнал Хакер #033Журнал Хакер #032Журнал Хакер #031Журнал Хакер #030Журнал Хакер #029Журнал Хакер #028Журнал Хакер #027Журнал Хакер #026Журнал Хакер #025Журнал Хакер #024Журнал Хакер #023Журнал Хакер #022Журнал Хакер #021Журнал Хакер #020Журнал Хакер #019Журнал Хакер #018Журнал Хакер #017Журнал Хакер #016Журнал Хакер #015Журнал Хакер #014Журнал Хакер #013Журнал Хакер #012Журнал Хакер #011Журнал Хакер #010Журнал Хакер #009Журнал Хакер #008Журнал Хакер #007Журнал Хакер #006Журнал Хакер #005Журнал Хакер #004Журнал Хакер #003Журнал Хакер #002Журнал Хакер #001