[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека | Юридическая информация | Поиск ]

Руководство по управлению системой: Сети и средства связи


Присвоение адресов и задание параметров TCP/IP - протокол динамической настройки хостов (DHCP)

Протокол управления передачей/Протокол Internet предназначен для организации связи между компьютерами с определенными адресами. Одной из обязанностей администратора сети является присвоение адресов и задание параметров для всех машин в сети. Обычно администратор информирует пользователей о том, какие адреса выделены их системам, и предоставляет пользователям возможность самим выполнить настройку. Однако ошибки при настройке или неправильное понимание могут вызвать у пользователей вопросы, которые администратор должен будет рассматривать индивидуально. Протокол динамической настройки хостов (DHCP) позволяет администратору централизованно настраивать сеть без участия конечных пользователей.

DHCP - это протокол прикладного уровня, который позволяет подключенным к сети системам получать IP-адрес и другие параметры конфигурации с сервера. Для получения информации программа-демон, работающая в системе-клиенте, обменивается пакетами данных с аналогичным демоном, работающим на сервере. В настоящее время клиент DHCP включается в базовую часть большинства операционных систем.

Для получения адреса демон клиента DHCP (dhcpcd) рассылает запрос DHCP. Этот запрос принимается и обрабатывается сервером. (Для повышения надежности в сети может быть настроено несколько серверов.) При наличии свободного адреса сервер создает ответное сообщение DHCP, в котором указывает предлагаемый IP-адрес и другие параметры настройки клиента. Клиент получает и сохраняет это предложение DHCP, ожидая предложений от других серверов. После выбора наилучшего предложения клиент рассылает запрос DHCP, в котором указывает выбранное предложение сервера.

Этот запрос получают все работающие в сети серверы DHCP. Каждый из них проверяет, ему ли был направлен запрос. Если нет, то сервер освобождает адрес, предложенный им данному клиенту. Если же сервер определяет, что запрос адресован ему, то он помечает адрес как присвоенный и возвращает подтверждение DHCP. На этом обработка запроса завершается и клиенту на определенное время выделяется адрес.

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

Сервер DHCP присваивает адреса на основе ключей. Существует четыре общих ключа: сеть, класс, вендор и ИД клиента. На основании этих ключей сервер выбирает адрес и параметры конфигурации, которые передаются клиенту.

сеть
Указывает, из какого сегмента сети получен пакет. Этот ключ позволяет серверу проверять свою базу данных и присваивать адрес в зависимости от сегмента сети.

класс
Полностью определяет конфигурацию клиента. Этот ключ может включать адрес и параметры. С его помощью можно указать функцию системы в сети или задать способ объединения систем в группы для упрощения администрирования. Например, администратор сети может создать класс netbios для задания опций клиентов NetBIOS, или класс accounting, объединяющий компьютеры бухгалтерии, которым необходим доступ к определенному принтеру.

вендор
Обеспечивает идентификацию аппаратной/программной платформы клиента (например, клиент Windows 95 или OS/2 Warp).

ИД клиента
Идентифицирует клиента по имени хоста или по адресу MAC (это адрес уровня управления доступом к среде передачи данных). ИД клиента задается в файле конфигурации демона dhcpcd. Кроме того, ИД клиента может применяться сервером для передачи опций данному клиенту или для запрета передачи каких-либо опций клиенту.

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

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

Сервер DHCP

Начиная с версии 4.3.1, сервер DHCP разделен на три основные части: база данных, средства поддержки протокола и набор служебных нитей, для каждой из которых задается собственная информация о конфигурации.

База данных DHCP

База данных db_file.dhcpo позволяет отслеживать работу клиентов и выделение адресов, а также управлять доступом клиентов (например, можно разрешить работу лишь некоторых клиентов в определенных сетях или отключить клиентов BOOTP в данной сети). Кроме того, в базе данных хранятся опции, предназначенные для передачи клиентам. База данных реализована в виде динамически загружаемого объекта, что позволяет легко модернизировать и обслуживать сервер.

База данных заполняется и проверяется в соответствии с информацией, заданной в файле конфигурации. Обновление базы данных осуществляется с помощью набора контрольных файлов, что позволяет сократить число операций записи на диск. Кроме того, в этой база данных хранятся пулы адресов и опций. Информация в этих пулах статическая и обсуждается в разделе Настройка DHCP.

Дисковый файл, как и его копии - это обычные файлы ASCII, которые можно редактировать. Формат файлов базы данных:

DF01
"ИД клиента" "0.0.0.0" Состояние LeaseTimeStart LeaseTimeDuration LeaseTimeEnd
  "IP-адрес сервера" "ИД класса" "ИД вендора" "Имя хоста" "Имя домена"
"ИД клиента" "0.0.0.0" Состояние LeaseTimeStart LeaseTimeDuration LeaseTimeEnd
  "IP-адрес сервера" "ИД класса" "ИД вендора" "Имя хоста" "Имя домена"
...

Первая строка - это идентификатор версии файла: DF01c. За ней следуют записи, определяющие клиентов. Сервер читает данные, начиная со второй строки, и до конца файла. (Параметры, указанные здесь в кавычках, должны быть заключены в кавычки.)

"ИД клиента"
Идентификатор клиента.

"0.0.0.0"
IP-адрес, присвоенный в настоящий момент серверу DHCP. Если адрес не присвоен, то это поле будет содержать значение "0.0.0.0".

Состояние
Текущее состояние клиента. Средства поддержки протокола DHCP включают определенный набор состояний, которые сохраняются в базе данных DHCP. Номер, следующий за полем Состояние, - это значение состояния. Возможны следующие состояния:

(0) UNKNOWN
Представляет клиентов, которым не присвоен адрес. Это состояние неприменимо к адресам. В отчете команды dadmin это состояние обозначается как "Неизвестно", а в отчете команды lssrc - как "Поврежден".

(1) СВОБОДЕН
Обозначает доступные адреса. Это состояние может быть указано для клиента только в том случае, если ему не присвоен адрес. В данных, выдаваемых командами dadmin и lssrc, это состояние обозначается как "Свободен".

(2) ЗАРЕЗЕРВИРОВАН
Указывает, что между клиентом и адресом установлена предварительная связь. Клиент уже разослал поисковое сообщение DHCP, а сервер DHCP ответил на него, но клиент еще не отправил запрос DHCP для окончательного присвоения адреса. В данных, выдаваемых командами dadmin и lssrc это состояние обозначается как "Зарезервирован".

(3) СВЯЗАН
Указывает, что адрес связан с клиентом и что данный адрес выделен клиенту на определенное время. В данных, выдаваемых командами dadmin и lssrc это состояние обозначается как "Выделен".

(4) ОСВОБОЖДЕН
Указывает, что адрес связан с клиентом, но лишь с информационной целью. В протоколе DHCP предполагается, что серверы DHCP сохраняют информацию об обслуживаемых клиентах. В основном это делается для того, чтобы по возможности предоставлять клиенту тот же адрес, который уже присваивался ему ранее. Это состояние указывает, что клиент освободил адрес. Этот адрес будет выделяться другим клиентам только в том случае, если других доступных адресов нет. В данных, выдаваемых командами dadmin и lssrc это состояние обозначается как "Освобожден".

(5) ИСТЕК
Указывает, что адрес связан с клиентом, но лишь с информационной целью, как и в случае освобожденного адреса. Это состояние свидетельствует о том, что время выделения адреса клиенту истекло. Адрес с истекшим временем выделения могут быть присвоены другим клиентам только после того, как будут присвоены все свободные и освобожденные адреса. В данных, выдаваемых командами dadmin и lssrc это состояние обозначается как "Истек".

(6) НЕВЕРНЫЙ
Обозначает адрес, который используется в сети, но не был выделен сервером DHCP. Кроме того, это состояние указывается для адресов, отклоненных клиентами. Это состояние не применяется в режиме АTM. В данных, выдаваемых командами dadmin и lssrc это состояние обозначается как "Используется" и "Неверный" соответственно.

Начало_времени_выделения_адреса
Задает начало текущего времени выделения адреса (в секундах, начиная с 1 января 1970 г).

Время_выделения_адреса
Продолжительность времени выделения адреса (в секундах).

Конец_времени_выделения_адреса
Задается в том же формате, что и Начало_времени_выделения_адреса, но определяет конец времени выделения. В некоторых опциях настройки применяются разные значения значения начала и конца времени выделения адреса, которые могут переопределяться значениями, указанными в файле конфигурации. См. Формат файла сервера DHCP для db_file.

"IP-адрес сервера"
IP-адрес сервера DHCP, которому принадлежит эта запись.

"ИД класса"
"ИД_вендора"
"Имя_хоста"
"Имя домена"
С помощью этих значений сервер определяет, какие опции необходимо передавать (необходимые значения хранятся в виде строк, заключенных в кавычки). Эти параметры позволяют повысить производительность, так как списки опций для групп клиентов можно подготовить заранее, при запуске сервера DHCP.

Контрольные файлы

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

/etc/db_file.cr
Применяется при обычной работе базы данных

/etc/db_file.crbk
Резервные копии базы данных

/etc/db_file.chkpt и /etc/db_file.chkpt2
Циклически применяемые контрольные файлы

Сервер DHCP для AIX версии 4.3.1 и выше поддерживает работу с несколькими нитями. Поддержка нитей обеспечивает высокую скорость работы с базой данных (включая операции сохранения). При получении запроса на сохранение существующий контрольный файл заменяется на следующий, текущая база данных записывается в файл резервной копии и создается новый файл сохранения. Каждая запись клиента заносится в файл и при этом устанавливается бит-переключатель, указывающий, что клиент должен использовать новый контрольный файл. После сохранения всех записей клиентов созданный файл закрывается, а файл резервной копии и старый контрольный файл удаляются. Таким образом, обработка клиентов может продолжаться, и, в зависимости от того, была ли сохранена запись клиента, изменения в базе данных будут записаны в новый файл сохранения или в новый контрольный файл.

