/etc/dhcpd.conf

Определение подробной конфигурации DHCP

Синтаксис:

/etc/dhcpd.conf

Платформы:

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

Описание:

Файл dhcpd.conf представляет собой текстовый ASCII-файл произвольного формата; он содержит список операторов, используемый утилитой dhcpd для конфигурирования DHCP.

Формат файла

При создании файла dhcpd.conf вначале вводится ключевое слово scope (описание контекста), за которым следует пара фигурных скобок ({}), в которых указывается параметр и операторы объявления, применяемые в данном контексте. При отсутствии ключевого слова scope оператор применяется глобально.

Контекст

Ниже перечислены ключевые слова, определяющие контекст, и соответствующие операторы.


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

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

Ключевое слово host

Ключевое слово host означает, что все следующие за ним операторы применяются к конкретному хосту-компьютеру в сети.

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

Если необходима возможность загрузки клиента DHCP или BOOTP в нескольких подсетях с фиксированными адресами, то можно указать несколько адресов в операторе fixed-address или использовать несколько операторов host.

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

Если динамический адрес должен назначаться только при невозможности загрузки с фиксированным адресом, то оператор host следует записывать без параметра fixed-address.

Объявления host привязываются к фактическим клиентам DHCP или BOOTP путем сопоставления опции dhcp-client-identifier, указанной в объявлении host, с опцией, предоставленной клиентом; если объявление host не содержит опцию dhcp-client-identifier, и она не предоставлена клиентом, привязка выполняется путем сопоставления параметра аппаратного обеспечения в объявлении host с сетевым аппаратным адресом, предоставленным клиентом. Обычно клиенты BOOTP не предоставляют опцию dhcp-client-identifier, поэтому для всех клиентов, поддерживающих загрузку с использованием протокола BOOTP, следует применять сетевой аппаратный адрес.

Оператор host объявляется следующим образом:

host имя{ [ параметры ] [ объявления ] }

где имя – уникальное имя хоста (пример и ограничения по использованию приведены в описании use-host-decl-names флаг; в разделе Операторы параметров далее)

Примеры параметров, которым могут присваиваться значения в типичном контексте host:

Ключевое слово group

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

Если одни компьютеры в подсети имеют одинаковые параметры, а на других компьютерах они отличаются, то можно создать контекст group для обработки отдельных компьютеров без выделения их в отдельную подсеть. Для этого используется ключевое слово group. Все опции, включенные в контекст group, применяются к этой группе. Как и в случае подсетей, одновременно с группой в этом контексте можно указывать отдельные хосты.

Например, требуется предоставить клиентам DHCP, зарегистрированным на сервере DHCP, большой набор адресов, а неизвестным клиентам – набор адресов меньшего размера, и, возможно, с более коротким сроком аренды. Другой пример: используется межсетевой экран, для адресов из одной группы требуется обеспечить доступ в Интернет и запретить его для адресов из другой группы – за счет этого стимулируется регистрация клиентов DHCP пользователями.


Note: В объявлении group или subnet можно указать параметры для отдельных хостов, как если бы эти хосты находились в одной сети с общей средой передачи данных.

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

group{ default-lease-time 100000; option routers 192.168.42.1; host fantasia { hardware ethernet 08:00:07:26:c0:a5; } host passacaglia { hardware ethernet 0:0:c0:5d:bd:95; } host confusia { hardware ethernet 02:03:04:05:06:07; default-lease-time 200000; } }

Все три компьютера в этой группе используют один и тот же маршрутизатор, но время аренды для узлов fantasia и passacaglia равно 100 000 секунд, а для confusia – 200 000 секунд.

Ключевое слово subnet

Для каждой обслуживаемой подсети и каждой сети из тех, к которым подключен сервер DHCP, необходимо указывать объявление subnet, в котором содержатся данные, используемые сервисом dhcpd для определения принадлежности адресов к этой подсети. Объявление subnet необходимо указывать для каждой сети даже в том случае, если в ней не используется назначение динамических адресов.

Если клиенты в какой-либо сети должны получать адреса динамически, то вместе с объявлением subnet необходимо использовать объявление range (диапазон). Оператор range содержит пул IP-адресов, выделенных для предоставления в этой подсети. Каждый клиент со статическим адресом должен иметь отдельное объявление host; то же самое необходимо в том случае, если обслуживать требуется только известные клиенты.

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

Любые подсети в сети с общей средой передачи данных необходимо описывать оператором shared-network.

Пример объявления подсети:

subnet номер_подсети netmask номер_сетевой_маски{ [ параметры ] [ объявления ] }

Значением переменной номер_подсети должен быть собой IP-адрес или доменное имя, которое разрешается в номер описываемой подсети. Значением переменной номер_сетевой_маски должен быть IP-адрес или доменное имя, с помощью которого по параметру номер_подсети определяется адрес подсети. Переменная номер_подсети совместно с переменной номер_сетевой_маски используется для определения того, принадлежит ли определенный IP-адрес к указанной подсети.

