/etc/bootptab

Конфигурационный файл сервера протокола загрузки

Синтаксис:

/etc/bootptab

Платформы:

ЗОСРВ «Нейтрино»

Описание:

Файл /etc/bootptab используется сервисом bootpd.

Формат конфигурационного файла похож на формат файла termcap, в котором для представления параметров хоста используются двухсимвольные теги с учетом регистра. Эти объявления параметров разделяются двоеточием (:). Общий формат имеет следующий вид:

имя_хоста:tag=значение... :tag=значение... :tag=значение...

где имя_хоста – фактическое имя клиента bootp, а tag – двухсимвольный тег. После большинства тегов должен следовать знак равенства (=) и значение, как показано в примере выше. Некоторые теги используются в булевой форме без значения (например, :tag:). В настоящее время доступны к использованию следующие теги:

bf
Загрузочный файл.
bs
Размер загрузочного файла. Доступные значения: Если тег bs задается как булево значение, подразумевается значение auto.
cs
Список адресов серверов cookie (список IP-адресов, разделенных пробельными символами).
ds
Список адресов серверов доменных имен (список IP-адресов, разделенных пробельными символами).
gw
Список адресов шлюзов (список IP-адресов, разделенных пробельными символами).
ha
Аппаратный адрес хоста. Он должен быть указан в виде шестнадцатеричного числа (для лучшей читабельности могут быть включены дополнительные точки и/или начальные символы 0x). Тег ha должен следовать за тегом ht (явно или неявно; см. описание тега tc ниже).
hd
Домашний каталог загрузочного файла.
hn
Отправить имя хоста. Этот тег должен быть задан исключительно в булевой форме. В нем не используются знак равенства и значение. Его наличие указывает на то, что имя хоста должно быть отправлено клиентам RFC 1048. Сервис bootpd пытается отправить полное имя хоста в том виде, как оно указано в конфигурационном файле. Если это имя не помещается в пакет ответа, оно укорачивается до значения поля хост (до первой точки, при ее наличии), а затем попытка повторяется. Сервер никогда не отправляет произвольно усеченное имя хоста (если нет приемлемого совпадения, ничего не отправляется).
ht
Тип оборудования хоста (см. Assigned Numbers RFC). Этот тег задает код типа оборудования либо в виде беззнакового десятичного, восьмеричного или шестнадцатеричного целочисленного значения, либо в виден одного из приводимых ниже символических имен:
im
Список адресов impress-серверов (список IP-адресов, разделенных пробельными символами).
ip
IP-адрес хоста (одиночный IP-адрес)
lg
Список адресов серверов регистрации (список IP-адресов, разделенных пробельными символами).
lp
Список адресов LPR-серверов (список IP-адресов, разделенных пробельными символами).
ns
Список адресов серверов имен IEN-116 (список IP-адресов, разделенных пробельными символами).
rl
Список адресов серверов протокола расположения ресурсов (список IP-адресов, разделенных пробельными символами).
sa
Адрес TFTP-сервера, который должен использоваться клиентом (используется при работе с серверами, присоединенными к нескольким физическим линиям данных – multi-homed servers). В этом теге принимается список IP-адресов, разделенных пробельными символами.
sm
Маска подсети хоста (одиночный IP-адрес).
tc
Продолжение таблицы (указывает на похожий "шаблон" записи хоста).
td
Корневой каталог TFTP, используемый защищенным TFTP-сервером.
to
Сдвиг по времени. Может указывать в следующем виде: Если тег to определяется в булевой форме, подставляется значение auto.
ts
Список адресов серверов времени (список IP-адресов, разделенных пробельными символами).
vm
Селектор cookie вендора. Можно использовать одно из следующих ключевых слов:

Также существует групповой тег вида Tn, где n – номер тега поля вендора по RFC 1048. Это позволит воспользоваться преимуществами будущих расширений RFC 1048 без необходимости предварительного внесения изменения в утилиту bootpd. Групповые данные могут быть представлены либо в виде потока шестнадцатеричных чисел, либо в виде заключенной в кавычки строки ASCII-символов. Длина групповых данных определяется автоматически и вставляется в соответствующее поле (поля) ответа протокола bootp в стиле RFC 1048.

Все IP-адреса указываются в стандартной записи с точками в качестве разделителей, и в них могут использоваться десятичные, восьмеричные или шестнадцатеричные числа (восьмеричные числа начинаются с 0, шестнадцатеричные – с пары символов 0x или 0X).

Имя хоста, домашний каталог и загрузочный файл, указанные в качестве аргументов, представляют собой ASCII-строки, которые могут заключаться в двойные кавычки. Клиентский запрос и значения символов hd и bf используются сервером для заполнения поля bootfile в ответном пакете bootp.

Если клиентом указан абсолютный путь, и этот файл существует на серверном компьютере, то это путевое имя возвращается в пакете ответа. Если найти файл невозможно, то запрос отклоняется и ответ не отправляется. Если клиентом указан относительный путь, то абсолютный путь формируется путем присоединения в начало значения тега hd, после чего проверяется существование файла. Если тег hd не представлен в конфигурационном файле или не может быть найден результирующий загрузочный файл, то запрос отклоняется.

Клиенты, на которых указываются нулевые загрузочные файлы, всегда получают ответ от сервера. Точный ответ зависит от тегов hd и bf. Если тег bf указывает на абсолютный путь, и файл существует, то этот путь возвращается в пакете ответа. Если оба тега hd и bf вместе указывают на доступный файл, то в ответе возвращается это имя файла. Если определить полное имя файла невозможно или файл не существует, то в ответе передается обнуленное поле bootfile.


Note: Во всех этих случаях для файла должен быть установлен бит общего доступа на чтение, поскольку это требуется для утилиты tftpd.

Для определенных тегов (например, при указании серверов имен) многие записи о хостах часто разделяют общие значения. Вместо повторного указания этих тегов можно использовать механизм тега tc (table continuation, продолжение таблицы), когда создается список полной спецификации для одной записи хоста, который может разделяться другими хостами. В шаблоне записи часто упоминается фиктивный хост, который фактически не существует и никогда не отправляет запросы по протоколу bootp. Эта особенность похожа на функцию tc библиотеки termcap для похожих терминалов.

Следует отметить, что тег tc в утилите bootpd может появляться в любом месте записи хоста, в отличие от библиотеки termcap, где требуется, чтобы этот тег был последним. Информация, явно указанная для хоста, всегда заменяет информацию, передаваемую в теге tc, вне зависимости от его расположения внутри записи. Значением тега tc может быть имя хоста или IP-адрес записи любого хоста, ранее указанного в конфигурационном файле.

Иногда необходимо удалить конкретный тег после его получения с помощью tc. Это можно выполнить с помощью тега-конструктора @, который удаляет результат применения тега, как в библиотеке termcap.

Например, для полной отмены спецификации сервера имен IEN-116, в соответствующее место записи конфигурационного файла нужно добавить следующее:

:ns@:

После удаления с использованием символа @ тег можно снова установить с помощью механизма tc.

В конфигурационном файле игнорируются пустые строки и строки, начинающиеся со знака фунта (#). Записи хоста разделяются символами новой строки. Одна запись хоста может состоять из нескольких строк, если строки оканчиваются символом обратной косой черты (\). Длина строки может превышать 80 символов.

Теги могут быть указаны в любом порядке со следующими исключениями:

Примеры:

# Sample bootptab file default1:\ :hd=/usr/boot:bf=null:\ :ds=128.2.35.50 128.2.13.21:\ :ns=0x80020b4d 0x80020ffd:\ :ts=0x80020b4d 0x80020ffd:\ :sm=255.255.0.0:gw=0x8002fe24:\ :hn:vm=auto:to=-18000:\ :T37=0x12345927AD3BCF:T99="Special ASCII string": carnegie:ht=6:ha=7FF8100000AF:ip=128.2.11.1:tc=default1: baldwin:ht=1:ha=0800200159C3:ip=128.2.11.10:tc=default1: wylie:ht=1:ha=00DD00CADF00:ip=128.2.11.100:tc=default1: arnold:ht=1:ha=0800200102AD:ip=128.2.11.102:tc=default1: bairdford:ht=1:ha=08002B02A2F9:ip=128.2.11.103:tc=default1: bakerstown:ht=1:ha=08002B0287C8:ip=128.2.11.104:tc=default1: # Special domain name server for next host butlerjct:ht=1:ha=08002001560D:ip=128.2.11.108:ds=128.2.13.42:tc=default1: gastonville:ht=6:ha=7FFF81000A47:ip=128.2.11.115:tc=default1: hahntown:ht=6:ha=7FFF81000434:ip=128.2.11.117:tc=default1: hickman:ht=6:ha=7FFF810001BA:ip=128.2.11.118:tc=default1: lowber:ht=1:ha=00DD00CAF000:ip=128.2.11.121:tc=default1: mtoliver:ht=1:ha=00DD00FE1600:ip=128.2.11.122:tc=default1:

Сервис bootpd выполняет поиск подходящих для использования номеров портов в /etc/services. Извлекаются две записи:

При невозможности определения номеров портов этим способом, для сервера подставляется номер порта 67, а для клиента – номер 68.

Предостережения:

В качестве расширения ЗОСРВ «Нейтрино» аргумент тега bf может начинаться с символа (|). В этом случае следующая команда рассматривается как запускаемая для получения загрузочного образа:

bf=|cd /boot; mkifs build/node1:

При использовании этого расширения утилиту tftpd не следует запускать от имени пользователя root. Одним из вариантов является создание пользователя tftp и запуск утилиты tftpd от имени этого пользователя. Также можно создать пользователя ftp и работать от его имени, но в этом случае становится возможным анонимный доступ к компьютеру по протоколу ftp. Для получения информации о процедуре изменения пользователя, от имени которого запускается утилита tftpd, см. /etc/inetd.conf.

Агент, действующий как сторона_агент, разрешает менеджеру, действующему как сторона_менеджер, выполнять операции GET для группы объектов данных, входящих в контекст контекст_агента.

Классификация:

Базовые подсистемы ЗОСРВ «Нейтрино»

Тематические ссылки:

bootpd




Предыдущий раздел: Конфигурационные файлы