From: Сгибнев Михаил <http://dreamcatcher.ru>
Date: Mon, 22 Oct 2005 14:31:37 +0000 (UTC)
Subject: Реализация бездисковой рабочей станции на базе NetBSD
Применение бездисковых рабочих станций оправдано практически в любой
организации. Рассмотрим несколько аспектов их применениия:
* Удешевление стоимости рабочей станции
* Увеличение срока службы рабочей станции
* Повышение информационной безопасности
* Снижение времени простоя рабочей станции вследствие отказа
* Легкость и централизованность администрирования
Применение NetBSD в качестве операционной системы, используемой
конечным пользователем, позволит отказатся от коммерческого ПО,
косвенным образом увеличит коэффициент полезного использования
работниками служебного времени, исключит возможность
несанкционированной установки программ или использование съемных
носителей, позволит своевременно и централизованно обновлять версии
программного обеспечения, сократит время развертывания нового рабочего
места, предоставит администратору возможность удаленного управления
рабочей станцией с использованием защищенных протоколов.
Итак, для создания нашей сети нам потребуется сервер, с которого будет
загружатся операционная система для рабочей станции, рабочая станция и
соответствующим образом подготовленный дистрибутив. Рассмотрим
реализацию этих компонентов.
Рабочая станция
Большинство современных материнских плат имеют встроенную сетевую
карту и поддерживают возможность загрузку по сети. Вам просто
потребуется выставить соответствующую опцию в BIOS. Если материнская
плата не имеет такой возможности, то есть другие способы реализации
загрузки по сети, которые более подробно описаны здесь:
http://www.netbsd.org/Documentation/network/netboot/intro.i386.html
Сервер
В данной статье мы не будем рассматривать вопросы установки и
первоначальной настройки сервера, для получения дополнительной
информации я советую вам обратиться к соответствующей главе
руководства пользователя NetBSD (http://netbsd.org/guide/en/part-install.html)
Настройка сервера будет включать в себя:
* настройку сервера DHCP
* настройку сервера NFS
* создание клиентской файловой системы
Настройка сервера DHCP
Протокол DHCP(Dynamic Host Configuration Protocol) используется для
назначения рабочей станции сетевых параметров и передачи ей начального
загрузчика. Служба DHCP, как правило, запускается в качестве демона.
Большинство серверов DHCP поддерживают запросы BOOTP. Перед началом
работы необходимо удостовериться, что на сервере не запущен сервер
bootpd, поскольку он будет препятствовать нормальной работе dhcpd.
Существует две основные реализации dhcpd, от ISC и CMU. NetBSD
использует вариант от ISC, так как он в настоящее время активно
разрабатывается и применяется в различных операционных системах.
Файл конфигурации /etc/dhcpd.conf легко читаем и одинаково выглядит на
всех платформах. В настоящей статье мы будем использовать конфигурацию
для клиента с предопределенным адресом, но ее легко изменить и
дополнить, прочитав страницы руководства man dhcpd(8),
dhpcpd.conf(5) и dhcpd-options(5).
Будьте осторожны при использовании директивы next-server, когда
используете сервер tftp в качестве следующего этапа загрузки, так как
клиент предполагает, что next-server использует и tftp и nfs. Если в
сети не планируется наличие старых станций, которые для загрузки будут
использовать tftp, то удалите соответствующие строки из файла
конфигурации. Процесс найстройки сервера dhcpd выглядит следующим
образом:
удостоверьтесь, что ядро содержит опцию
pseudo-device bpfilter 4
создадим файл, где будут храниться записи о аренде адресов
# touch /var/db/dhcpd.leases
создаем файл конфигурации, откорректировав его под свои параметры
# global dhcpd parameters
deny unknown-clients; #disallow unknown connections
ddns-update-style none; #disallow dynamic DNS updates
allow bootp; #allow bootp requests, thus the dhcp
#server will act as a bootp server
# which network interface the server will listen on
subnet 192.168.1.0 netmask 255.255.255.0 {
#the zeros indicate which range
}
#of addresses are allowed to connect
#set of parameters common to all clients
group {
option broadcast-address 192.168.1.255;
option domain-name "test.net";
option domain-name-servers dns.test.net;
option routers router.test.net;
option subnet-mask 255.255.255.0;
}
#set of parameters specific to one particular host
host client.test.net {
hardware ethernet CC:CC:CC:CC:CC:CC;
fixed-address 192.168.1.10;
option host-name "client"; #name of the host (if the fixed address
#doesn't resolve to a simple name)
filename "ofwboot.xcf"; #name of the bootloader or kernel to
#download via tftp
next-server tftpserver.test.net; #which machine to tftp filename from
option root-path "/export/client/root"; #the path on the NFS server.
#typically the client assumes the
#nfsserver = tftpserver
#always-reply-rfc1048 true; #this is needed if your client isn't
#getting the options you set and
#the log says "(non-rfc1048)"
#next68k machines require this to be
#set false
}
#you may paste another "host" entry here for additional clients on this network
Запускаем демон dhcpd в режиме отладки
# /usr/sbin/dhcpd -d -f
Когда сервер получит запрос, мы должны увидеть примерно следующее:
BOOTREQUEST from CC:CC:CC:CC:CC:CC via le0 (non-rfc1048)
BOOTREPLY for 192.168.1.10 to client.test.net (CC:CC:CC:CC:CC:CC) via le0
DHCPDISCOVER from CC:CC:CC:CC:CC:CC via le0
DHCPOFFER on 192.168.1.10 to CC:CC:CC:CC:CC:CC via le0
DHCPREQUEST for 192.168.1.10 from CC:CC:CC:CC:CC:CC via le0
DHCPACK on 192.168.1.10 to CC:CC:CC:CC:CC:CC via le0
Обычно, загрузчик не имеет функций обратной связи, но он будет искать
файловую ситему, что приведет к следующим сообщениям:
NFS является стандартной сетевой файловой системой UNIX. Обычно,
загрузчик рабочей станции ищет ядро на сервере nfs, загружает его в
память и передает ему управление. Клиенту необходим доступ на
чтение/запись на сервере nfs с правами root, поэтому обратите внимание
на разграничение доступа к каталогам. К следующим каталогам доступ с
правами root необходим:
/
/var
/etc
/dev
Самым простым, будет экспортировать /home и /usr отдельно от
/export/client/root и без привилегий root. Обратите внимание, что
/swap должен быть примонтирован как файл.
Если NFS запущен, но не может экспортировать корневой каталог, то
клиент получит сообщение:
boot: no such file or directory
Если у вас все получилось правильно, то вы увидете на экране несколько
строк и вращающийся курсор. Так как клиентская файловая система у нас
еще не создана, то мы получим панику на старте init.
Внесем изменения в /etc/rc.conf
nfs_server=YES # enable server daemons
mountd_flags=""
nfsd_flags="-6tun 4"
dhcpd=YES
dhcpd_flags="-q"
Создание клиентской файловой системы
Для создания файловой системы необходимо выполнить следущие действия:
# cd /export/client/root
Распакуем наборы из дистрибутива NetBSD:
# tar [--numeric-owner] -xvpzf /export/client/NetBSD-release/binary/sets/base.tgz
# tar [--numeric-owner] -xvpzf /export/client/NetBSD-release/binary/sets/etc.tgz
Создадим файл /etc/ifconfig.le0, где le0 является именем сетевого
интерфейса в клиентской системе NetBSD. Создаем файл
/export/client/root/etc/ifconfig.le0, содержащий следующую строку:
После чего можно перейти в многопользовательский режим и использовать
рабочую станцию в обычном порядке. После перезагрузки работа станции
ничем не будет отличаться от загрузки с жесткого диска.
627 Прочтений • [Реализация бездисковой рабочей станции на базе NetBSD (netbsd bsd diskless xterm boot)] [08.05.2012] [Комментариев: 0]