Сетевую маску необходимо указывать для каждого оператора подсети; если на предприятии используются различные маски подсетей, то для каждой из этих подсетей в параметре declaration необходимо указать оператор option для указания требуемой маски подсети (см. раздел Стандартные операторы параметров DHCP далее). Любой такой оператор option с маской подсети переопределяет сетевую маску, объявленную в первой строке оператора подсети.

Если подсеть становится сетью с разделяемой средой передачи данных

Некоторые системы включают в себя физические сети, в которых используется несколько IP-подсетей. Например, если на предприятии принято использование 8-битных масок подсетей, и имеется отдел с одной физической сетью Ethernet, число узлов которой превысило 254, то до тех пор, пока не будет добавлена новая физическая сеть, может потребоваться использование двух 8-битных подсетей в одной сети Ethernet. В этом случае необходимо включить объявления подсетей для этих двух сетей в объявление сети с общей средой передачи данных.

Для клиентов в нескольких подсетях

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

Ключевое слово shared-network

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

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

Все подсети одной сети с общей средой передачи данных должны быть объявлены в операторе shared-network. Загрузка клиентов в этих подсетях выполняется с использованием параметров, указанных в операторе shared-network, если они не переопределяются параметрами, заданными на уровне хоста или подсети. Если в какой-либо подсети в сети с общей средой передачи данных имеются адреса, доступные для динамического предоставления, такие адреса собираются в общий пул, предназначенный для этой сети с общей средой передачи данных, и назначаются клиентам в соответствии с текущими потребностями. При этом невозможно определить, из какой конкретной подсети в сети с общей средой передачи данных должен загружаться клиент.

Оператор shared-network имеет следующий синтаксис:

shared-network имя { [ параметры ] [ объявления ] }

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

Ключевое слово global

Ключевое слово global можно использовать отдельно или в составе объявлений более узкого контекста, таких как subnet и group. Это будет означать, что любой из следующих за этим ключевым словом операторов должен применяться глобально, в пределах другого контекста или для всей сети. Как правило, ключевое слово global опускается, поскольку оно подразумевается по умолчанию.

Операторы

Операторы включают в себя следующие:

Операторы диапазона

Оператор range описывает IP-адреса, которые могут предоставляться клиентам в пределах определенного контекста.

Для любой подсети, в которой адреса предоставляются динамически, должен быть задан как минимум один оператор range. В операторе диапазона указывается наименьший и наибольший IP-адреса диапазона. Все IP-адреса в диапазоне должны принадлежать той подсети, в которой объявлен оператор range. Если адреса в указанном диапазоне могут динамически предоставляться не только клиентам DHCP, но и клиентам BOOTP, то следует указать флаг dynamic-bootp. Оператор диапазона имеет следующий синтаксис:

range [ dynamic-bootp ] наименьший_адрес [ наибольший_адрес];

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

Операторы доступа

Операторы разрешения и запрета используются для управления ответами сервера DHCP на запросы различных типов. Ключевые слова allow и deny имеют различные значения в зависимости от контекста. При описании пула эти ключевые слова могут использоваться при настройке списков доступа для пулов назначения адресов. В других случаях эти ключевые слова просто управляют общим поведением сервера в отношении клиентов в зависимости от контекста.

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

allow|deny unknown-clients;
Флаг "unknown-clients" определяется для сервиса dhcpd необходимость динамического назначения адресов неизвестным клиентам. Значение по умолчанию – allow. (Клиент считается неизвестным, если для него нет объявления хоста.)
allow|deny bootp;
Флаг "bootp" определяет для сервиса dhcpd необходимость ответа на запросы BOOTP. Значение по умолчанию – allow.
allow|deny booting;
Флаг "booting" определяет для сервиса dhcpd необходимость ответа на запросы от определенного клиента. Это ключевое слово имеет значение только в составе объявления хоста. По умолчанию загрузка разрешена; если для какого-либо клиента она отключена, то такой клиент не сможет получить адрес от сервера DHCP.

Операторы параметров

always-reply-rfc1048 flag;
Некоторые клиенты BOOTP ожидают поступления ответов в формате RFC1048, но сами не следуют формату RFC1048 при посылке запросов. Определить наличие такой проблемы у клиента можно по следующему признаку: клиент не получает сконфигурированные для него опции, и каждый зарегистрированный запрос BOOTREQUEST в журнале сервера сопровождается сообщением "(non rfc1048)".

Если необходимо отправлять такому клиенту опции в формате rfc1048, то в объявлении хоста этого клиента можно указать опцию always-reply-rfc1048, после чего сервер DHCP будет посылать ответы с полем опций вендора в формате RFC-1048. Этот флаг можно установить в любом контексте; он будет действительным для всех клиентов, входящих в этот контекст.
authoritative; or not authoritative;
С точки зрения сервера DHCP обычно предполагается, что конфигурационная информация о сегменте сети не является гарантированно правильной и доверенной. Поэтому в случае, если сервер DHCP будет установлен кем-либо, не имеющим достаточного представления о его конфигурировании, этот сервер в любом случае не будет посылать клиентам, получившим адреса от действительного сервера DHCP в сети, некорректные сообщения DHCPNAK.

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

authoritative;

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

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


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

boot-unknown-clients флаг;
Если имеется оператор "boot-unknown-clients", и при этом флаг имеет значение "ложно" или "выключено", то клиентам, для которых отсутствует объявление хоста, не будет разрешено получать IP-адреса. Если этот оператор отсутствует или его флаг имеет значение "истинно" или "включено", то клиентам, для которых отсутствует объявление хоста, будет разрешено получать IP-адреса, при условии, что эти адреса не будут ограничены операторами "allow" и "deny" в объявлениях соответствующих пулов.
default-lease-time время;
Переменная время представляет собой продолжительность в секундах, которая будет установлена для аренды, если клиент, запросивший аренду, не запрашивает конкретное время истечения ее срока действия.
dynamic-bootp-lease-cutoff дата;
Посредством этого оператора задается общее время окончания аренды, динамически предоставленной клиентам BOOTP. Клиенты BOOTP не имеют способов возобновления аренды и не имеют информации о том, что аренда могла истечь, поэтому по умолчанию сервис dhcpd предоставляет всем клиентам BOOTP неограниченную аренду. С другой стороны, в некоторых случаях оптимальной может быть установка даты общей отмены любой аренды BOOTP, например, окончание периода обучения, или вечернее время окончания работы предприятия и отключения всех компьютеров.

Переменная дата представляет собой общую дату окончания любой аренды BOOTP. Дата задается в следующем формате:

ДН ГГГГ/ММ/ДД ЧЧ:ММ:СС

Где ДН – день недели, обозначенный цифрой от 0 (воскресенье) до 6 (суббота). ГГГГ – 4-значное обозначение года. ММ – месяц, обозначенный числом от 1 до 12. ДД – день в месяце, начиная с 1. ЧЧ – час, от 0 до 23. ММ – минута в часе, СС – секунда в минуте. Время всегда задается как универсальное глобальное время (UTC), местное время не используется.
dynamic-bootp-lease-length длина;
Этот оператор используется для определения продолжительности аренды, динамически предоставляемой клиентам BOOTP. На некоторых предприятиях может использоваться следующий принцип: если держатель аренды не воспользуется службой BOOTP или DHCP для получения адреса в течение определенного периода времени, то аренда считается неиспользуемой. Период задается переменной длина и выражается в секундах. Если в течение периода таймаута клиент перезагрузится с использованием BOOTP, то продолжительность аренды изменится на значение параметра длина; благодаря этому даже часто перезагружаемый клиент BOOTP не будет терять предоставленную аренду. При изменении значения параметра длина следует соблюдать осторожность.
filename имя_файла;
Этот оператор используется для указания имени файла начальной загрузки, который должен загружаться клиентом. Имя файла должно соответствовать ограничениям протокола передачи файлов, который может использоваться клиентом для загрузки этого файла.
fixed-address адрес[, адрес ... ];
Этот оператор используется для назначения клиенту одного или нескольких фиксированных IP-адресов. Он указывается только в объявлении хоста. Если при загрузке клиента предлагается более одного адреса, то клиенту назначается адрес, соответствующий той сети, в которой выполняется загрузка. Если ни один из адресов в операторе "fixed-address" не относится к сети, в которой загружается клиент, то такой клиент не будет соответствовать объявлению хоста, содержащему этот оператор "fixed-address". Каждый адрес должен представлять собой IP-адрес или доменное имя, которое разрешается в один или несколько IP-адресов.
get-lease-hostnames флаг;
В зависимости от оператора get-lease-hostnames сервис dhcpd выполняет или не выполняет просмотр доменного имени, соответствующего IP-адресу каждого адреса в пуле аренды, и использует этот адрес для указания параметра DHCP "hostname". Если флаг флаг имеет значение "истинно", то просмотр выполняется для всех адресов в текущей области действия. По умолчанию (или при значениии "ложно" флага флаг) просмотр не выполняется.
hardware тип_оборудования адрес_оборудования;
Для обеспечения распознавания клиента BOOTP необходимо объявить в операторе хоста его сетевой аппаратный адрес (параметр hardware). В переменную тип_оборудования следует подставить имя типа физического интерфейса аппаратных средств. В настоящее время распознается только тип Ethernet. В переменную адрес_оборудования следует подставить набор шестнадцатеричных октетов (числа от 0 до ff) с разделением двоеточиями. Оператор hardware также может использоваться для клиентов DHCP.
max-lease-time время;
Переменная время соответствует максимальной продолжительности предоставляемой аренды в секундах. Единственное исключение – продолжительность аренды Dynamic BOOTP, которая не указывается клиентом.
next-server имя_сервера;
В этом операторе определяется адрес хоста сервера, с которого должен загружаться файл начальной загрузки (указанный в операторе filename). Переменная имя_сервера представляет собой числовой IP-адрес или доменное имя. Если к клиенту не применяется параметр next-server, для такого клиента используется IP-адрес сервера DHCP.
one-lease-per-client флаг;
Если флаг флаг имеет значение "включено", то при посылке клиентом запроса DHCPREQUEST на конкретную аренду сервер автоматически освобождает любую аренду, имеющуюся у этого клиента. Предполагается, что если клиент посылает запрос DHCPREQUEST, то это означает, что у него нет информации о любой аренде, не указанной в запросе DHCPREQUEST, т.е., например, у клиента имеется только один сетевой интерфейс и у него нет информации об аренде в сетях, к которым он не подключен в настоящее время. Точность этих предположений не гарантируется и не проверяется, поэтому данный оператор следует применять с осторожностью.
ping флаг;
В процессе динамического предоставления IP-адреса клиенту сервер DHCP вначале посылает на этот адрес запрос ICMP Echo (ping-запрос). Если на этот запрос в течение одной секунды не поступит ответ ICMP Echo, этот IP-адрес предоставляется в аренду клиенту. Если на этот запрос поступил ответ, аренда отменяется и сервер не отвечает клиенту.

Флаг флаг всегда имеет значение "истинно", изменить его невозможно.
server-identifier имя_хоста;
В этом операторе указывается посылаемое значение параметра DHCP Server Identifier для данного контекста. Значение имя_хоста должно представлять собой IP-адрес для сервера DHCP и должно быть доступно для всех клиентов, обслуживаемых в данном контексте.

Использовать оператор server-identifier не рекомендуется: единственный значимый повод для его использования – принудительное указание отправляемого значения, отличного от значения по умолчанию, в тех случаях, когда значение по умолчанию было бы неправильным. Значение по умолчанию представляет собой первый IP-адрес, связанный с тем физическим сетевым интерфейсом, на который поступил запрос.

Типичный случай, в котором необходима посылка оператора "server-identifier" – наличие у физического интерфейса нескольких IP- адресов, причем адрес, отправляемый по умолчанию, не соответствует некоторым или всем клиентам, использующим этот интерфейс. Другой общий случай – для сервера DHCP определен псевдоним (с целью указания непротиворечивого IP-адреса), и клиенты при соединении с этим сервером должны использовать именно этот IP-адрес.

Ввод значения параметра "dhcp-server-identifier" аналогичен использованию оператора "server- identifier".
server-name имя ;
Этот оператор может использоваться для передачи клиенту имени сервера, с которого он загружается. Переменная имя должна иметь значение имени, передаваемого клиенту.
use-host-decl-names флаг;
Если в данной области действия флаг флаг имеет значение "истинно", то имя, указанное в каждом объявлении хоста в данном контексте, передается соответствующему клиенту в качестве его имени хоста. Например, запись:
group{ use-host-decl-names on; host joe { hardware ethernet 08:00:2b:4c:29:32; fixed-address joe.fugue.com; } }
эквивалентна следующей записи:
host joe { hardware ethernet 08:00:2b:4c:29:32; fixed-address joe.fugue.com; option host-name "joe"; }
Оператор "option host-name" в объявлении хоста переопределяет имя, использованное в объявлении хоста.

Note: Большинство клиентов DHCP полностью игнорируют параметр "host-name", посылаемый сервером DHCP; возможности конфигурирования другого поведения клиента не существует.

use-lease-addr-for-default-route флаг;
Если в данной области действия флаг флаг имеет значение "истинно", то вместо посылки значения, указанного в параметре "routers" (или отказа от посылки значения), клиенту передается IP-адрес, предоставляемый ему в аренду. При этом клиенты DHCP ЗОСРВ «Нейтрино» производят обработку ARP для всех IP-адресов, что может быть применимо в случае, если на маршрутизаторе сконфигурирован ARP прокси.

Операторы опций DHCP

Опции DHCP содержат информацию о сети и различных предоставляемых ею службах. На сервере DHCP конфигурируется сообщение определенным клиентам частичной или полной информации об этом путем указания соответствующих опций DHCP в файле dhcpd.conf. Операторы опций DHCP начинаются с ключевого слова "option", за которым следует имя опции и ее данные, например:

option имя_опции данные_опции

Правила синтаксиса:


Note: Список допустимых имен опций и соответствующих типов данных см. в разделе Стандартные опции DHCP.

Типы данных в опциях DHCP

Переменные в операторах опций DHCP соответствуют типам данных, перечисленным в таблице далее:

Тип данных: Указываемая кодировка
ip-address Числовой IP-адрес или доменное имя, которое разрешается в один IP-адрес
int32 32-битовое целое число со знаком
uint32 32-битовое целое число без знака
int16 16-битовое целое число со знаком
uint16 16-битовое целое число без знака
int8 8-битовое целое число со знаком
uint8 или octet 8-битовое целое число без знака
string Строка символов из набора NVT ASCII в двойных кавычках
flag Логическое значение (true/false или on/off)
data-string Строка символов из набора NVT ASCII в двойных кавычках или последовательность шестнадцатеричных октетов с разделением двоеточиями

Стандартные операторы опций DHCP

Далее приведено описание стандартных опций операторов DHCP (список опций DHCP, применяемых клиентом DHCP ЗОСРВ «Нейтрино», см. в разделе dhcp.client):

option subnet-mask IP-адрес
Маска подсети клиента согласно RFC 950. По умолчанию соответствует объявлению подсети в той сети, в которой назначен данный адрес.
option time-offset int32
Смещение времени в подсети клиента относительно универсального глобального времени (UTC).
option routers IP-адрес[, IP-адрес... ]
IP-адреса для маршрутизаторов в подсети клиента в порядке предпочтения.
option time-servers IP-адрес[, IP-адрес... ]
Список серверов времени, доступных для клиента, в порядке предпочтения в формате RFC 868.
option ien116-name-servers IP-адрес[, IP-адрес... ]
Список серверов имен, доступных для клиента, в порядке предпочтения в формате IEN 116.
option domain-name-servers IP-адрес[, IP-адрес... ]
Список серверов имен системы доменных имен, доступных для клиента, в порядке предпочтения (STD 13, RFC 1035).
option log-servers IP-адрес[, IP-адрес... ]
Список журнальных серверов UDP MIT-LCS, доступных для клиента, в порядке предпочтения.
option cookie-servers IP-адрес[, IP-адрес... ]
Список серверов cookie-жетонов, доступных для клиента, в порядке предпочтения в формате RFC 865.
option lpr-servers IP-адрес[, IP-адрес... ]
В опции сервера LPR задается список серверов построчной печати, доступных для клиента, в порядке предпочтения в формате RFC 1179.
option impress-servers IP-адрес[, IP-адрес... ]
Список серверов Imagen Impress, доступных для клиента, в порядке предпочтения.
option resource-location-servers IP-адрес[, IP-адрес... ]
Список серверов протокола расположения ресурсов, доступных для клиента, в порядке предпочтения в формате RFC 887.
option host-name строка
Имя клиента. Рекомендуется не включать в эту переменную имя локального домена; для указания доменного имени следует использовать опцию "domain-name". Ограничения по набору символов приведены в стандарте RFC 1035.
option boot-size uint16
Длина (в блоках по 512 октетов) загрузочного образа клиента по умолчанию.
option merit-dump строка
Место сохранения дампа образа оперативной памяти при сбое в работе клиента. Переменной строка определяется путевое имя файла дампа (символами NVT ASCII).
option domain-name строка
Доменное имя, которое должен использовать клиент при разрешении имен хостов DNS.
option swap-server IP-адрес
Сервер подкачки клиента.
option root-path строка
Путевое имя корневого диска клиента (указывается символами NVT ASCII).
option ip-forwarding флаг
Должен ли клиент разрешать перенаправление IP-пакетов (1 = разрешено, 0 = запрещено).
option non-local-source-routing флаг
Должен ли клиент конфигурировать для собственного уровня IP разрешение на перенаправление дейтаграмм с нелокальными маршрутами от источника (1 – разрешить этот вид перенаправления, 0 – запретить).
option policy-filter IP-адрес IP-адрес[, IP-адрес IP-адрес... ]
Описание фильтров политик для нелокальных исходных маршрутов. Каждый такой фильтр состоит из списка IP-адресов и масок, т.е. пар "адресат/маска", по которым выполняется фильтрация входящих маршрутов от источника. Клиент должен отклонять любую дейтаграмму с маршрутом от источника, если она содержит адрес следующего транзитного узла, не соответствующий одному из фильтров. Для получения дополнительной информации см. стандарт STD 3 (RFC1122).
option max-dgram-reassembly uint16
Максимальный размер дейтаграммы для повторной сборки клиентом (минимальное допустимое значение равно 576).
option default-ip-ttl uint8
Предельное время существования по умолчанию, используемое клиентом для исходящих дейтаграмм.
option path-mtu-aging-timeout uint32
Тайм-аут (в секундах), используемый при анализе срока действия значений максимальной длины передаваемых пакетов (MTU), определяемых посредством механизма, описанного в RFC 1191.
option path-mtu-plateau-table uint16[, uint16... ]
Список значений максимальной длины передаваемых пакетов (MTU) для использования при определении Path MTU согласно RFC 1191, в порядке от наименьшего к наибольшему (минимальное значение равно 68).
option interface-mtu uint16
Значение MTU, используемое для данного интерфейса (минимальное допустимое значение равно 68).
option all-subnets-local флаг
Если значение флаг = 1, то во всех подсетях той IP-сети, к которой подключен клиент, будет использоваться одинаковый MTU. Если значение флаг = 0, то в этих сетях могут использоваться MTU меньшего размера.
option broadcast-address IP-адрес
Широковещательный адрес, используемый в подсети клиента (допустимые значения см. в разделе 3.2.1.3 в стандарте STD 3 (RFC1122)).
option perform-mask-discovery флаг
Если значение флаг = 1, то клиенту необходимо выполнять определение маски подсети посредством ICMP (Internet Control Message Protocol); если значение флаг = 0, он не должен выполнять это действие.
option mask-supplier флаг
Если значение флаг = 1, то клиент должен отвечать на запросы маски подсети посредством ICMP; если значение флаг = 0, он не должен выполнять это действие.
option router-discovery флаг
Если значение флаг = 1, клиент должен опрашивать маршрутизаторы с использованием механизма поиска маршрутизаторов, описанного в RFC 1256; если значение флаг = 0, он не должен выполнять это действие.
option router-solicitation-address IP-адрес
IP-адрес, на который клиенту следует посылать запросы опроса маршрутизаторов.
option static-routes IP-адрес IP-адрес[, IP-адрес IP-адрес... ]
Список статических маршрутов, которые должны быть установлены в кеше маршрутизации клиента. Если для одного места назначения указывается несколько маршрутов, то они перечисляются в порядке убывания приоритета. Список состоит из пар IP-адресов: первый адрес в паре – адрес места назначения; второй адрес – маршрутизатор для этого места назначения. Маршрут по умолчанию (0.0.0.0) содержит место назначения, недопустимое для статического маршрута. Для выбора маршрута по умолчанию используется опция "routers".
option trailer-encapsulation флаг
Если значение флаг = 1, то при использовании протокола ARP клиент должен согласовывать использование концевых элементов (RFC 893 [14]); если значение флаг = 0, клиент не должен пытаться использовать концевые элементы.
option arp-cache-timeout uint32
Тайм-аут (в секундах) для записей кеша ARP.
option ieee802-3-encapsulation флаг
Если значение флаг = 1, клиент должен использовать на интерфейсе Ethernet инкапсуляцию IEEE 802.3 (RFC 1042); если значение флаг = 0, он должен использовать Ethernet версии 2 (RFC 894).
option default-tcp-ttl uint8
Предельное время существования по умолчанию, используемое клиентом при посылке сегментов TCP. Минимальное значение равно 1.
option tcp-keepalive-interval uint32
Интервал (в секундах), который клиент TCP выдерживает перед отправкой сообщения "keepalive" по TCP-соединению. Нулевое значение означает, что клиент не должен создавать сообщения "keepalive" по соединениям, если это действие не запрашивается приложением.
option tcp-keepalive-garbage флаг
Если значение флаг = 1, клиент должен посылать TCP-сообщения "keepalive" с произвольным октетом для совместимости с предыдущими реализациями; если значение флаг = 0, клиент не должен посылать эти сообщения.
option nis-domainстрока
Имя домена NIS (Sun Network Information Services) клиента (в символах NVT ASCII).
option nis-servers IP-адрес[, IP-адрес... ]
Список IP-адресов серверов NIS, доступных клиенту, в порядке предпочтения.
option ntp-servers IP-адрес[, IP-адрес... ]
Список IP-адресов серверов NTP (RFC 1035), доступных клиенту, в порядке предпочтения.
option netbios-name-servers IP-адрес[, IP-адрес... ]
Список имен серверов RFC 1001/1002 NBNS в порядке предпочтения. Служба имен NetBIOS в настоящее время обычно называется WINS. С помощью этой опции можно указать серверы WINS.
option netbios-dd-server IP-адрес[, IP-адрес... ]
Список серверов RFC 1001/1002 NBDD в порядке предпочтения.
option netbios-node-type uint8
Разрешение конфигурирования клиентов NetBIOS по TCP/IP согласно RFC 1001/1002. Значение uint8 представляет собой один октет, обозначающий тип клиента следующим образом:
Значение uint8: Указываемая кодировка
1 B-узел: широковещательная передача – без WINS
2 P-узел: удаленная сторона – только WINS
4 M-узел: смешанный режим – широковещательная передача, затем WINS
8 H-узел: гибридный режим – WINS, затем широковещательная передача
option netbios-scope строка
Параметр области действия NetBIOS по TCP/IP для клиента согласно RFC 1001/1002. Ограничения по набору символов см. в стандартах RFC1001, RFC1002 и RFC1035.
option font-servers IP-адрес[, IP-адрес... ]
Список серверов X Window System Font, доступных клиенту, в порядке предпочтения.
option x-display-manager IP-адрес[, IP-адрес... ]
Список систем, на которых выполняется X Window System Display Manager и которые доступны клиенту, в порядке предпочтения.
option dhcp-client-identifier строка_данных
Указание идентификатора клиента DHCP в объявлении хоста для поиска соответствующей записи хоста утилитой dhcpd.
option nisplus-domain строка
Имя (в символах NVT ASCII) домена NIS+ клиента.
option nisplus-servers IP-адрес[, IP-адрес... ]
Список IP-адресов серверов NIS+, доступных клиенту, в порядке предпочтения.
option tftp-server-name строка
Определение сервера TFTP; если соответствующая служба поддерживается клиентом, действие этой опции аналогично объявлению имени сервера. Клиенты BOOTP обычно не поддерживают эту опцию. Некоторыми клиентами DHCP она поддерживается, для остальных она является обязательной.
option bootfile-name строка
Определение файла начальной настройки. Если соответствующая служба поддерживается клиентом, эта опция должна быть аналогичной объявлению имени файла. Клиенты BOOTP обычно не поддерживают эту опцию. Ее поддерживают некоторые клиенты DHCP, для остальных она необходима.
option mobile-ip-home-agent IP-адрес[, IP-адрес... ]
Список IP-адресов собственных мобильных агентов IP, доступных клиенту. Агенты перечисляются в порядке предпочтения, но, как правило, используется только один такой агент.
option smtp-server IP-адрес[, IP-адрес... ]
Список серверов SMTP, доступных клиенту, в порядке предпочтения.
option pop-server IP-адрес[, IP-адрес... ]
Список серверов POP3, доступных клиенту, в порядке предпочтения.
option nntp-server IP-адрес[, IP-адрес... ]
Список серверов NNTP, доступных клиенту, в порядке предпочтения.
option www-server IP-адрес[, IP-адрес... ]
Список серверов WWW, доступных клиенту, в порядке предпочтения.
option finger-server IP-адрес[, IP-адрес... ]
Список серверов Finger, доступных клиенту, в порядке предпочтения.
option irc-server IP-адрес[, IP-адрес... ]
Список серверов IRC, доступных клиенту, в порядке предпочтения.
option streettalk-server IP-адрес[, IP-адрес... ]
Список серверов StreetTalk, доступных клиенту, в порядке предпочтения.
option streetalk-directory-assistance-server IP-адрес[, IP-адрес... ]
Список серверов STDA (StreetTalk Directory Assistance), доступных клиенту, в порядке предпочтения.

Устранение отказов

Поиск параметров хоста
В сложной конфигурации выяснение того, какой параметр относится к конкретному хосту, может быть затруднительным. Следует учитывать два аспекта: При устранении неполадок с DHCP всегда следует начинать с нижнего уровня и двигаться вверх.
Поиск предоставленной аренды
Сервис dhcpd записывает информацию о текущем состоянии всей активной аренды в текстовый файл (/var/state/dhcp/dhcp.leases). Время от времени сервис перезаписывает этот файл для поддержания его разумного размера. Если в процессе записи этого файла сервисом dhcpd на сервере произойдет сбой, файл может исчезнуть. В этом случае перезапуск сервера DHCP будет невозможен, поскольку при отсутствии файла аренды сервис dhcpd не запустится. Ввиду возможности таких ситуаций, перед внесением любых изменений в файл аренды сервис dhcpd создает его резервную копию (dhcpd.leases~) в том же каталоге: для возобновления работы следует просто переименовать файл dhcpd.leases.
Содержание файла dhcpd.leases имеет простую структуру. Каждое объявление аренды обозначается ключевым словом lease, за которым следует IP-адрес и набор конфигурационной информации в фигурных скобках. Файл имеет следующий вид:
lease 192.168.42.1 { starts 0 2000/01/30 08:02:54; ends 5 2000/02/04 08:02:54; hardware ethernet 00:50:04:53:D5:57; uid 01:00:50:04:53:D5:57; client-hostname "PC0097"; }
Операторы starts и ends определяют период действия аренды. Каждая запись имеет следующую форму:
день_недели ГГГГ/ММ/ДД ЧЧ:ММ:СС;
День недели – численное значение дня недели, начиная с 0 (воскресенье), как в данном случае. Дата и время указываются как универсальное глобальное время, местное время не используется. Запись hardware имеет тот же формат, что и в файле dhcpd.conf, и содержит аппаратный адрес карты. Запись uid представляет собой уникальный идентификатор клиента и содержит идентификатор клиента в виде строки ASCII-символов, сообщенной клиентом, или аппаратный адрес с указанием типа оборудования перед ним (в данном случае 01).

Связанные проблемы

В этом разделе приводится вводная информация для анализа некоторых связанных проблем при создании файла dhcpd.conf.

Динамическое распределение памяти

Назначение адресов фактически выполняется только тогда, когда клиент находится в состоянии INIT и после посылки клиентом сообщения DHCPDISCOVER. Если клиент предполагает наличие действительной аренды и посылает сообщение DHCPREQUEST для инициирования или обновления этой аренды, то у сервера имеется три варианта действий: игнорировать сообщение DHCPREQUEST, послать сообщение DHCPNAK, т.е. сообщить клиенту о том, что ему следует прекратить использование данного адреса, или послать сообщение DHCPACK, т.е. сообщить клиенту о том, что он может продолжать использовать этот адрес в течение некоторого времени.

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

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

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

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

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

Предотвращение конфликтов IP-адресов

Если в операторе диапазона задан адрес для аренды, не отмеченный сервером или соответствующим резервным сервером как используемый, то перед назначением IP-адресов сервис dhcpd проверяет, имеет ли место их использование. Эта операция выполняется путем посылки сообщения запроса ICMP Echo по назначаемому IP-адресу.

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

Если по запросу клиента DHCP обнаруживаются только брошенные IP-адреса, сервис dhcpd пытается восстановить один из брошенных IP-адресов путем выполнения новой проверки с посылкой запроса ICMP Echo. Если ответ на запрос ICMP Echo не поступит, адрес назначается клиенту и поиск завершается; в противном случае сервис dhcpd проверяет следующий брошенный адрес и т.д. до обнаружения свободного адреса.

Если при поступлении нового запроса ситуация остается прежней, сервис dhcpd начинает аналогичный процесс поиска по другому IP-адресу во избежание повторения вышеописанной последовательности.

Безопасность

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

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

Еще одной проблемой является возможная атака типа "отказ в обслуживании". Если к серверу DHCP имеется доступ из Интернета, злоумышленник может занять все IP-адреса, и свободных адресов для компьютеров предприятия не останется. Поэтому на том компьютере, на котором функционирует межсетевой экран, следует блокировать прохождение трафика DHCP через межсетевой экран путем блокирования порта 67 (порт прослушивания DHCP) и порт 68 (порт передачи DHCP).

Примеры:

Простой способ создания файла dhcpd.conf состоит в следующем: создайте резервную копию файла /etc/dhcpd.conf и внесите в него требуемые изменения. Ниже приведен примерный файл /etc/dhcpd.conf:

# dhcpd.conf # # Sample configuration file for ISC dhcpd # # option definitions common to all supported networks... option domain-name "fugue.com"; option domain-name-servers toccata.fugue.com; option subnet-mask 255.255.255.224; default-lease-time 600; max-lease-time 7200; subnet 204.254.239.0 netmask 255.255.255.224 { range 204.254.239.10 204.254.239.20; option broadcast-address 204.254.239.31; option routers prelude.fugue.com; } # The other subnet that shares this physical network subnet 204.254.239.32 netmask 255.255.255.224 { range dynamic-bootp 204.254.239.10 204.254.239.20; option broadcast-address 204.254.239.31; option routers snarg.fugue.com; } subnet 192.5.5.0 netmask 255.255.255.224 { range 192.5.5.26 192.5.5.30; option name-servers bb.home.vix.com, gw.home.vix.com; option domain-name "vix.com"; option routers 192.5.5.1; option subnet-mask 255.255.255.224; option broadcast-address 192.5.5.31; default-lease-time 600; max-lease-time 7200; } # Hosts which require special configuration options can be listed in # host statements. If no address is specified, the address will be # allocated dynamically (if possible), but the host-specific information # will still come from the host declaration. host passacaglia { hardware ethernet 0:0:c0:5d:bd:95; filename "vmunix.passacaglia"; server-name "toccata.fugue.com"; } # Fixed IP addresses can also be specified for hosts. These addresses # should not also be listed as being available for dynamic assignment. # Hosts for which fixed IP addresses have been specified can boot using # BOOTP or DHCP. Hosts for which no fixed address is specified can only # be booted with DHCP, unless there is an address range on the subnet # to which a BOOTP client is connected which has the dynamic-bootp flag # set. host fantasia { hardware ethernet 08:00:07:26:c0:a5; fixed-address fantasia.fugue.com; } # If a DHCP or BOOTP client is mobile and might be connected to a variety # of networks, more than one fixed address for that host can be specified. # Hosts can have fixed addresses on some networks, but receive dynamically # allocated address on other subnets; in order to support this, a host # declaration for that client must be given which does not have a fixed # address. If a client should get different parameters depending on # what subnet it boots on, host declarations for each such network should # be given. Finally, if a domain name is given for a host's fixed address # and that domain name evaluates to more than one address, the address # corresponding to the network to which the client is attached, if any, # will be assigned. host confusia { hardware ethernet 02:03:04:05:06:07; fixed-address confusia-1.fugue.com, confusia-2.fugue.com; filename "vmunix.confusia"; server-name "toccata.fugue.com"; } host confusia { hardware ethernet 02:03:04:05:06:07; fixed-address confusia-3.fugue.com; filename "vmunix.confusia"; server-name "snarg.fugue.com"; } host confusia { hardware ethernet 02:03:04:05:06:07; filename "vmunix.confusia"; server-name "bb.home.vix.com"; }

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

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

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

dhcp.client, dhcpd, /var/state/dhcp/dhcpd.leases, dhcprelay, syslogd

Основано на: RFC 2131, RFC 2132




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