Средства поддержки протокола DHCP

В AIX версии 4.3.1 и выше реализована поддержка протокола DHCP в соответствии с RFC 2131, но при этом сохранена и совместимость с RFC 1541. (Сервер может также обрабатывать опции, определенные в RFC 2132.) Отправляемая клиентам информация о конфигурации определяется с помощью базы данных.

При настройке пулов адресов применяются некоторые опции, которые оказывают влияние на изменение состояния. Например, перед тем, как выделять адреса, сервер проверяет их с помощью команды ping. В настоящее время ожидания ответа можно задавать отдельно для каждого пула адресов.

Служебные нити DHCP

Третья часть сервера DHCP - это набор операций, которые, собственно, и обеспечивают его работу. Так как в сервере DHCP реализована поддержка нескольких нитей, то эти операции в действительности организованы в виде набора нитей, которые в определенное время выполняют нужные операции и обеспечивают правильную работу.

Первая нить, main, обрабатывает запросы SRC (такие, как startsrc, stopsrc, lssrc, traceson и refresh). Кроме того, эта нить согласовывает все операции, влияющие на остальные нити, и обрабатывает сигналы. Пример:

Другая нить, dadmin, обеспечивает взаимодействие программы клиента dadmin и сервера DHCP. Утилита dadmin может применяться для определения состояния или изменения базы данных, что позволяет избежать редактирования файлов базы данных вручную. В предыдущих версиях сервера DHCP во время определения состояния сервера клиенты не могли получать адреса. После добавления нитей dadmin и src сервер может обрабатывать служебные запросы и запросы клиентов одновременно.

Следующая нить, garbage, включает таймеры, которые периодически выполняют очистку и сохранение базы данных, удаляют клиентов, для которых не заданы адреса, а также удаляют адреса, слишком долго находящиеся в зарезервированном состоянии. Значения этих таймеров можно настраивать (см. Настройка DHCP). Остальные нити выполняют обработку пакетов. Их число можно настраивать. По умолчанию запускается 10 нитей. Каждая нить может обрабатывать запрос клиента DHCP. Число нитей для обработки пакетов зависит от предполагаемой нагрузки и мощности системы. Если в системе помимо DHCP должны работать еще и другие серверы, то не стоит запускать в ней 500 нитей.

Планирование DHCP

Для применения данного протокола администратор сети должен установить сервер DHCP и настроить промежуточных агентов BOOTP на тех узлах, где нет сервера DHCP. Заблаговременное планирование может сократить нагрузку на сеть, вызванную работой сервера DHCP. Например, можно настроить один сервер для обработки запросов всех клиентов, но при этом все пакеты должны будут проходить через этот сервер. Если между двумя большими сетями есть единственный маршрутизатор, то лучше установить два сервера.

Другая особенность DHCP, которую следует учитывать - это создаваемая нагрузка на сеть. Например, если время выделения адреса по умолчанию меньше двух суток, а выходные подключенные к сети системы выключаются, то утром в понедельник резко увеличится объем данных, передаваемых по сети сервером DHCP. Несмотря на то, что эти данные не вызывают перегрузку сети, их необходимо учитывать при выборе количества серверов DHCP и их размещения.

После включения DHCP клиенты могут не выполнять более никаких действий по настройке сети. Клиент DHCP, dhcpcd, читает файл dhcpcd.ini, в котором хранится информация о регистрации и другие параметры, необходимые для начала работы. После установки вам нужно будет выбрать способ настройки TCP/IP: минимальная конфигурация или использование поддержки DHCP. При выборе DHCP нужно будет указать интерфейс и задать некоторые необязательные параметры. Для выбора интерфейса можно ввести ключевое слово any. Оно сообщает клиенту dhcpcd, что что нужно искать первый работающий интерфейс и использовать его. Этот способ сокращает число операций, выполняемых пользователем.

Настройка DHCP

По умолчанию сервер DHCP считывает информацию из файла /etc/dhcpsd.cnf, в котором хранится исходная база данных параметров и адресов. Сервер может запускаться с помощью файла /etc/rc.tcpip, Web-администратора системы, SMIT или команды SRC. Клиента DHCP можно настроить с помощью Web-администратора системы, Инструмента управления системой или путем редактирования ASCII-файла.

Настройка сервера DHCP - это самая трудная часть настройки DHCP в сети. Во-первых, определите, в каких сетях будут размещаться клиенты DHCP. Каждой подсети соответствует пул адресов, который должен быть добавлен в базу данных сервера DHCP. Например:

database db_file
{
 
    subnet 9.3.149.0 255.255.255.0
      {  option 3 9.3.149.1 # Шлюз по умолчанию для клиентов данной сети
         option 6 9.3.149.2 # Клиенты сервера имен в данной сети
      }
    ... опции и другие контейнеры, добавляемые позже
}

В приведенном примере используется подсеть 9.3.149.0, с маской подсети 255.255.255.0. В пул включены все адреса этой подсети, от 9.3.149.1 до 9.3.149.254. При необходимости в конце строки можно указать диапазон, а также задать в контейнере subnet оператор range или exclude. Стандартные способы настройки и определения адресов описаны в разделе Известные опции файла сервера DHCP.

Оператор database db_file задает способ обработки этой части файла конфигурации. Комментарии начинаются с символа # (знак фунта стерлингов). Сервер DHCP игнорирует все символы, стоящие после символа # до конца строки. С помощью каждой строки option сервер задает для клиента какое-либо действие. В разделе Известные опции файла сервера DHCP описаны все поддерживаемые и известные опции. В разделе Формат файла сервера DHCP для выполнения общих операций описаны способы задания опций, неизвестных серверу.

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

Файл конфигурации

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

Контейнер (по существу, это способ группирования параметров) позволяет объединять клиентов в группы на основании идентификатора. Типы контейнеров: subnet, class, vendor и client. Контейнеры, определяемые пользователем, в настоящее время не поддерживаются. Клиент однозначно определяется своим идентификатором, что позволяет всегда точно обнаруживать его, например, при переносе в другую подсеть. Для определения клиента может применяться несколько контейнеров.

Опции - это идентификаторы, возвращаемые клиенту. Это может быть, например, применяемые по умолчанию адреса шлюза и сервера DNS.

Модификаторы - это одиночные операторы, которые изменяют некоторые параметры контейнера, например, время выделения адреса по умолчанию.

Контейнеры

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

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

Для идентификации клиентов в разных типах контейнеров применяются различные опции:

Во всех контейнерах, кроме subnet, можно применять шаблоны сравнения, включая регулярные выражения.

Существует также неявный контейнер global. Опции и модификаторы указываются в контейнере global, если только они не отключены и не переопределены. Большинство контейнеров можно поместить в другие контейнеры в соответствии с областью видимости. С контейнерами могут быть связаны диапазоны адресов. С подсетями всегда связаны диапазоны адресов.

Основные правила для контейнеров и подконтейнеров:

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

Каким образом организована обработка адресов и опций, если клиент входит в несколько контейнеров? Сервер DHCP получает сообщение, формирует запрос к базе данных (в данном случае - к файлу db_file) и получает список контейнеров. Контейнеры перечисляются в списке в порядке их вложенности и приоритета. Приоритет определяется как неявный иерархический уровень контейнера. Контейнеры с ограничениями имеют более высокий приоритет, чем обычные. Сортировка контейнеров выполняется в таком порядке: клиенты, классы, вендоры и подсети. В пределах одного типа контейнеры упорядочиваются по уровню вложенности. Созданный таким образом список упорядочивается от более конкретных объектов к менее конкретным. Например:

    Subnet 1
    --Class 1
    --Client 1
    Subnet 2
    --Class 1
    ----Vendor 1
    ----Client 1
    --Client 1 

В примере есть две подсети Subnet 1 и Subnet 2. Кроме того, определен один класс, Class 1, один вендор, Vendor 1, и один клиент, Client 1. Class 1 и Client 1 определены в разных местах. Поскольку они они определены в разных контейнерах, то их имена могут совпадать, однако, указанные в них значения могут различаться. Если клиент Client 1 отправит сообщение серверу DHCP из подсети Subnet 1 с указанием класса Class 1, определенного в списке опций этого клиента, то сервер DHCP создаст следующий список контейнеров:

Subnet 1, Class 1, Client 1

Контейнер, определенный наиболее точно, заносится в список последним. Для получения адреса список просматривается в обратном порядке до обнаружения первого доступного адреса. Затем список просматривается в прямом порядке (в соответствии с иерархией) для получения опций. По мере просмотра списка новые значения опций переопределяют прежние значения до тех пор, пока в контейнере не встретится опция deny. Поскольку класс Class 1 и клиент Client 1 находятся в одной и той же подсети Subnet 1, они упорядочиваются в соответствии с приоритетом контейнеров. Если сообщение будет получено от клиента с тем же именем, находящегося в подсети Subnet 2, то будет создан следующий список контейнеров:

Subnet 2, Class 1, Client 1 (на уровне Subnet 2), Client 1 (на уровне Class 1 )

Первой в списке указывается подсеть Subnet 2, затем класс Class 1, затем клиент Client 1 на уровне Subnet 2 (так как этот клиент находится в иерархии на один уровень ниже). Иерархия подразумевает, что клиент, имя которого указано в первом операторе, определен менее конкретно, чем клиент Client 1, определенный в классе Class 1 подсети Subnet 2.

