The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Реализация бездисковой рабочей станции на базе NetBSD (netbsd bsd diskless xterm boot)


<< Предыдущая ИНДЕКС Правка src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: netbsd, bsd, diskless, xterm, boot,  (найти похожие документы)
From: Сгибнев Михаил <http://dreamcatcher.ru>; Date: Mon, 22 Oct 2005 14:31:37 +0000 (UTC) Subject: Реализация бездисковой рабочей станции на базе NetBSD Оригинал: http://dreamcatcher.ru/docs/diskless.html Введение -------- Применение бездисковых рабочих станций оправдано практически в любой организации. Рассмотрим несколько аспектов их применениия: * Удешевление стоимости рабочей станции * Увеличение срока службы рабочей станции * Повышение информационной безопасности * Снижение времени простоя рабочей станции вследствие отказа * Легкость и централизованность администрирования Применение 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 Обычно, загрузчик не имеет функций обратной связи, но он будет искать файловую ситему, что приведет к следующим сообщениям: boot device: nfs_boot: trying DHCP/BOOTP nfs_boot: DHCP server: 0xC0A80105 nfs_boot: my_name=client nfs_boot: my_domain=test.net nfs_boot: my_addr=0xC0A8010A nfs_boot: my_mask=0xffffff00 nfs_boot: gateway=0xC0A80101 root on :/export/client/root Настройка сервера NFS NFS является стандартной сетевой файловой системой UNIX. Обычно, загрузчик рабочей станции ищет ядро на сервере nfs, загружает его в память и передает ему управление. Клиенту необходим доступ на чтение/запись на сервере nfs с правами root, поэтому обратите внимание на разграничение доступа к каталогам. К следующим каталогам доступ с правами root необходим: / /var /etc /dev Самым простым, будет экспортировать /home и /usr отдельно от /export/client/root и без привилегий root. Обратите внимание, что /swap должен быть примонтирован как файл. |Сервер (экспортируемые каталоги) Клиент /export/client/root / /export/client/swap (file) /swap (file) /export/client/usr /usr /export/client/home /home Настройка сервера будет включать в себя следующие шаги: Удостоверимся, что ядро содержит опцию options NFSSERVER Выполним # mkdir -p /export/client/root/dev Выполним # mkdir /export/client/usr Выполним # mkdir /export/client/home Выполним # touch /export/client/swap Выполним # cd /export/client/root Выполним # tar -xvpzf /export/client/NetBSD-release/binary/sets/kern.tgz Выполним # mknod /export/client/root/dev/console c 0 0 Добавим следующие строки в /etc/exports: #/etc/exports /export/client/root -maproot=root:wheel client.test.net /export/client/swap -maproot=root:wheel client.test.net /export/client/usr -maproot=nobody:nobody client.test.net /export/client/home -maproot=nobody:nobody client.test.net Выполним # ps -aux | grep mountd Если сервер mountd запущен, выполним kill -HUP для повторного считывания файла конфигурации /etc/exports. В противном случае, запустим его: # /usr/sbin/mountd Выполним # ps -aux | grep nfsd Если демон nfsdaemons не запущен, запустим его: # /usr/sbin/nfsd -tun 4 В случае, когда NFS сервер не запущен, клиент получит следующее сообщение: le(0,0,0,0): Unknown error: code -1 boot: Unknown error: code -1 Если 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 # mkdir /export/client/root/kern Создадим раздел подкачки в 16 Мб: # mkdir /export/client/root/swap # dd if=/dev/zero of=/export/client/swap bs=4k count=4k Создадим файл /etc/ifconfig.le0, где le0 является именем сетевого интерфейса в клиентской системе NetBSD. Создаем файл /export/client/root/etc/ifconfig.le0, содержащий следующую строку: inet client netmask 255.255.255.0 broadcast 192.168.1.255 В данном примере, маску 255.255.255.0 необходимо заменить на маску, используемую в вашей сети, также, как широковещательный адрес 192.168.1.255 Создадим файл /export/client/root/etc/fstab, содержащий следующие строки: #/etc/fstab nfsserver:/export/client/swap none swap sw,nfsmntpt=/swap nfsserver:/export/client/root / nfs rw 0 0 nfsserver:/export/client/usr /usr nfs rw 0 0 nfsserver:/export/client/home /home nfs rw 0 0 Откроем файл /export/client/root/etc/rc.conf и внесем в него следующие изменения: hostname="client" defaultroute="192.168.1.1" nfs_client=YES auto_ifconfig=NO net_interfaces="" Внесем изменеия в /export/client/root/etc/hosts: #/etc/hosts 192.168.1.10 client.test.net client 192.168.1.5 nfsserver.test.net nfsserver # mv /export/client/root/usr/* /export/client/usr/ Завершение Первую свою загрузку клиентская машина осуществит в однопользовательском режиме, после чего необходимо будет создать устройства в каталоге /dev: Enter pathname of shell or RETURN for sh: # mount /usr # cd /dev # /bin/sh MAKEDEV all Проверить работу swap: # swapctl -A swapctl: adding nfsserver:/export/client/swap as swap device at priority 0 # swapctl -l Device 512-blocks Used Avail Capacity Priority /dev/?? 32768 0 32768 0% 0 И внести очередное изменеие в /etc/rc.conf: #vi /etc/rc.conf rc_configured=YES После чего можно перейти в многопользовательский режим и использовать рабочую станцию в обычном порядке. После перезагрузки работа станции ничем не будет отличаться от загрузки с жесткого диска.

<< Предыдущая ИНДЕКС Правка src Установить закладку Перейти на закладку Следующая >>

 Добавить комментарий
Имя:
E-Mail:
Заголовок:
Текст:




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру