Бездисковая загрузка терминала по сети с помощью PXE

PXE-совместимые прошивки используются производителями при изготовлении сетевых карт и BIOS материнских плат с интегрированными сетевыми картами. Поэтому для бездисковой загрузки потребуется сетевая карта укомплектованная прошивкой PXE. Если у вас сетевая карта без прошивки, но Вы желаете сделать бездисковую загрузку, то как единственный выход в использовании прошивок Etherboot. Этот вариант здесь не рассматривается.

Как работает PXE

1.PXE запрос DHCP сервера: сетевая карта с поддержкой PXE запрашивает DHCP сервер на получение параметров, таких как IP-адрес клиента, маска подсети, IP-адрес TFTP сервера, на котором находится образ, а также - имя образа.

2.Ответ DHCP сервера – сервер назначает IP-адрес и затем передает его для использования клиенту вместе с другими параметрами.

3.Загрузка образа с TFTP сервера – клиент загружает с указанного DHCP-сервером IP-адреса TFTP сервера сначала PXE загрузчик - pxelinux. 0, с помощью которого загружается уже ядро операционной системы Linux - vmlinuz и образ файловой системы - initrd, включающий все необходимое для работы клиента.

4.Загрузка конфигурационных файлов – загрузочные скрипты системы Linux получают c TFTP-сервера конфигурационные файлы, в которых описаны необходимые параметры для соединения клиента с терминальным сервером.

5.Инициализация терминального клиента– в зависимости от параметров конфигурационного файла запускается RDP или ICA клиент, который устанавливает соединение с терминальным сервером.

Настройка сервера DHCP и TFTP на linux

Пример настройки на Slackware.

В slackware чтобы inetd слушал запросы TFTP, нужно расcкомментировать строку в файле /etc/inetd.conf:

 tftp dgram udp wait root /usr/sbin/in.tftpd in.tftpd -s /tftpboot -r blksize 

И сделать рестарт сервиса inetd:

host:~# killall -1 inetd

Потом создать директорию tftpboot и дать права:

host:~# mkdir /tftpboot
host:~# chmod -R 777 /tftpboot

Далее настраиваем DHCP. Пример dhcpd.conf:

option domain-name "example.com";
option domain-name-servers 192.168.0.1;
server-identifier NAME_HOST;
authoritative ;
allow booting;
allow bootp;
max-lease-time 172800;
ignore client-updates;
ddns-domainname "example.com";
ddns-updates on;
ddns-update-style interim;
default-lease-time 86400;
log-facility local7;

subnet 192.168.0.0 netmask 255.255.255.0 {
  option subnet-mask 255.255.255.0;
  option routers 192.168.0.1;
  one-lease-per-client on;
  range 192.168.0.20 192.168.0.30;
  
}
group {
    filename "pxelinux.0";
	next-server 192.168.0.1;
	
    host 1 {	
	hardware ethernet 00:0E:8F:32:B6:C5;	
	fixed-address 192.168.0.10;	
	}
	
    host 2 {	
	hardware ethernet 08:20:07:26:C0:A5;	
	fixed-address 192.168.0.11;	
	}	
}

Распаковываем образ thinstation с pxe в /tftpboot


Установка в Debian stretch.

Ставим сервер DHCP:

apt-get install isc-dhcp-server

Конфиг /etc/default/isc-dhcp-server

DHCPDv4_CONF=/etc/dhcp/dhcpd.conf

DHCPDv4_PID=/var/run/dhcpd.pid

INTERFACESv4="eth0"

Конфиг /etc/dhcp/dhcpd.conf как в примере выше.

Ставим сервер TFTP:

apt-get install tftpd-hpa

Конфиг /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"

TFTP_DIRECTORY="/tftpboot"

TFTP_ADDRESS="192.168.0.2:69"

TFTP_OPTIONS="--secure"

где 192.168.0.2 внешний IP интерфейса сервера

Перезапускаем сервис:

/etc/init.d/tftpd-hpa restart

Для записи логов в /var/log/dhcpd.log нужно прописать в dhcpd.conf:

log-facility local7;

В /etc/rsyslog.conf добавить в конец файла:

local7.* /var/log/dhcpd.log

Перезапустить сервисы:

/etc/init.d/rsyslog restart
/etc/init.d/isc-dhcp-server restart

Настройка сервера Windows 2003

Службы и сервисы, необходимые для работы «тонких» клиентов

Вы можете использовать в качестве терминального сервера:

• Microsoft® Windows® Terminal Server

• Citrix® MetaFrame®

Если Вы используете в качестве терминального сервера Windows® Terminal Server, выберите следующие службы и сервисы:

• DHCP

• TFTP

• Terminal Server

• Пакет файлов для загрузки по PXE

Если Вы используете в качестве терминального сервера Citrix® MetaFrame®, выберите следующие службы и сервисы:

• DHCP

• TFTP

• Citrix® MetaFrame®

• Пакет файлов для загрузки по PXE

Настройка DHCP Server

Для настройки DHCP Server выполните следующие действия:

1. Выберите Start→Programs→Administrative Tools→Manage Your Server.

2. Нажмите кнопу Add or remove a role.

3. В открывшемся диалоговом окне Preliminary Steps нажмите кнопку Next.

4. В открывшемся диалоговом окне Configuration Options выберите элемент Custom Configuration и нажмите кнопку Next.

5. В списке Server Role выберите DHCP Server и щелкните на кнопке Next дважды.

6. В диалоговом окне Welcome to the new Scope Wizard нажмите кнопку Next.

7. В диалоговом окне Scope Name в полях Name и Description введите имя и описание, после чего нажмите кнопку Next.

8. В диалоговом окне IP Address Range выполните следующие действия для выдачи DHCP сервером IP адресов для тонких клиентов:

• введите Start IP Address (Начальный IP адрес)

• введите End IP Address (Конечный IP адрес)

• нажмите кнопку Next.

9. В открывшемся диалоговом окне Add Exclusions допускается указать диапазон адресов, которые не будут выделяться DHCP сервером. Нажмите кнопку Next.

10. В открывшемся диалоговом окне Lease Duration можете указать время использования IP-адреса тонкими клиентами. Нажмите кнопку Next.

11. В диалоговом окне Configure DHCP Options выберите No, I will configure these options later. Нажмите кнопку Next, затем кнопку Finish.

12. Подтвердите действие очередным нажатием кнопки Finish.

13. Выберите Start→Programs→Administrative Tools→Manage Your Server.

14. В открывшемся диалоговом меню выберите элемент Manage this DHCP server

15. В диалоговом окне выберите элемент Server Options. Нажав правую клавишу мыши, в открывшемся контекстном меню выберите Configure Options.

16. В списке выполните следующие действия:

• выберите пункт 066 Boot Server Host Name и укажите IP адрес TFTP сервера, на который устанавливали DHCP сервер

• выберите пункт 067 Bootfile Name и введите имя pxe-загрузчика, а именно pxelinux.0

17. Нажмите кнопку Apply.

18. В диалоговом окне выберите элемент Scope [x.x.x.x]. Нажав правую клавишу мыши, в открывшемся контекстном меню выберите Activate.

Настройка DHCP сервера завершена.

Настройка TFTP Server

1. Выберите Start→Settings→Control Panel→Add or Remove Programs.

2. Нажмите кнопку Add/Remove Windows Components.

3. В списке Components выберите Remote Installation Services и нажмите кнопку Next.

4. Нажмите кнопку Finish и на запрос о перезагрузке выберите No. Перезагрузку сервера осуществите позднее.

Настройка Terminal Server

1. Выберите Start→Programs→Administrative Tools→Manage Your Server.

2. нажмите кнопку Add or remove a role.

3. В диалоговом окне Preliminary Steps нажмите кнопку Next.

4. В списке Server Role выберите элемент Terminal Server и нажмите кнопку Next дважды.

5. В открывшемся диалоговом окне Configure Your Server Wizard появится предупреждение о перезагрузке сервера. Нажмите кнопку Ok.

6. После перезагрузки нажмите кнопку Finish.

Настройка TFTP Server на автоматический запуск

1. Нажмите правую клавишу мыши на ярлыке My Computer и выберите Manage.

2. Раскройте список Services and Applications и выберите элемент Services.

3. Справа в появившемся списке нажмите правую клавишу мыши на пункте Trivial FTP Daemon и в контекстном меню выберите Properties.

4. В закладке General в выпадающем меню Startup type выберите Automatic. Нажмите кнопку Apply, затем кнопку Ок.

Создание пользователей терминальных сессий

1. Нажмите правую клавишу мыши на ярлыке My Computer и выберите Manage.

2. В раскрывающемся списке Local Users and Groups выберите папку Users.

3. В появившемся справа списке пользователей нажмите правую клавишу мыши и в открывшемся контекстном меню выберите New User.

4. В диалоговом окне New User введите User name (Имя пользователя) и Password (Пароль). Допустимо отменить выделение User must change password at next logon (Пользователь должен изменить пароль при следующем подключении) и установить необходимые вам пункты: User cannot change password (Пользователь не может изменить пароль), Password never expires (Срок действия пароля никогда не истекает), Account is disabled (Учетная запись отключена). Нажмите кнопку Apply, затем кнопку Ок.

5. В списке выберите папку Groups, и в списке справа нажмите правой клавишей мыши на имени группы Remote Desktop Users, далее выберите Propeties.

6. В появившемся меню выберите General, нажмите кнопку Add и введите имя пользователя, которому Вы хотите разрешить терминальный доступ к серверу. Затем щелкните на кнопке Check Names и подтвердите свой выбор нажатием на кнопку Ок.

7. Нажмите кнопку Apply и кнопку Ок.

Копирование файлов, необходимых для загрузки «тонких» клиентов

1. Создайте папку C:\tftpdroot.

2. Скопируйте в нее файлы pxelinux.0, vmlinuz, initrd, thinstation.conf.network.

3. Создайте папку с:\tftpdroot\pxelinux.cfg.

4. Скопируйте файл default в папку c:\tftpdroot\pxelinux.cfg

5. Теперь необходимо отредактировать конфигурационные файлы. Подробное опи¬са¬ние действий представлено в части 3. «Изменение параметров конфи¬гура¬ци¬он¬ных файлов».

Настройка сервера для передачи звука тонким клиентам Внимание! Для передачи звука «тонким» клиентам необходимо, чтобы на сервере была установлена ОС Microsoft® Windows® 2003, звуковая карта и необходимые драйверы.

1. Выберите Start→Settings→Control Panel

2. Откройте Sounds and Audio Devices и установите выделение в пункте Enable Windows Audio. Нажмите кнопку Ok.

3. На запрос о перезагрузке нажмите кнопку Yes.

4. После перезагрузки вызовите Microsoft® Management Console (Start→Run→mmc).

5. Затем выполните следующие действия: File→Add/Remove Snap-in и нажмите кнопку Add.

6. Выберите Group Policy Object Editor и нажмите кнопку Add, затем последовательно нажимайте на кнопки Finish, Close,Ok.

7. Откройте элемент Local Computer Policy→Computer Configuration→Administrative Templates→Windows Components→Terminal Services→Client/Server data redirection.

8. В списке справа правой клавишей выберите Properties в пункте Allow audio redirection.

9. Выделите пункт Enabled и нажмите кнопку Apply, затем кнопку Ок.

Изменение параметров конфигурационных файлов

Конфигурационные файлы

При запуске «тонкого» клиента происходит поиск на TFTP-сервере конфигурационных фай-лов в следующем порядке:

1. thinstation.conf.buildtime - Задает параметры в загрузочном образе

2. thinstation.conf.network – глобальный конфигурационный файл. Этот файл может использоваться, если Вам требуются одинаковые настройки для всех «тонких» клиентов. Если вам необходимы по различным причинам (разные частотные характеристики развертки мониторов, клиенты должны устанавливать сессии только с определенными терминальными серверами, обеспечение передачи звука только определенным клиентам) разные настройки «тонких» клиентов, то используйте ниже описанные конфигурационные файлы.

3. thinstation.hosts – конфигурационный файл содержащий информацию о клиентах (имя компьютера, MAC-адрес, группу). Для объединения клиентов в группы используется совместно с файлом thinstation.conf.group-ИМЯ_ГРУППЫ. Для ин¬ди¬ви¬ду-альной настройки клиентов по имени компьютера используется совместно с thinstation.conf-ИМЯ_КОМЬЮТЕРА.

4. thinstation.conf.group-ИМЯ_ГРУППЫ – конфигурационный файл группы. Ис¬поль-зуется совместно с thinstation.hosts (например, thinstation.conf.group-managers).

5. thinstation.conf-ИМЯ_КОМПЬЮТЕРА – конфигурационный файл для инди¬ви¬ду-альной настройки клиента по имени компьютера. Используется совместно с thinstation.hosts (например, thinstation.conf-ivanov).

6. thinstation.conf-IP_АДРЕС - конфигурационный файл для индивидуальной на¬строй-ки клиента по IP-адресу (например, thinstation.conf-192.168.0.1).

7. thinstation.conf-MAC_АДРЕС - конфигурационный файл для индивидуальной на-строй¬ки клиента по MAC-адресу (например, thinstation.conf-000C6ED598AC).

8. thinstation.conf.user - локальный конфигурационный файл, размещаемый на локальных носителях (жесткий диск, дискета, флэшка) в каталоге thinstation.profile

Последовательность применения переменных из файлов конфигурации:

Первым применяется thinstation.conf.buildtime при начальной загрузки образа, затем происходит получение файла thinstation.conf.network, и далее индивидуальные файлы конфигурации.

Если значение переменной SESSION_0_TYPE=rdesktop в файле thinstation.conf.network, а в thinstation.conf-ИМЯ_КОМЬЮТЕРА уже SESSION_0_TYPE=freerdp, то в результате загрузится freerdp.

Но если уровень загрузки программы rc.0, то программа инициализируется раньше чем подхватываются файлы конфигурации. В таком случае параметры для этой программы можно задать только при сборке образа системы в файле thinstation.conf.buildtime.

Объединение клиентов в группы

Используя файлы thinstation.hosts и thinstation.conf.group-ИМЯ_ГРУППЫ можно объединить клиентов в группы с одинаковыми конфигурациями. Для этого нужно внести сведения в файл thinstation.hosts, такие как ИМЯ_КОМПЬЮТЕРА,MAC_АДРЕС, ИМЯ_ГРУППЫ. Отредактировать файл thinstation.conf.group-ИМЯ_ГРУППЫ. Подробное описание синтаксиса конфигурационных файлов можно посмотреть в конце этого раздела.

Индивидуальная настройка «тонких» клиентов Для индивидуальной настройки «тонких» клиентов следует использовать следующие группы файлов:

1. Используя thinstation.hosts и thinstation.conf-ИМЯ_КОМПЬЮТЕРА можно настроить клиент с определенным именем компьютера. Для этого в файл thinstation.hosts нужно внести сведения, такие как ИМЯ_КОМПЬЮТЕРА и MAC_АДРЕС. Кроме этого, требуется отредактировать файл thinstation.conf.group-ИМЯ_КОМПЬЮТЕРА.

2. Используя thinstation.conf-IP_АДРЕС можно передать настройки клиенту с конкретным IP-адресом. Так как IP-адрес выдается DHCP сервером, то необходимо настроить сервер так, чтобы каждому клиенту выдавался уникальный IP-адрес.

3. Используя thinstation.conf-MAC_АДРЕС можно передать настройки клиенту с конкретным MAC-адресом. Для этого достаточно отредактировать файл thinstation.conf-MAC_АДРЕС.

Синтаксис конфигурационных файлов

Синтаксис конфигурационного файла thinstation.hosts :

#ИМЯ_КОМПЬЮТЕРА	MAC_АДРЕС	     ИМЯ_ГРУППЫ	КОМЕНТАРИИ
thinstation1 			000103014152	samba		# IVANOV
thinstation2 			000103014152			# PETROV

Синтаксис конфигурационных файлов thinstation.conf.network , thinstation.conf.group-ИМЯ_ГРУППЫ, thinstation.conf-ИМЯ_КОМПЬЮТЕРА, , thinstation.conf-IP_АДРЕС, thinstation-MAC_АДРЕС :

# --- Пример конфигурационного файла

# --- Опции сессий
#
#
# SESSION_TITLE            		Описание сессии
# SESSION_TYPE         	   	Тип сессии:
#                          - rdesktop      	Терминальный клиент к Microsoft® Terminal 
#		      		        	Services
#                          - ica              	Терминальный клиент к Citrix® MetaFrame®
#
# SESSION_SCREEN           	Экран сессии на котором запускается X server
# SESSION_AUTOSTART        	On/Off Автоматический ввод логина и пароля
# SESSION_WORKSPACE        	Workspace для запуска программ
# SESSION_PACKAGE_SERVER   	IP адрес терминального сервера
# SESSION_PACKAGE_OPTIONS  	опции терминального клиента
#
#
# --- Опции клиента Citrix 
#
#ICA_USE_SERVER_KEYBOARD    	Использовать раскладку клавиатуры сервера, 
#                                              	В противном случае используйте KEYBOARD_MAP
#ICA_BROWSER_PROTOCOL   	Протокол браузера, HTTPonTCP или UDP
#ICA_ENCRYPTION                 	Уровни шифрации
#ICA_COMPRESS                   	Компрессия, On/Off
#ICA_AUDIO                         	Audio, On/Off
#ICA_AUDIO_QUALITY           	Качество Audio: Low, Medium, High
#ICA_APPLICATION_SET        	Опубликованное приложение (Не используется если есть ICA_SERVER)
#ICA_SERVER                       	Сервер Citrix (не используется если есть                 
#			              	ICA_APPLICATION_SET)

# Настройки по умолчанию для всех сессий

SCREEN=0
WORKSPACE=1
AUTOSTART=Off
ICA_USE_SERVER_KEYBOARD=On
ICA_BROWSER_PROTOCOL=HTTPonTCP
ICA_SERVER=192.168.88.100
ICA_ENCRYPTION=Basic
ICA_COMPRESS=On
ICA_AUDIO_QUALITY=Medium
ICA_AUDIO=On

# Индивидуальные настройки,

# Внимание! Будьте уверены, что Вы начинаете с SESSION 0. В противном случае Вы 
# получите ошибку при загрузке

SESSION_0_TITLE="Citrix MetaFrame Terminal Server"
SESSION_0_TYPE=ica
SESSION_0_SCREEN=1
SESSION_0_ICA_SERVER=192.168.88.100

# Опция -a указывает глубину цвета
# Будьте уверены, что ваш сервер поддерживает такую глубину цвета, так как 
# в противном случае это приведет к ошибке

SESSION_1_TITLE="Microsoft Terminal Server"
SESSION_1_TYPE=rdesktop
SESSION_1_SCREEN=0
SESSION_1_RDESKTOP_SERVER=192.168.88.100
SESSION_1_RDESKTOP_OPTIONS="-u user -a 16 -r sound"
# SESSION_0_AUTOSTART=Off

# --- Главные настройки
#
# KEYBOARD_MAP       		Раскладка клавиатуры
# AUTOPLAYCD         		автоматическое проигрывание CD
# RECONNECT_PROMPT   		Переподключение к серверу: On/Off

KEYBOARD_MAP=ru
# AUTOPLAYCD=On
RECONNECT_PROMPT=On

# --- Сетевые настройки
#
# NET_HOSTNAME           		Имя компьютера, если не используется 
#								   thinstation.hosts,
#					символ *  будет заменен на MAC address

NET_HOSTNAME=ts_*

# --- Настройки XServer 
#
# SCREEN_RESOLUTION       	Разрешение экрана 1024х768,800х600,640х480
# SCREEN_COLOR_DEPTH      	Число бит на пиксель (8,16,24)
# SCREEN_HORIZSYNC        	Горизонтальная частота в Khz.
# SCREEN_VERTREFRESH      	Вертикальная частота в Hz.

SCREEN_RESOLUTION="800x600"
SCREEN_COLOR_DEPTH="16 | 8 | 24"
SCREEN_HORIZSYNC="30-64"
SCREEN_VERTREFRESH="56-87"

Пример основныx настроек thinstation.conf.user:

NET_USE_DHCP=off # Если не используете DHCP, то обязательно указать OFF 
NET_USE_TFTP=off # Для загрузки файлов конфигурации с диска поставить OFF 
NET_IP_ADDRESS=XXX.XXX.XXX.XXX # IP клиента 
NET_MASK=255.255.255.0 # Маска подсети 
#NET_GATEWAY=XXX.XXX.XXX.XXX # Если нужно указать шлюз 
#NET_DNS1=XXX.XXX.XXX.XXX # IP адрес DNS сервера 
#NET_DNS2=XXX.XXX.XXX.XXX
SCREEN=0
WORKSPACE=1
AUTOSTART=Off # Для нескольких сессий выбрать off. 

SESSION_0_TITLE="terminall server 1" # Название сервера или имя клиента, отображаеться в режиме AUTOSTART=Off 
SESSION_0_TYPE=rdesktop # Тип сессии 
SESSION_0_SCREEN=1 # Экран сессии 
SESSION_0_RDESKTOP_SERVER=XXX.XXX.XXX.XXX # IP терминального сервера 
SESSION_0_RDESKTOP_OPTIONS="-u 'user'" # Имя пользователя 

#SESSION_1_TITLE="terminall server 2"
#SESSION_1_TYPE=rdesktop
#SESSION_1_SCREEN=1
#SESSION_1_RDESKTOP_SERVER=XXX.XXX.XXX.XXX
#SESSION_1_RDESKTOP_OPTIONS="-u 'user2'"

# Подключение устройств в RDP сессии. 
RDESKTOP_SOUND=Off
RDESKTOP_FDD=On		
RDESKTOP_CDROM=Off
RDESKTOP_HDD=Off
RDESKTOP_USB=On
RDESKTOP_1394=Off
RDESKTOP_COM3=Off
RDESKTOP_COM4=Off
RDESKTOP_SLOWLINK=On # Оптимизация под модемное соединение 
RDESKTOP_COMPRESSION=On # Использование компрессии для RDP данных 
RDESKTOP_COLOR_DEPTH="16" # Глубина цвета 

KEYBOARD_MAP=en_us # Раскладка клавиатуры 
TIME_ZONE="Europe/Moscow"
USB_ENABLED=On # Включение драйверов USB 
AUDIO_LEVEL=67
AUTOPLAYCD=On # Автоматическое проигрывание музыкальных CD 
DAILY_REBOOT=On # Если в течении дня нет соединения с сервером, то происходит перезагрузка 
CUSTOM_CONFIG=off
RECONNECT_PROMPT=menu # Действие при отключении сессии, варианты: ON (переподключиться), OFF (не переподключаться), 
MENU (показывать меню), MENUXX (где XX - время паузы в мин. перед отключением). Работает в режиме AUTOSTART=On 
NET_HOSTNAME=host # Имя компьютера клиента 
NET_TELNETD_ENABLED=On # Доступ к клиенту по сетевому протоколу telnet

SCREEN_RESOLUTION="1024x768" # Разрешение экрана 
SCREEN_HORIZSYNC="30-65" # Для CRT лучше поставить 30-75 
SCREEN_VERTREFRESH="75" # Для LCD мониторов, для CRT поставить 85 
SCREEN_COLOR_DEPTH="16" # Глубина цвета иксов 

MOUSE_PROTOCOL=IMPS/2 # Протокол для мыши 
MOUSE_RESOLUTION=100 # Разрешающая способность мыши 
MOUSE_ACCELERATION="1" # Ускорение мыши, например значение 1/8 замедлит движение

X_DRIVER_OPTION1="swcursor On" # Аппаратный курсор 
POWERBTN_ACTION=Off # Выключение кнопкой питания, если не указывать эту переменную, то переход в режим standby 

PRINTER_0_NAME=parallel # Имя принтера 
PRINTER_0_DEVICE=/dev/printers/0 # Устройство принтера 
PRINTER_0_TYPE=P # Для принтера подключенного к параллельному порту 
PRINTER_1_NAME=usb # Имя принтера 
PRINTER_1_DEVICE=/dev/usb/lp0 # Устройство принтера 
PRINTER_1_TYPE=U # Для USB принтера 
 
info_pxe.txt · Последние изменения: 2017/06/28 19:27 — nikola
Recent changes RSS feed Creative Commons License Driven by DokuWiki Made on Mac

Rambler's Top100 Яндекс цитирования



© 2017 nik0el