Приоритет, определяемый по уровню вложенности, выше, чем приоритет самих контейнеров. Например, если тот же клиент отправит такое же сообщение, указав идентификатор вендора, то список контейнеров будет следующим:

Subnet 2, Class 1, Vendor 1, Client 1 (на уровне Subnet 2), Client 1 (на уровне Class 1)

Организация поиска на основании приоритета контейнера повышает эффективность, поскольку контейнеры client обеспечивают наиболее точный способ определения одного или нескольких клиентов. В контейнере class адреса определены менее конкретно, чем в контейнере client; в контейнере vendor адреса определены еще менее конкретно, а контейнер subnet содержит самые общие определения адресов.

Адреса и диапазоны адресов

С контейнерами любого типа могут быть связаны диапазоны адресов. Контейнеры subnet обязательно имеют связанный диапазон адресов. Каждый диапазон адресов в пределах контейнера должен быть подмножеством диапазона адресов родительского контейнера и не должен пересекаться с диапазонами адресов других контейнеров. Например, если внутри подсети определен класс с диапазоном адресов, то этот диапазон должен быть подмножеством диапазона адресов подсети. Диапазон внутри этого контейнера класса не должен пересекаться с любыми другими диапазонами этого уровня.

Диапазоны адресов могут задаваться в строке контейнера. Для задания несмежных диапазонов адресов можно воспользоваться операторами range и exclude. Таким образом, если в подсети есть два диапазона по десять адресов, то имеет смысл указать эти диапазоны в операторе subnet, чтобы уменьшить объем памяти и избежать конфликтов адресов с другими клиентами.

Когда адрес выбран, все последующие контейнеры, содержащие диапазоны адресов, удаляются из списка вместе со своими дочерними контейнерами. Сетевые опции, заданные в удаленных контейнерах, недопустимы для адресов, не принадлежащих данному контейнеру.

Опции

После первого просмотра списка и получения адресов для клиента создается набор опций. В процессе выбора ранее определенные значения опций переопределяются новыми до тех пор, пока не встретится опция deny (запретить); при этом запрещенная опция удаляется из списка опций, отправляемых пользователю. Этот способ разрешает наследование опций родительских контейнеров и сокращает объем данных, которые нужно определять.

Модификаторы

Модификаторы - это операторы, которые изменяют некоторые параметры данного контейнера, например, доступ или время выделения адреса. Перед изменением контейнера определите пулы адресов и опций. Чаще всего используются модификаторы leasetimedefault, supportBootp и supportUnlistedclients.

leasetimedefault
Задает время выделения адреса для клиента.

supportBootp
Указывает, должен ли сервер отвечать на запросы клиентов BOOTP.

supportUnlistedclients
Указывает, нужно ли для получения адресов явно определять клиента в операторе client. Модификатор supportUnlistedClients может иметь значение none, dhcp, bootp или both. Он позволяет ограничить доступ к клиентам bootp и разрешает всем клиентам DHCP получать адреса.

Другие модификаторы приведены в разделе Формат файла сервера DHCP для db_file.

Ведение протокола

Следующий шаг настройки после выбора модификаторов - это настройка протоколов. Параметры протокола указываются в окне диалога, напоминающем окно настройки базы данных, но с ключевым словом logging_info. На этапе обучения настройке DHCP рекомендуется установить максимально подробное ведение протокола. Кроме того, весьма полезно настроить протокол до начала работы с любыми другими файлами настройки, чтобы ошибки конфигурации были после инициализации системы занесены в протокол. Для включения опций протокола укажите ключевое слово logitem, а для их отключения удалите это ключевое слово. Другие ключевые слова позволяют задавать имя файла протокола, его размер, а также число взаимозаменяемых файлов протоколов.

Опции управления сервером

Последний набор опций, который нужно указать, - это опции, определяемые сервером. С их помощью пользователь может задавать число нитей для обработки пакетов, частоту запуска нитей для очистки памяти и т.п.

Вот, например, две опции, определяемые сервером:

reservedTime
Указывает, как долго адрес должен находиться в зарезервированном состоянии после отправки сервером предложения клиенту DHCP.

reservedTimeInterval
Указывает, как часто сервер DHCP должен проверять список и определять, для каких адресов истекло время, заданное в параметре reservedTime.

Эти опции полезны в том случае, когда в сети есть несколько клиентов, которые рассылают поисковые сообщения, но не рассылают запросы, либо отправляемые ими запросы не доходят до серверов. Эти параметры позволяют резервировать адреса только для тех клиентов, которые работают правильно.

Другая полезная опция, SaveInterval, указывает, как часто нужно сохранять информацию. В разделе Формат файла сервера DHCP для выполнения общих операций описаны все связанные с сервером опции и соответствующие ключевые слова.

Повышение производительности системы

Важно понимать, что от ключевых слов конфигурации и от структуры файла конфигурации зависит распределение памяти и производительность сервера DHCP.

Во-первых, понимание механизма наследования опций от контейнеров-предков к потомкам позволяет сократить объем используемой памяти. В среде, в которой не поддерживаются не указанные в списке клиенты, администратор должен явно перечислить всех клиентов в файле. При указании списка опций для каждого отдельного клиента на хранение дерева конфигурации расходуется больше ресурсов памяти сервера, чем при наследовании опций от контейнера-предка к потомку (в роли предка может выступать подсеть, сеть или глобальные контейнеры). Следовательно, администратор должен проверить, не повторяются ли какие-либо опции на уровне клиента в файле конфигурации, а если это так, то решить, можно ли указать эти опции в контейнере-предке и таким образом распространить их сразу на несколько клиентов.

Кроме того, если применяются записи logItem INFO и TRACE, то в протокол при обработке каждого сообщения клиента DHCP заносится несколько сообщений. Добавление строк в файл протокола может привести к чрезмерному увеличению нагрузки; поэтому ограничение объема заносимой в протокол информации повышает производительность сервера DHCP. При необходимости ведение протокола может быть включено динамически командой SRC traceson или dadmin.

Наконец, указываемое значение параметра numprocessors должно зависеть от размера сети, поддерживаемой сервером DHCP, параметра конфигурации pingTime db_file и среднего значения задержки распространения в сети. Поскольку каждая нить обработчика пакетов генерирует запрос ICMP Echo Request для проверки состояния собственного адреса сервера до предоставления этого адреса в распоряжение клиента, то время ожидания ответа на этот запрос (Echo Response) напрямую влияет на время обработки сообщения DISCOVER. В сущности, функции нити обработчика пакетов ограничиваются ожиданием либо ответа, либо наступления тайм-аута pingTime. Уменьшение значения numprocessors снижает время ответа сервера, снижает число повторных передач для клиентов и сохраняет при этом все преимущества применения пробных пакетов на сервере.

Для повышения производительности выберите значение pingTime, исходя из значений задержки распространения для всех удаленных сетей, поддерживаемых этим сервером DHCP. Значение numprocessors следует выбрать на основе значения pingTime и размера сети. Выбор слишком маленького значения приведет к остановке нитей обработки процессов. Пока ожидает эхо-ответ, поступающие сообщения клиента DHCP будут помещаться в очередь порта сервера. В результате сервер будет обрабатывать сообщения клиента большими группами, а не в виде непрерывного потока сообщений.

Если выбранное значение слишком мало, то все нити обработки пакетов будут ожидать ответа.

Для предотвращения подобной ситуации следует выбрать значение numprocessors так, чтобы оно было больше ожидаемого количества сообщений DISCOVER, которые могут быть приняты в течение одного интервала pingTime в период пиковой нагрузки на сервер DHCP. Однако не следует указывать слишком большое значение numprocessors, так как это может резко увеличить расход ресурсов ядра системы на управление нитями.

Например, значения numprocessors 5 и pingTime 300 вызовут снижение производительности в среде, в которой на сервер поступает в среднем 10 сообщений DISCOVER за секунду, поскольку скорость их обработки в часы пик не будет превышать 5 сообщений за 3 секунды. Для этой среды следует задать, например, numprocessors 20 и pingTime 80.

Настройка файла конфигурации

Во многих сетях есть клиенты нескольких типов; например, к одной сети могут быть подключены компьютеры с различными операционными системами - Windows, OS/2, Java OS и UNIX. Для каждого из них необходим свой идентификатор вендора (поле, с помощью которого серверу DHCP сообщается тип машины). Для клиентов OS Java и IBM Thin Client может потребоваться отдельная настройка, включающая указание загрузочных файлов и специальных опций. Компьютеры с Windows 95 не смогут правильно работать с параметрами, заданными для систем Java.

В зависимости от назначения конкретного компьютера, в контейнер vendor могут быть включены различные опции. Например, разработчики приложений могут работать с клиентами этой операционной системы, сотрудники рекламного отдела - с клиентами OS/2, сотрудники отдела продаж - с клиентами OS Java и компьютерами IBM Thin Client, а работники бухгалтерии - с Windows 95. Для каждой группы пользователей необходимо задать свои параметры конфигурации (различные принтеры, серверы имен, Web-серверы по умолчанию и т.п.) В этом случае все перечисленные опции можно включить в контейнер vendor, так как каждая группа пользователей работает со своим типом компьютеров.

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

