Терминальный сервер со стороны администратора

Дмитрий, в связи со сложившейся обстановкой взяла твой модуль с тем, чтобы отдать тебе свой (соседний). Подробности --- в рассылке. --- ОльгаТочилкина

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

Альтератор. Изменился раздел настройки сети.

../terminal_server_alterator_network.png

Что нужно организовать для сетевой загрузки:

Настройки DHCP для загрузки тонких клиентов (напомним, что тонким клиентом называют компьютер-клиент сети с терминальной архитектурой, который переносит все задачи по обработке информации на терминальный сервер). Посмотрим ещё раз файл /etc/DHCP/dhcpd.conf.

ddns-update-style interim;
ignore client-updates;
allow booting;
allow bootp;

option option-128 code 128 = string;
option option-129 code 129 = string;

use-host-decl-names on;

next-server 192.168.0.1;

subnet 192.168.0.0 netmask 255.255.255.0 {
    range 192.168.0.20 192.168.0.250;
    option domain-name "example.com";
    option domain-name-servers 192.168.0.1;
    option broadcast-address 192.168.0.255;
    option routers 192.168.0.1;
    option subnet-mask 255.255.255.0;
    option root-path "192.168.0.1:/var/lib/ltsp/i586";
    if substring( option vendor-class-identifier, 0, 9 ) = "PXEClient" {
        filename "/ltsp/i586/pxelinux.0";
    } else if substring( option vendor-class-identifier, 0, 9 ) = "Etherboot" {
        filename "/ltsp/i586/nbi.img";
        #filename "/ltsp/i586/pxelinux.0";
    } else {
        option-129 = " initrd=/ltsp/i586/initrd.img";
        filename "/ltsp/i586/vmlinuz";
    }
}

subnet 10.0.2.0 netmask 255.255.255.0 {}

Тут присутствует внешняя сеть и развесистый блок для передачи настроек во внутреннюю сеть. Из всех настроек отметим три наиболее интересных:

Если у вас не работает загрузка по сети (ваша сетевая карта не поддерживает PXE), то необходимо воспользоваться rom-o-matic.net (он же Etherboot). Он позволяет изготовить bootrom для сетевой карты. Это значит, что для конкретной карты можно сгенерировать образ, который можно доставить на компьютер при помощи различных носителей информации или записав в загрузочную запись, в BIOS.

Настройки tftp. Он по умолчанию запускается. Всё, что можно при помощи tftp сделать --- скачать определённый файл. Если у нас работает PXE, то скачивается pxelinux.0. Это загрузчик, он является частью syslinux. После того, как он загружается на рабочей машине, Pxelinux.0 совершает некоторые действия. В первую очередь, он скачивает конфиг. Сначала он перебирает конфиги, соответствующие IP, затем полному MAC-адресу и его частям (при необходимости разных сценариев загрузки для разных групп машин). В /var/lib/tftpboot/ltsp/i586/ лежат все файлы, которые отдаются по tftp, в pxelinux.cfg/default находится конфиг, использующийся по умолчанию. Он выглядит так:

DEFAULT vmlinuz ro initrd=initrd.img root=/dev/nfs nfsroot=/var/lib/ltsp/i586,udp ip=dhcp

Синтаксис здесь такой же, как и везде в syslinux. Мы видим, что ядро специфическое, используется специфический root. Строчка nfsroot указывает, где находится корневая ФС.

В принципе, вовсе не обязательно компилировать NFS-клиент в ядро, можно сделать аналогичный конфиг с обычным ядром.

Итак, после выполнения загрузчика (pxelinux.0) грузится ядро, initrd, подключается корневая ФС по сети и оттуда происходит дальнейший старт клиента.

Возвращаемся к тому, что происходит дальше. Дальше происходит автоматическое обновление DNS, значит, DNS тоже настроен. В качестве DNS-сервера каким-то образом используется avahi-daemon.

Наконец, расмотрим NFS. На NFS-серверах находятся корневые ФС клиентов. Делается это следующим образом: в GNU/Linux по умолчанию для подключения сетевых томов используется NFS, network file system, специальный протокол сетевой ФС. Отличительной особенностью NFS являются две вещи: во-первых, он реализован поверх udp с соответствующими ограничениями udp. То есть, NFS-клиент и NFS-сервер обмениваются друг с другом датаграммами, и тот факт, что операция записи не прошла или что случилось, отслеживается на уровне прикладном, а не транспортном. Однако внутри NFS есть много интересного: NFS является идиопатентной, то есть несколько одинаковых действиях выполняются как одно. Единственная трудно решаемая проблема --- блокировки. Раньше никаких блокировок не было, потом появился nfslockd. Вторая особенность --- уровень доверия NFS вынесен на уровень IP. То есть машина с таким-то IP либо имеет доступ к NFS, либо нет. Так было в NFS 2 и 3, так же вроде NFS 4. Когда говорится хост --- читай, пользователь root на хосте. Другое дело, что в случае тонких клиентов мы отдаём кому угодно ФС, но только на чтение, то есть всё в порядке. Соответственно, настройка NFS-сервера, программы, которая раздаёт NFS по сети, довольно простая.

/var/lib/ltsp/i586       (ro,no_root_squash,async)

Слева путь, справа список хостов и параметры в скобках через запятую. Если списка хостов нет, то отдаётся всем. ro --- readonly, no_root_squash --- отключение squashing'а, то есть обработки запросов от клиентов с UID=0 как запросов от пользователя nobody. Но, опять же, запросы только на чтение. Сервис, который обеспечивает NFS, называется unfsd, который представляет из себя урезанную версию обычного nfsd.


Сведения о ресурсах

Готовность (%)

Продолжительность (ак. ч.)

Подготовка (календ. ч.)

Полный текст (раб. д.)

Предварительные знания

Level

Maintainer

Start date

End date

25

1

1

1

1

MaximByshevskiKonopko, DmitryChistikov


CategoryLectures CategoryPspo CategoryMpgu CategoryUneex