Примечание: Ниже приведен пример, представляющий собой часть файла конфигурации. Комментарии к каждой строке начинаются со знака фунта стерлингов (#) и описывают назначение данной строки. каким

vendor "AIX_CLIENT"
{
# Нет специальных параметров, управляет объектами с помощью класса
}
 
vendor "OS/2 Client"
{
# Нет специальных параметров, управляет объектами с помощью класса
}
 
vendor "Windows 95"
{ option 44 9.3.150.3          # Сервер имен по умолчанию для NetBIOS
}
 
vendor "Java OS"
{ bootstrapserver 9.3.150.4    # Сервер TFTP по умолчанию для систем с OS Java
  option 67 "javaos.bin"       # Загрузочный файл для систем с OS Java
}
 
vendor "IBM Thin Client"
{ bootstrapserver 9.3.150.5    # Сервер TFTP по умолчанию для систем Thin Client
  option 67 "thinos.bin"       # Загрузочный файл по умолчанию для систем Thin Client
}
 
subnet 9.3.149.0 255.255.255.0
{ option 3 9.3.149.1           # Шлюз по умолчанию для подсети
  option 6 9.3.150.2           # Сервер имен для подсети
  class accounting 9.3.149.5-9.3.149.20
  {    	                       # Диапазон адресов для класса accounting: 9.3.149.5-9.3.149.20
          # Принтер для этой группы также в этом диапазоне, поэтому он исключен.
     exclude 9.3.149.15
     option 9 9.3.149.15       # Сервер LPR (сервер печати)
     vendor "Windows 95"
     {
     option 9 deny              # Windows 95 не поддерживает этот
                                # принтер, поэтому опция запрещена.
     }
  }
 . . .
}

DHCP и динамическая система имен доменов (DDNS)

Сервер DHCP поддерживает работу в среде DDNS. Для применения сервера DHCP в среде DDNS необходимо задать динамическую область сервера DNS.

После настройки сервера DDNS необходимо решить, будет ли сервер DHCP обновлять записи типа А, записи PTR-record, записи обоих типов, или он вообще не должен обновлять записи. Ответ на этот вопрос зависит от того, может ли система клиента выполнять все или часть перечисленных операций.

С помощью перечисленных ниже ключевых слов сервера DHCP можно задавать команды, которые должны выполняться при обновления.

updatedns
(Не рекомендуется применять.) Задает команду, которая должна выполняться при обновлении всех записей. Она будет выполняться при обновлении как записей PTR, так и записей A.

updatednsA
Задает команду для обновления записей типа A.

updatednsP
Задает команду для обновления записей типа PTR.

Эти ключевые слова позволяют задавать командные строки, которые должны выполняться сервером DHCP при обновлении. Строки с ключевыми словами должны содержать четыре переменные %s (знак процента, буква s). Первая переменная %s - это имя хоста; вторая - имя домена; третья - IP-адрес; и четвертая - время выделения адреса. Эти переменные используются в качестве первых четырех параметров команды dhcpaction. Остальные два параметра команды dhcpaction указывают тип обновляемой записи (A, PTR, NONE или BOTH) и задают опцию обновления NIM (NIM или NONIM). Более подробная информация о взаимодействии NIM и DHCP приведена в разделе Взаимодействие DHCP с Администратором сетевой установки. Например:

updatednsA "/usr/sbin/dhcpaction '%s' '%s' '%s' '%s' A NONIM"
                    # Команда dhcpaction выполняется только для записей типа A
updatednsP "/usr/sbin/dhcpaction '%s' '%s' '%s' '%s' PTR NONIM"
                    # Команда выполняется только для записей типа PTR
updatedns "/usr/sbin/dhcpaction '%s' '%s' '%s' '%s' BOTH NIM"
                    # Команда выполняется для записей обоих типов, обновляется NIM

Сервер DHCP включает также набор ключевых слов для удаления записей DNS после освобождения адреса или завершения времени его выделения. Это следующие ключевые слова:

releasednsA
Удаляет запись типа A.

releasednsP
Удаляет запись типа PTR.

removedns
Удаляет записи обоих типов.

Эти ключевые слова позволяют задавать строки, которые должны выполняться сервером DHCP в том случае, если адрес освобожден или время его выделения закончилось. Команда dhcpremove работает так же, как dhcpaction, но имеет только три параметра:

  1. IP-адрес, задаваемый в командной строке с помощью переменной %s
  2. Тип удаляемой записи (A, PTR, NONE или BOTH).
  3. Опция обновления NIM (NIM или NONIM).

Например:

releasednsA "/usr/sbin/dhcpremove '%s' A NONIM"
                     # Команда dhcpremove выполняется только для записей типа A
releasednsP "/usr/sbin/dhcpremove '%s' PTR NONIM"
                     # Команда выполняется только для записей типа PTR
removedns "/usr/sbin/dhcpremove '%s' BOTH NIM"
                     # Команда выполняется для записей обоих типов, обновляется NIM

Команды dhcpaction и dhcpremove проверяют полученные параметры, а затем вызывают команду nsupdate, которая была обновлена для работы с серверами DDNS этой операционной системы и OS/2. Более подробную информацию см. в описании команды nsupdate.

Если при обновлении имен применение NIM НЕ ОБЯЗАТЕЛЬНО, то при настройке сервера DHCP можно выбрать передачу сокетов между демоном DHCP и командой nsupdate. Это позволяет повысить производительность и повторно выполнять обновление DNS при неполадках. Для выбора этой возможности следует с помощью ключевого слова updateDNSA, updateDNSP, releaseDNSA или releaseDNSP указать в качестве первого слова в кавычках слово "nsupdate_daemon". Параметры и флаги в таком режиме обновления те же, что и для команды nsupdate. Кроме того, для подстановки можно использовать следующие имена-переменные:

$hostname Это имя заменяется на имя хоста клиента в команде обновления DNS или на имя хоста, ранее связанное с клиентом, в команде удаления DNS.
$domain Это имя заменяется на домен DNS в команде обновления DNS или на домен, ранее соответствовавший имени хоста клиента, в команде удаления DNS.
$ipadress Это имя заменяется на IP-адрес, который необходимо связать с именем клиента DHCP или освободить.
$leasetime Это имя заменяется на время выделения адреса (в секундах).
$clientid Это имя заменяется на строку, содержащую идентификатор клиента DHCP, или на сочетание типа аппаратного обеспечения и аппаратного адреса для клиентов BOOTP.

Например:

updateDNSA "nsupdate_daemon -p 9.3.149.2 -h $hostname -d $domain -s"d;a;*;a;a;$ipaddress;s;$leasetime;3110400""
 
updateDNSP "nsupdate_daemon -p 9.3.149.2 -r $ipaddress -s"d;ptr;*;a;ptr;$hostname.$domain.;s;$leasetime;3110400""
 
releaseDNSA "nsupdate_daemon -p 9.3.149.2 -h $hostname -d $domain -s"d;a;*;s;1;3110400""
 
releaseDNSP "nsupdate_daemon -p 9.3.149.2 -r $ipaddress -s"d;ptr;*;s;1;3110400""

Более подробную информацию см. в описании команды nsupdate.

Для передачи имени хоста между сервером и клиентом теперь предусмотрены стратегии, задаваемые администратором. По умолчанию, имя хоста, возвращаемое клиенту и используемое для обновления DDNS, задается опцией 12, указанной в файле конфигурации сервера. Кроме того, имя хоста по умолчанию можно задать как предполагаемое имя хоста клиента, указав его с помощью опции 81 (опция DHCPDDNS) или опции 12 (опция HOSTNAME). Однако администратор может переопределять имя хоста по умолчанию с помощью ключевых слов hostnamepolicy, proxyarec и appenddomain. Эти опции и их параметры описаны в разделе Формат файла сервера DHCP для db_file.

Совместимость с предыдущими версиями DHCP

Сервер DHCP для AIX версии 4.3.1 и выше распознает файлы конфигурации и базы данных более ранних версий, dhcps.ar и dhcps.cr. Он анализирует старые файлы конфигурации и создает вместо них новые файлы базы данных. Старые базы данных автоматически преобразуются в новый файл. Сам файл конфигурации не преобразуется.

Модуль работы с базой данных сервера DHCP, db_file, может читать старый формат. Сервер DHCP может определить, когда контейнер базы данных не включен в файл конфигурации, и обрабатывать весь файл как файл параметров конфигурации сервера, параметров протоколов и параметров базы данных db_file.

Примечание: В данной версии файлов конфигурации не применяются некоторые устаревшие синтаксические конструкции, но они по-прежнему поддерживаются. Это касается следующих конструкций:

Известные опции файла сервера DHCP

Примечание: Опции, для которых в приведенной ниже таблице указано, что их нельзя задавать (в колонке Можно указывать стоит Нет), можно указывать в файле конфигурации, но их значения будут заменены на допустимые. Более точные определения опций приведены в RFC 2132.

Номер опции Тип данных по умолчанию Можно указывать? Описание/Использование
0 Нет Нет При необходимости дополняет поле опций.
1 IP-адрес в десятичном формате с точками Нет Маска подсети, из которой получен адрес.
2 32-разрядное целое число Да Задает смещение времени в подсети клиента в секундах от универсального скоординированного времени (UTC).
3 Один или несколько IP-адресов в десятичном формате с точками Да Список IP-адресов шлюзов по умолчанию.
4 Один или несколько IP-адресов в десятичном формате с точками Да Список IP-адресов серверов времени.
5 Один или несколько IP-адресов в десятичном формате с точками Да Список IP-адресов серверов имен.
6 Один или несколько IP-адресов в десятичном формате с точками Да Список IP-адресов серверов DNS.
7 Один или несколько IP-адресов в десятичном формате с точками Да Список IP-адресов серверов протоколов.
8 Один или несколько IP-адресов в десятичном формате с точками Да Список IP-адресов серверов cookie.
9 Один или несколько IP-адресов в десятичном формате с точками Да Список IP-адресов серверов LPR.
10 Один или несколько IP-адресов в десятичном формате с точками Да Список IP-адресов серверов Impress.
11 Один или несколько IP-адресов в десятичном формате с точками Да Список IP-адресов серверов размещения ресурсов.
12 Строка ASCII Да Имя хоста клиента.
13 16-разрядное целое число без знака Да Размер загрузочного файла.
14 Строка ASCII Да Путь к файлу контрольного дампа.
15 Строка ASCII Да Имя домена DNS по умолчанию.
16 IP-адрес Да Адрес сервера Swap.
17 Строка ASCII Да Путь к корневому каталогу по умолчанию.
18 Строка ASCII Да Путь к расширениям для клиента.
19 Yes, No, True, False, 1, 0 Да Применяется ли пересылка IP-дейтаграмм.
20 Yes, No, True, False, 1, 0 Да Применяется ли не локальная маршрутизация источника.
21 Одна или несколько пар IP-адресов в десятичном формате с точками, в виде адрес:адрес Да Стратегия фильтрации для IP-адресов.
22 16-разрядное целое число без знака Да Максимально допустимый размер фрагментов дейтаграмм.
23 8-разрядное целое число без знака Да Ограничение на число участков для IP-дейтаграмм (TTL).
24 32-разрядное целое число без знака Да Число секунд, применяемое в параметре времени жизни для MTU маршрута.
25 Список из одного или нескольких 16-разрядных целых чисел без знака Да Таблица значений MTU маршрута. Определяет множество значений, задающих размеры MTU, применяемые при определении MTU маршрута.
26 16-разрядное целое число без знака Да Размер MTU для принимающего интерфейса.
27 Yes, No, True, False, 1, 0 Да Все ли подсети локальные.
28 IP-адрес в десятичном формате с точками Да Широковещательный адрес для интерфейса.
29 Yes, No, True, False, 1, 0 Да Должна ли определяться сетевая маска ICMP.
30 Yes, No, True, False, 1, 0 Да Должен ли клиент предоставлять сетевую маску ICMP.
31 Yes, No, True, False, 1, 0 Да Нужно ли использовать поисковые сообщения о маршрутизаторах ICMP.
32 IP-адрес в десятичном формате с точками Да Адрес для обращения к маршрутизатору.
33 Одна или несколько пар IP-адресов, в виде адрес:адрес Да Каждая пара адресов соответствует статическому маршруту.
34 Yes/No, True/False, 1/0 Да Должна ли применяться инкапсуляция концевиков.
35 32-разрядное целое число без знака Да Значение тайм-аута для кэш-памяти ARP.
36 Yes/No, True/False, 1/0 Да Должна ли применяться инкапсуляция данных Ethernet.
37 8-разрядное целое число без знака Да Время хранения в кэш-памяти TCP (TTL).
38 32-разрядное целое число без знака Да Интервал отправки контрольных пакетов TCP.
39 Yes/No, True/False, 1/0 Да Нужно ли отправлять контрольные пакеты TCP.
40 Строка ASCII Да Домен NIS по умолчанию.
41 Один или несколько IP-адресов в десятичном формате с точками Да IP-адреса серверов NIS.
42 Один или несколько IP-адресов в десятичном формате с точками Да IP-адреса серверов NTP.
43 Шестнадцатеричная строка в формате hex "цифры", hex"цифры" или 0xцифры Да, но фактически задается только с контейнером vendor Встроенный контейнер опций для контейнера vendor.
44 Один или несколько IP-адресов в десятичном формате с точками Да Список IP-адресов серверов NetBIOS.
45 Один или несколько IP-адресов в десятичном формате с точками Да Список IP-адресов серверов рассылки дейтаграмм NetBIOS.
46 8-разрядное целое число без знака Да Тип узла NetBIOS.
47 Шестнадцатеричная строка в формате hex "цифры", hex"цифры" или 0xцифры Да Область NetBIOS.
48 Один или несколько IP-адресов в десятичном формате с точками Да IP-адреса серверов шрифтов X Windows.
49 Один или несколько IP-адресов в десятичном формате с точками Да Диспетчер дисплея X Windows.
50 Нет Нет IP-адрес, запрашиваемый клиентом.
51 32-разрядное целое число без знака Да Время выделения для возвращаемого адреса. По умолчанию сервер DHCP использует ключевое слово leasetimedefault, однако непосредственное задание опции 51 переопределяет его.
52 Нет Нет Переопределение опции. Клиент использует эту опцию, чтобы указать, что у полей sname и file пакета BOOTP могут быть дополнительные опции.
53 Нет Нет Используется сервером DHCP или клиентом для указания типа сообщения DHCP.
54 Нет Нет Используются сервером DHCP или клиентом для указания адреса сервера или сервера, на который направляется сообщение.
55 Нет Нет Используется клиентом DHCP для указания требуемых параметров.
56 Строка ASCII Да Строка, которую сервер DHCP отправляет клиенту. В общем случае может использоваться сервером и клиентом DHCP для сообщения о неполадках.
57 Нет Нет С помощью этой опции клиент DHCP сообщает серверу DHCP максимальный размер пакетов, которые он может принимать.
58 32-разрядное целое число без знака Да Интервал времени (в секундах), в течение которого клиент должен отправить запрос на обновление.
59 32-разрядное целое число без знака Да Интервал времени (в секундах), в течение которого клиент должен отправить запрос на повторное связывание.
60 Нет Нет Эта опция используется клиентом DHCP для указания типа вендора. Сервер DHCP использует это поле для сравнения с контейнерами vendor.
61 Нет Нет Используется для однозначной идентификации клиента DHCP. Сервер DHCP использует это поле для сравнения с контейнерами client.
64 Строка ASCII Да Задает домен NIS+.
65 Один или несколько IP-адресов в десятичном формате с точками Да IP-адреса серверов NIS+.
66 Строка ASCII Да Определяет имя сервера TFTP. Это имя хоста, которое используется вместо имени, указанного в поле siaddr, в том случае, если клиент поддерживает данную опцию.
67 Строка ASCII Да Задает имя загрузочного файла. Может использоваться вместо ключевого слова bootfile, которое помещает файл в поле filename пакета.
68 Один или несколько IP-адресов в десятичном формате с точками или NONE Да Адреса домашних агентов.
69 Один или несколько IP-адресов в десятичном формате с точками Да Серверы SMTP по умолчанию.
70 Один или несколько IP-адресов в десятичном формате с точками Да Серверы POP3 по умолчанию.
71 Один или несколько IP-адресов в десятичном формате с точками Да Серверы NNTP по умолчанию.
72 Один или несколько IP-адресов в десятичном формате с точками Да Серверы WWW по умолчанию.
73 Один или несколько IP-адресов в десятичном формате с точками Да Серверы Finger по умолчанию.
74 Один или несколько IP-адресов в десятичном формате с точками Да Серверы IRC по умолчанию.
75 Один или несколько IP-адресов в десятичном формате с точками Да Серверы Street Talk по умолчанию.
76 Один или несколько IP-адресов в десятичном формате с точками Да Серверы поддержки каталога Street Talk по умолчанию.
77 Строка ASCII Да Идентификатор класса пользователя. Сервер DHCP использует это поле для сравнения с контейнерами class.
81 Строка ASCII плюс другие элементы. Нет С помощью этой опции клиент DHCP определяет стратегию, которую сервер DHCP должен применять в отношении DDNS.
93 Нет Нет Эта опция используется клиентом DHCP для определения архитектуры системы клиента.
94 Нет Нет Эта опция используется клиентом DHCP для определения сетевого интерфейса клиента.
255 Нет Нет Эта опция используется сервером и клиентом DHCP для указания на конец списка опций.

Опции контейнера Vendor PXE

При работе с клиентом PXE сервер DHCP передает следующую опцию серверу BINLD для настройки этого сервера.

Опция Тип данных по умолчанию Можно указывать? Описание
7 адрес с точками Да Групповой IP-адрес. Групповой IP-адрес для сервера загрузки.

Ниже приведен пример использования этой опции:

pxeservertype    proxy_on_dhcp_server
 
Vendor pxeserver
{
     option   7    9.3.4.68
}

В этом примере сервер DHCP информирует клиента, что сервер proxy работает на том же компьютере и ожидает запросов клиента на порту 4011. В данном примере необходим контейнер vendor, так как сервер BINLD отправляет сообщение INFORM/REQUEST в порт 67 с опцией 60, равной "PXEServer." В ответ сервер DHCP отправляет групповой IP-адрес, от которого BINLD должен получить запрос клиента PXE.

Примеры файлов настройки клиентов PXE

В следующем примере сервер dhcpsd либо передает имя файла загрузки клиенту PXE, либо отправляет клиента PXE на сервер BINLD с помощью дополнительных опций. Ключевое слово pxeboofile применяется для создания списка файлов загрузки для заданной архитектуры клиента со старшей и младшей версиями системы клиента.

pxeservertype     dhcp_pxe_binld
 
subnet default
{
     vendor pxe
     {
         option 6 2    # Отключить групповые адреса
         option 8 5 4 10.10.10.1 12.1.1.15 12.5.5.5 12.6.6.6\
                  2 2 10.1.1.10 9.3.4.5 1 1 10.5.5.9\
                  1 1 9.3.149.15\
                  4 0
         option 9 5 "WorkSpace On Demand" 2 "Intel"\
                  1 "Microsoft WindowsNT" 4 "NEC ESMPRO"
         option 10 2 "Нажмите F8 для вызова меню"
     }
     vendor pxeserver
     {
         option 7 239.0.0.239
     }
 
}
 
subnet 9.3.149.0 255.255.255.0
{
     option 3   9.3.149.1
     option 6   9.3.149.15
 
     vendor pxe
     {
       option    6    4    # bootfile присутствует в начальном пакете
       pxebootfile   1   2   1   os2.one
       pxebootfile   2   2   1   aix.one
     }
}
 

С помощью каждой строки option сервер задает для клиента какое-либо действие. В разделе Опции контейнера PXE описаны все поддерживаемые и известные опции.

Синтаксис файла сервера DHCP для общих операций сервера

Примечание: Используемые в таблицы единицы времени (единицы_времени) являются необязательными и применяются в качестве модификаторов значений времени. По умолчанию время указывается в минутах. Допустимо указывать время в секундах (1), минутах (60), часах (3600), сутках (86400), неделях (604800), месяцах (2392000) и годах (31536000). В скобках указано число, на которое надо умножить заданное значение времени, n, чтобы перевести его в секунды.

Ключевое слово Формат Вложенные контейнеры Значение по умолчанию Описание
database database тип Да Нет Основной контейнер, содержащий определения для пулов адресов, опций и операторов, задающих уровень доступа клиентов. Тип - это имя модуля, который должен загружаться для обработки этой части файла. В текущей версии применяется только значение db_file.
logging_info logging_info Да Нет основной контейнер, определяющий параметры ведения протоколов.
logitem logitem NONE Нет По умолчанию все запрещены. Задает уровень ведения протокола. Можно указать несколько строк.
logitem SYSERR
logitem OBJERR
logitem PROTOCOL
logitem PROTERR
logitem WARN
logitem WARNING
logitem CONFIG
logitem EVENT
logitem PARSEERR
logitem ACTION
logitem ACNTING
logitem STAT
logitem TRACE
logitem RTRACE
logitem START
numLogFiles numLogFiles n Нет 0 Указывает, сколько файлов протоколов нужно создать. Каждый последующий файл протокола создается после заполнения предыдущего. n - число создаваемых файлов.
logFileSize logFileSize n Нет 0 Задает размер каждого файла протокола в блоках по 1024 байта.
logFileName logFileName путь Нет Нет Задает путь к первому файлу протокола. Имя файла протокола имеет вид имя_файла или имя_файла.расширение. Имя_файла должно состоять не более, чем из восьми символов. Имя следующего файла протокола создается на основе базового имени_файла, к которому добавляется номер, либо этот номер указывается вместо расширения. Например, если первому файлу присвоено имя file, то именем следующего файла будет file01. Если имя первого файла - file.log, то следующему файлу будет присвоено имя file.01.
CharFlag charflag yes Нет true Для сервера DHCP этой операционной системы неприменимо, однако используется сервером DHCP OS/2 для создания окон отладки.
charflag true
charflag false
charflag no
StatisticSnapShot StatisticSnapShot n Нет -1, never Задает интервал времени в секундах между операциями записи статистической информации в файл протокола.
UsedIpAddressExpireInterval UsedIpAddressExpireInterval n единицы_времени Нет -1, never Указывает, с какой периодичностью проверяется правильность адресов, имеющих состояние НЕВЕРНЫЙ.
leaseExpireInterval leaseExpireInterval nединицы_времени Нет 900 seconds Задает периодичность, с которой будет проверяться завершение времени выделения адресов, находящихся в состоянии СВЯЗАН. Если время выделения адреса закончилось, то адресу присваивается состояние ИСТЕК.
reservedTime reservedTime n единицы_времени Нет -1, never Указывает, как долго адрес может находиться в состоянии ЗАРЕЗЕРВИРОВАН перед тем, как он будет переведен в состояние СВОБОДЕН.
reservedTimeInterval reservedTimeInterval n единицы_времени Нет 900 seconds Указывает, с какой периодичностью проверяется адрес, находящийся в состоянии ЗАРЕЗЕРВИРОВАН, перед тем, как он будет переведен в состояние СВОБОДЕН.
saveInterval saveInterval n единицы_времени Нет 3600 seconds Указывает, с какой периодичностью сервер DHCP должен проводить принудительное сохранение открытых баз данных. Для серверов, работающих с высокой нагрузкой, это значение должно составлять от 60 до 120 секунд.
clientpruneintv clientpruneintv n единицы_времени Нет 3600 seconds Указывает, с какой периодичностью сервер DHCP удаляет из базы данных клиентов, не связанных с какими-либо адресами (т.е. клиентов с состоянием НЕИЗВЕСТНО). Это сокращает объем памяти, используемой сервером DHCP.
numprocessors numprocessors n Нет 10 Указывает, сколько должно быть создано нитей для обработки пакетов. Минимальное значение равно единице.
userObject userObject имя_объекта Да Нет Указывает, что сервер должен загружать пользовательский общий объект и вызывать программы из этого объекта при каждом взаимодействии с клиентами DHCP. Объект для загрузки находится в каталоге /usr/sbin под именем имя_объекта.dhcpo. См. описание API пользовательских расширений сервера DHCP.
pxeservertype pxeservertype тип_сервера Нет dhcp_only Задает тип сервера dhcpd. Тип_сервера может принимать следующие значения:

dhcp_pxe_binld
DHCP выполняет функции dhcpsd, pxed и bindl.

proxy_on_dhcp_server
DHCP направляет клиента PXE на порт proxy-сервера на том же компьютере.

Значение по умолчанию - dhcp_only, то есть dhcpsd не поддерживает клиентов PXE.

Синтаксис файла сервера DHCP для базы данных db_file

Примечания: Используемые в таблицы единицы времени (единицы_времени) являются необязательными и применяются в качестве модификаторов значений времени. По умолчанию время указывается в минутах. Допустимо указывать время в секундах (1), минутах (60), часах (3600), сутках (86400), неделях (604800), месяцах (2392000) и годах (31536000). В скобках указано число, на которое надо умножить заданное значение времени, n, чтобы перевести его в секунды.

Кроме того, элементы, описанные в одном контейнере, могут быть переопределены во вложенном контейнере. Например, можно определить клиентов BOOTP на глобальном уровне, но разрешить их работу только в конкретной подсети, указав ключевое слово supportBootp в обоих контейнерах.

В контейнерах client, class и vendor поддерживаются регулярные выражения. Если в контейнере class или vendor указана заключенная в кавычки строка, в которой после открывающей кавычки стоит символ !, то остаток строки будет обрабатываться как регулярное выражение. В контейнере client регулярные выражения можно указывать в полях hwtype и hwaddr. В обоих полях можно задавать строку следующего формата:

десятичное_число-данные

Если десятичное_число равно нулю, то данные представляют строку ASCII. Если указано любое другое число, то данные представляют собой набор шестнадцатеричных цифр.


Ключевое слово Формат Вложенные контейнеры Значение по умолчанию Описание
subnet subnet default Да Нет Определяет подсеть, которая входит в диапазон. Подсеть применяется только при ответе на пакет INFORM/REQUEST, полученный от клиента, а для адреса клиента нет соответствующего контейнера подсети.
subnet subnet ид подсети маска Да Нет Определяет подсеть и пул адресов. Если в строке не задан диапазон адресов и адреса не изменены в контейнере с помощью оператора range или exclude, то предполагается, что пул включает все адреса. Необязательный параметр диапазона представляет собой пару IP-адресов в десятичном формате с точками, разделенных дефисом. Можно (но не обязательно) указывать метку и приоритет. Они используются виртуальными подсетями для идентификации и упорядочения подсетей в виртуальной подсети. Метка и приоритет разделяются двоеточием. Эти контейнеры могут использоваться только на глобальном уровне или на уровне контейнера базы данных.
subnet ид подсети маска диапазон
subnet ид подсети маска метка:приоритет
subnet ид подсети маска диапазон метка:приоритет
subnet subnet ид подсети диапазон Да Нет Определяет подсеть, которая входит в контейнер сети. Задает диапазон адресов. Если не задан диапазон, то считается, что в подсеть входят все адреса. Маска подсети определяется родительским контейнером сети.

Примечание: Задавать подсеть таким образом не рекомендуется.

option option номер данные ... Нет Нет Задает опцию для отправки клиенту, или, в случае запрещения, опцию, отправка которой запрещена. Опция option * deny означает, что все параметры, не определенные в данном контейнере, не должны возвращаться клиенту. Опция номерdeny запрещает только указанную опцию. Номер - это 8-разрядное целое число без знака. Данные - это данные для опции (см. выше), заключенная в кавычки строка ASCII, либо шестнадцатеричные данные в одном из форматов: 0xшестн._число или hex "шестн._число" или hex"шестн._число". Если опция находится в контейнере vendor, то она будет включена вместе с другими опциями в опцию 43.
option номерdeny
option * deny
exclude exclude IP-адрес Нет Нет Изменяет диапазон адресов контейнера, в котором указан оператор exclude. На глобальном уровне и на уровне контейнера базы данных оператор exclude недопустим. Оператор exclude удаляет заданные адреса или диапазон адресов из диапазона, указанного для данного контейнера. Оператор exclude позволяет создавать для подсетей и других контейнеров не смежные диапазоны адресов.
exclude адрес-адрес
range range IP-адрес Нет Нет Изменяет диапазон адресов контейнера, в котором указан оператор range. На глобальном уровне и на уровне контейнера базы данных оператор range недопустим. Если в строке описания контейнера не задан диапазон адресов и оператор range стоит в этом контейнере первым, то диапазон адресов контейнера будет определяться именно этим оператором range. Диапазоны, определяемые всеми остальными операторами range, стоящими после первого оператора range, или всеми операторами range, задающими диапазоны в строке описания контейнера, добавляются к текущему диапазону. С помощью оператора range к диапазону можно добавить отдельный адрес или набор адресов. Диапазон должен размещаться внутри группы адресов, определенной для контейнера подсети.
range адрес-адрес
client client тип аппаратуры аппаратный адрес NONE Да Нет Определяет контейнер клиента, запрещающий выделение адреса клиенту с указанным типом аппаратуры и аппаратным адресом. Если параметр тип аппаратуры равен 0, то в параметре аппаратный адрес должна быть задана строка ASCII. В остальных случаях тип аппаратуры - это тип аппаратного обеспечения клиента, а аппаратный адрес - аппаратный адрес клиента. Если аппаратный адрес - это строка, то она может быть заключена в кавычки. Если аппаратный адрес - это шестнадцатеричная строка, то он может быть записан в виде 0xшестн._число или hex шестн._число. Диапазон разрешает выделять адрес из указанного диапазона клиенту с указанным типом аппаратуры и аппаратным адресом. Для сравнения нескольких клиентов должны использоваться регулярные выражения.
client тип аппаратуры аппаратный адрес ANY
client тип аппаратуры аппаратный адрес адрес
client тип аппаратуры аппаратный адрес диапазон
class class строка Да Нет Определяет контейнер класса с именем строка. Строка может быть заключена в кавычки. Если строка заключена в кавычки, то перед сравнением они удаляются. Кавычки необходимы в том случае, если строка содержит пробелы или символы табуляции. Использование контейнера class допустимо на любом уровне. Для задания набора адресов, которые могут быть предложены клиенту с данным классом, рекомендуется пользоваться диапазонами. Диапазон может задаваться как одиночный IP-адрес в десятичном формате с точками или как два IP-адреса, разделенных дефисом.
class строка диапазон
network network ид сети маска Да Нет Задает ИД сети на основании информации о классе (например, 9.3.149.0 с маской сети 255.255.255.0 - это сеть 9.0.0.0 255.255.255.0). В таком контейнере сети могут находиться подсети с одинаковым ИД сети и маской сети. Если задан диапазон адресов, то все адреса этого диапазона образуют пул. Диапазон адресов должен относиться к данной сети. Используется полная адресация класса. Это ключевое слово допустимо только на глобальном уровне или на уровне контейнера базы данных.

Примечание: Вместо ключевого слова network лучше использовать контейнер subnet.

network ид_сети
network ид сети диапазон
vendor vendor ид_вендора Да Нет Определяет контейнер вендора. Контейнеры вендоров используются для возврата клиенту опции 43. ИД вендора может задаваться в виде строки, заключенной в кавычки, либо в виде двоичной строки в формате 0xшестн._число или hex "шестн._число". После ИД вендора можно указать диапазон. Диапазон задается двумя IP-адресами в десятичном формате с точками, разделенными дефисом. После диапазона может следовать первая часть опции 43 в виде шестнадцатеричной или ASCII-строки. При наличии в контейнере опций они добавляются к данным опции 43. После обработки всех опций к данным добавляется опция конца списка. Для возврата клиенту других опций (помимо опции 43) используйте регулярное выражение, позволяющее сравнивать всех клиентов и определения нормальных опций, возвращаемых на основании ИД вендора.
vendor ид_вендора hex ""
vendor ид_вендора hex ""
vendor ид_вендора 0xданные
vendor ид_вендора ""
vendor ид_вендора диапазон
vendor ид_вендора диапазон hex ""
vendor ид_вендора диапазон hex ""
vendor ид_вендора диапазон
vendor ид_вендора диапазон ""
inoption inoption номерданные Да Нет Указывает контейнер, с которым следует сравнивать переданные клиентом опции с данным номером. номер означает номер опции. данные - это ключ для сравнения с этим контейнером в ходе выбора адреса и опции для данного клиента. Параметр данные для стандартных опций указывается в явной форме: строка, заключенная в кавычки, IP-адрес, целое число; кроме того, их можно указать в форме шестнадцатеричной строки байтов, начинающейся с символов 0x. Для опций, неизвестных серверу, допустим только второй вариант. Кроме того, данные могут представлять собой выражение, которое следует сравнить с содержимым строки данных опции, переданной клиентом. Такие выражения записываются в кавычках и начинаются с символов "! (кавычка и восклицательный знак). Опции, неизвестные серверу, должны указываться в виде шестнадцатеричной строки байтов БЕЗ начальных символов 0x.
inoption номерданныедиапазон
virtual virtual fill ИД ИД ... Нет Нет Определяет виртуальную подсеть со стратегией. Слово fill означает, что перед переходом к следующему контейнеру необходимо использовать все адреса текущего контейнера. Слово rotate указывает, что для каждого запроса адрес выбирается из следующего указанного пула. sfill и srotate означают то же, что fill и rotate, однако в этом случае производится поиск, чтобы узнать, не соответствует ли клиент каким-либо контейнерам, вендорам или классам в подсети. Если обнаружено совпадение с контейнером, в котором выделяется адрес, то, адрес выбирается из этого контейнера, а не назначается в соответствии со стратегией. Число ИД в списке не ограничено. ИД - это либо ИД подсети, либо метка, заданная в описании подсети. Метка нужна при наличии нескольких подсетей с одинаковым идентификатором.
virtual sfill ИД ИД ...
virtual rotate ИД ИД ...
virtual srotate ИД ИД ...
inorder: inorder: ИД ИД ... Нет Нет Определяет виртуальную подсеть со стратегией заполнения, т.е. перед переходом к следующему контейнеру должны быть использованы все адреса текущего контейнера. Число ИД в списке не ограничено. ИД - это либо ИД подсети, либо метка, заданная в описании подсети. Метка нужна при наличии нескольких подсетей с одинаковым идентификатором.
balance: balance: ИД ИД ... Нет Нет Определяет виртуальную подсеть со стратегией смены адресов, при которой каждый следующий адрес выбирается из следующего контейнера. Число ИД в списке не ограничено. ИД - это либо ИД подсети, либо метка, заданная в описании подсети. Метка нужна при наличии нескольких подсетей с одинаковым идентификатором.
supportBootp supportBootp true Нет Да Указывает, должен ли текущий контейнер и все контейнеры следующих уровней (до переопределения) поддерживать клиентов BOOTP.
supportBootp 1
supportBootp yes
supportBootp false
supportBootp 0
supportBootp no
supportUnlistedclients supportUnlistedclients BOTH Нет Both Указывает, должен ли текущий контейнер и все контейнеры следующих уровней (до переопределения) поддерживать клиентов, не перечисленных в списке. Значение указывает, каким клиентам необходимо разрешить доступ (без использования специальных операторов описания клиентов): только клиентам DHCP, только клиентам BOOTP или запретить доступ всем клиентам.

Примечание: Значения true и false поддерживаются для совместимости с предыдущими версиями и использовать их не рекомендуются. Тrue соответствует значению BOTH, а false - значению NONE.
supportUnlistedclients DHCP
supportUnlistedclients BOOTP
supportUnlistedclients NONE
supportUnlistedclients true
supportUnlistedclients yes
supportUnlistedclients 1
supportUnlistedclients false
supportUnlistedclients no
supportUnlistedclients 0
addressrecorddb addressrecrddb полное_имя Нет Нет Работает как ключевое слово backupfile. Допустимо только на глобальном уровне или на уровне контейнера базы данных.

Примечание: Использовать этот метод не рекомендуется.

backupfile backupfile полное_имя Нет /etc/db_file.crbk Определяет файл для хранения резервных копий базы данных. Допустимо только на глобальном уровне или на уровне контейнера базы данных.
checkpointfile checkpointfile полное_имя Нет /etc/db_file.chkpt Задает контрольные файлы базы данных. Первый контрольный файл задается параметром полное_имя. В имени второго файла второй символполного имени заменяется на цифру 2. В связи с этим имена контрольных файлов не должны заканчиваться цифрой 2. Правило действует только для контейнеров глобального уровня или уровня базы данных.
clientrecorddb clientrecorddb полное_имя Нет /etc/db_file.cr Задает файл для сохранения базы данных. В этом файле будут сохраняться записи всех клиентов, которых обслуживает сервер DHCP. Допустимо только на глобальном уровне или на уровне контейнера базы данных.
bootstrapserver bootstrapserver IP-адрес Нет Нет Указывает, на каком сервере находятся файлы TFTP, которые должны использоваться клиентами после получения ими пакетов BOOTP или DHCP. Это значение задается в поле siaddr пакета. Допустимо на уровне любого контейнера.
giaddrfield giaddrfield IP-адрес Нет Нет Задает поле giaddrfield для ответных сообщений (пакетов).

Примечание: Данная спецификация недопустима в протоколах BOOTP и DHCP, однако, некоторые клиенты требуют, чтобы в поле giaddr был указан шлюз по умолчанию для сети. Из-за возможных конфликтов ключевое слово giaddrfield должно использоваться только внутри контейнеров клиентов, хотя оно может работать на любом уровне.

pingTime pingTime n единицы_времени Нет 3 seconds Задает время ожидания отклика на команду ping перед выделением адреса. По умолчанию время указывается в сотых долях секунды. Значение единиц времени определено в примечаниях, приведенных перед данной таблицей. Допустимо на уровне любого контейнера. Параметр единицы_времени указывать не обязательно.
bootptime bootptime n единицы_времени Нет -1, infinite Определяет время выделения адреса для клиента BOOTP. Значение по умолчанию -1, что соответствует бесконечному времени выделения адреса. Применимы обычные единицы времени. Параметр единицы_времени указывать не обязательно. Допустимо на уровне любого контейнера.
AllRoutesBroadcast allroutesbroadcast no Нет 0 Указывает, должны ли ответные сообщения рассылаться по всем маршрутам, если необходим оповещающий ответ. Допустимо на уровне любого контейнера. Это ключевое слово игнорируется сервером DHCP, поскольку для возвращения пакета сохраняется фактический адрес MAC клиента, включая RIF. Допустимо на уровне любого контейнера.
allroutesbroadcast false
allroutesbroadcast 0
allroutesbroadcast yes
allroutesbroadcast true
allroutesbroadcast 1
addressassigned addressassigned "строка" Нет Нет Определяет заключенную в кавычки строку, которая будет выполняться при присвоении адреса клиенту. Строка должна содержать два параметра подстановки %s. Первый параметр %s - это ИД клиента в виде тип-строка. Второй параметр %s - это IP-адрес в десятичном формате с точками. Допустимо на уровне любого контейнера.
addressreleased addressreleased "строка" Нет Нет Определяет заключенную в кавычки строку, которая будет выполняться при освобождении адреса клиентом. Строка должна содержать один параметр подстановки %s, который задает высвобождаемый IP-адрес в десятичном формате с точками. Допустимо на уровне любого контейнера.
appenddomain appenddomain 0 Нет Нет Указывает, нужно ли добавлять имя домена, определяемое опцией 15, к рекомендуемому для клиента имени хоста в том случае, если клиент не предлагает задавать имя домена. Допустимо на уровне любого контейнера.
appenddomain no
appenddomain false
appenddomain 1
appenddomain yes
appenddomain true
canonical canonical 0 Нет 0 Указывает, что ИД клиента имеет канонический формат. Допустимо только в контейнере клиента.
canonical no
canonical false
canonical 1
canonical yes
canonical true
leaseTimeDefault leaseTimeDefault n единицы_времени Нет 86400 seconds Задает время выделения адреса по умолчанию для клиентов. Допустимо на уровне любого контейнера. Параметр единицы_времени указывать не обязательно.
proxyarec proxyarec never Нет usedhcpddnsplus Указывает опции и способы для обновления записей А в DNS. Значение never указывает, что запись А никогда не обновляется. Значение usedhcpddns указывает, что должна применяться опция 81, если она задана клиентом. Значение usedhcpddnsplus указывает, что должна применяться опция 81 или опции 12 и 15, если они заданы. Значение always задает обновление записей А для всех клиентов. Значения XXXXprotected изменяют команду nsupdate и выполняют проверку допустимости клиента. Значение standard аналогично значению always. Значение protected аналогично значению alwaysprotected. Допустимо на уровне любого контейнера.
proxyarec usedhcpddns
proxyarec usedhcpddnsplus
proxyarec always
proxyarec usedhcpddnsprotected
proxyarec usedhcpddnsplusprotected
proxyarec alwaysprotected
proxyarec standard
proxyarec protected
releasednsA releasednsA "строка" Нет Нет Задает строку, которая выполняется при освобождении адреса. Строка используется для удаления записи А, связанной с освобождаемым адресом. Допустимо на уровне любого контейнера.
releasednsP releasednsP "строка" Нет Нет Задает строку, которая выполняется при освобождении адреса. Строка используется для удаления записи PTR, связанной с освобождаемым адресом. Допустимо на уровне любого контейнера.
removedns removedns "строка" Нет Нет Задает строку, которая выполняется при освобождении адреса. Строка используется для удаления записей PTR и A, связанных с освобождаемым адресом. Допустимо на уровне любого контейнера.

Примечание: Вместо данного ключевого слова рекомендуется использовать ключевые слова releasednsA и releasednsP.

updatedns updatedns "строка" Нет Нет Задает строку, которая выполняется при связывании адреса. Строка используется для обновления записей PTR и А, связанных с данным адресом. Допустимо на уровне любого контейнера.

Примечание: Вместо данного ключевого слова рекомендуется использовать ключевые слова updatednsA и updatednsP.

updatednsA updatednsA "строка" Нет Нет Задает строку, которая выполняется при связывании адреса. Строка используется для обновления записи А, связанной с данным адресом. Допустимо на уровне любого контейнера.
updatednsP updatednsP "строка" Нет Нет Задает строку, которая выполняется при связывании адреса. Строка используется для обновления записи PTR, связанной с данным адресом. Допустимо на уровне любого контейнера.
hostnamepolicy hostnamepolicy suggested Нет по умолчанию Задает имя хоста для возвращения клиенту. Стратегия по умолчанию отдает преимущество заданным именам хостов и доменов перед рекомендуемыми. Другие стратегии подразумевают строгое соответствие (например, при указании опции defined будет возвращаться заданное имя, а если имя не задано, то оно не будет возвращено). Аналогично, в случае применения стратегии с модификатором always сервер будет возвращать параметр имени хоста независимо от того, запросил его клиент в опции списка параметров или нет. Обратите внимание, предложение имени хоста подразумевает его запрос, и имена хостов могут быть предложены с помощью опции 81 или опций 12 и 15. Данное ключевое слово допустимо на уровне любого контейнера.
hostnamepolicy resolved
hostnamepolicy always_resolved
hostnamepolicy defined
hostnamepolicy always_defined
hostnamepolicy default
bootfilepolicy bootfilepolicy suggested Нет suggested Задает предпочтения при возвращении имени загрузочного файла клиенту. Значение suggested означает, что имя загрузочного файла, предложенного клиентом, будет предпочтительней любого имени, указанного в конфигурации сервера. Значение merge добавляет имя, предложенное клиентом, к домашнему каталогу, указанному в конфигурации сервера. Значение defined означает, что имя загрузочного файла, определенное в конфигурации, будет предпочтительней имени, предложенного клиентом. Значение always возвращает заданное имя независимо от того, запрашивает ли клиент параметр загрузочного файла с помощью опции списка параметров.
bootfilepolicy merge
bootfilepolicy defined
bootfilepolicy always
stealfromchildren stealfromchildren true Нет Нет Указывает, должен ли родительский контейнер использовать адреса из дочерних контейнеров в том случае, если его пул адресов исчерпан. Это означает, что если у вас есть подсеть с классом, для которого задан диапазон адресов, то эти адреса зарезервированы для клиентов, соответствующих данному классу. Если для опции stealfromchildren указано значение true, то для выполнения запроса будут применяться адреса из дочернего контейнера. По умолчанию адреса из дочерних контейнеров не используются.
stealfromchildren 1
stealfromchildren yes
stealfromchildren false
stealfromchildren 0
stealfromchildren no
homedirectory homedirectory полное_имя Нет Нет Определяет домашний каталог, который используется в разделе файла, задающем ответный пакет (сообщение). Допустимо на уровне любого контейнера. Взаимодействие элементов, указанных в поступающем пакете с операторами загрузочного файла и домашнего каталога определяется стратегией загрузочного файла.
bootfile bootfile полное_имя Нет Нет Определяет загрузочный файл, который должен быть указан в ответном пакете. Допустимо на уровне любого контейнера. Взаимодействие элементов, указанных в поступающем пакете с операторами загрузочного файла и домашнего каталога определяется стратегией загрузочного файла.
pxebootfile pxebootfile архитектура старшая_версия младшая_версия файл_загрузки Нет Нет Задает файл загрузки для клиента. Он применяется только в случае, если dhcpsd поддерживает клиентов PXE ( pxeservertype равно dhcp_pxe_binld). Программа разбора файла конфигурации отравляет сообщение об ошибке, если число параметров после pxebootfile меньше четырех, а лишние параметры всегда игнорируются. pxebootfile можно применять только в контейнере.

Взаимодействие DHCP с Администратором сетевой установки (NIM)

Динамическое распределение IP-адресов - относительно новая технология. Приведенные ниже рекомендации помогут вам организовать взаимодействие DHCP и NIM.

  1. При настройке объектов в среде NIM, всегда, когда это возможно, указывайте имена хостов. Это позволит вам использовать динамический сервер имен, который обновляет IP-адреса при преобразовании имен хостов в IP-адрес в среде NIM.
  2. Главная машина NIM и сервер DHCP должны быть установлены на одном компьютере. Сервер DHCP имеет опцию обновления строки DNS. Если указать эту опцию с параметром NIM, то в моменты изменения адресов система будет старается не переключать объекты NIM в состояния, требующие статических IP-адресов.
  3. Для клиентов NIM время выделения адресов по умолчанию должно равняться удвоенному времени, требующемуся для установки клиента. Таким образом, выделенный адрес будет допустим на протяжении всего процесса установки. После установки перезапустите клиента. В зависимости от типа установки, сервер DHCP будет запушен или потребует настройки.
  4. Сервер dhcpsd должен отвечать и за записи PTR, и за записи A DNS. Когда NIM повторно устанавливает машину, файл, содержащий RSA, удаляется, и клиент не может обновить свои записи. Поэтому системные записи обновляет сервер. Для этого измените строку updatedns в файле /etc/dhcpcd.ini следующим образом:

    updatedns "/usr/sbin/dhcpaction '%s' '%s' '%s' '%s' NONE NONIM"
    

    В файле /etc/dhcpsd.cnf измените строку updatedns:

    updatedns "/usr/sbin/dhcpaction '%s' '%s' '%s' '%s' BOTH NIM"
    

    Примечание: Когда объект NIM ожидает установки BOS, сервер dhcpsd может передавать аргументы, отличающиеся от первоначально предполагавшихся. Постарайтесь уменьшить время, в течение которого клиент находится в состоянии ожидания.

Данные рекомендации позволяют существенно упростить настройку среды NIM для работы с динамическими клиентами.

Дополнительная информация об Администраторе сетевой установки приведена в книге AIX 5L, версия 5.1: Руководство и справочник по сетевой установке.


[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека | Юридическая информация | Поиск ]