Большинство дистрибутивных пакетов Linux содержит сервер DHCP, разработанный Internet Software Consortium (
http://www.isc.org/products/DHCP/
). Internet Software Consortium (ISC) в конце 2000 г. выпустил версию 3.0 DHCP, но в начале 2002 г. многие версии Linux все еще поставлялись со старой версией 2.0 сервера DHCP. Большинство параметров настройки, рассматриваемых в данном разделе, применимо к версиям 2.0 и 3.0, но версия 3.0 поддерживает некоторые новые возможности, например, средства интеграции с DNS-сервером, которые будут обсуждаться далее в этой главе.
Для настройки сервера DHCP используется конфигурационный файл
dhcpd.conf
, который обычно располагается в каталоге
/etc
или
/etc/dhdcp
. Подобно остальным конфигурационным файлам Linux,
dhcpd.conf
— это текстовый
файл, для редактирования которого можно использовать обычный текстовый редактор. Кроме того, во время работы программа
dhcpd
создает собственный файл состояния
dhcp.leases
, который обычно помещается в каталог
/var/lib/dhcp
. В файле
dhcp.leases
содержится информация об аренде адресов. В системе DHCP распределением IP-адресов занимается сервер DHCP. Он сообщает клиенту DHCP, что тому на определенный период времени выделяется некоторый IP-адрес. Другими словами, адрес дается клиенту в аренду, а клиент должен вовремя продлевать ее. В файле
dhcp.leases
также содержатся сведения об Ethernet-адресах клиентов. Файл
dhcp.leases
не является конфигурационным файлом в полном смысле слова; его нельзя редактировать, но при возникновении проблем или в случае, если вам потребуется выяснить аппаратный адрес, или MAC-адрес, клиента, вы можете просмотреть содержимое
dhcp.leases
.
Строки файла
dhcpd.conf
, начинающиеся с символа
#
, содержат комментарии. Помимо комментариев, в этом файле находятся выражения, которые делятся на две категории.
• Параметры. Параметры сообщают серверу DHCP о том, надо ли выполнять некоторые действия (например, предоставлять адреса неизвестным клиентам), как их выполнять (например, как долго может длиться аренда адреса), и о том, какая информация должна предоставляться клиентам (например, адрес шлюза).
• Декларации. Декларации описывают топологию сети (адреса, связанные с конкретными сетевыми интерфейсами), определяют IP-адреса, которые должны выделяться клиентам, а также связывают набор параметров с набором деклараций.
В некоторых декларациях используется информация, заданная посредством параметров. В этом случае параметры должны предшествовать декларациям. Реальные конфигурационные файлы сервера DHCP обычно начинаются с определения параметров, а за параметрами следуют декларации.
Некоторые декларации могут занимать несколько строк. В них используется группа параметров. Данные, определяемые такими декларациями, помещаются в фигурные скобки. Например, приведенный ниже фрагмент файла
dhcpd.conf
представляет собой декларацию, которая определяет конкретный компьютер и указывает, какой адрес должен выделяться ему.
host teela {
hardware Ethernet 00:05:02:a7:76:da;
fixed-address 192.168.1.2;
}
Конкретный смысл подобных деклараций будет рассматриваться позже. Сейчас достаточно заметить, что декларация начинается с ключевого слова
host
, за которым следует дополнительная опция (имя компьютера
teela
), а строки, содержащиеся в фигурных скобках, определяют характеристики данной декларации. Декларации, состоящие из нескольких строк, могут содержать вложенные декларации. Рекомендуется располагать вложенные декларации с отступом так, чтобы их можно было заметить с первого взгляда. Такой отступ не обязателен; программа
dhcpd
игнорирует лишние пробелы за исключением тех случаев, когда они указаны в кавычках.
Динамическое распределение IP-адресов
Наиболее просто устанавливается конфигурация сервера DHCP, предполагающая динамическое распределение IP-адресов. В этом случае сервер сам решает, какой адрес следует выделить компьютеру, который обратился к нему. IP-адреса для конкретных машин не резервируются, поэтому IP-адрес, который клиент получил в данный момент, в общем случае может отличаться от IP-адреса, выделенного ему при прошлом обращении к серверу. Клиент может запросить конкретный адрес; более того, большинство клиентов запрашивают именно тот адрес, который они использовали ранее, но сервер игнорирует подобную информацию в составе запроса. На практике компьютеры могут достаточно долгое время работать с одним и тем же IP-адресом. Это происходит, если компьютер редко выключается либо если он был отключен в течение короткого промежутка времени. Тем не менее наличие постоянного IP-адреса не гарантируется. Конфигурация,
осуществляющая динамическое распределение адресов, удобна в сетях, содержащих большое число клиентов, однако она имеет существенный недостаток: при динамическом распределении IP-адресов затрудняется использование доменных имен, так как серверы DNS связывают имена со статическими IP-адресами. Существуют способы устранения этого недостатка; их мы рассмотрим ниже. Один из способов предполагает организацию совместной работы серверов DHCP и DNS, а другой способ состоит в выделении компьютерам фиксированных IP-адресов.
Установка глобальных параметров
В листинге 5.1 приведен пример содержимого файла
dhcpd.conf
, предназначенного для организации динамического распределения IP-адресов. Несмотря на то что данный конфигурационный файл очень прост, его можно использовать на практике для обеспечения работы небольших сетей.
В первых шести строках файла задаются глобальные параметры, или опции; они определяют основные характеристики сети и сервера и используются при обслуживании всех клиентов. Значения, установленные с помощью глобальных параметров, могут быть переопределены в декларациях. Первые две строки (параметры
default-lease-tim
e и
max-lease-time
) задают длительность аренды в секундах. Подобно тому, как домовладелец и наниматель договариваются о сроках аренды квартиры, клиент DHCP и сервер договариваются о времени, в течение которого клиент может пользоваться IP-адресом. Параметр
default-lease-time
определяет время аренды, наиболее приемлемое для сервера DHCP. В приведенном выше примере его значение составляет 7200 секунд, или 120 минут. Если клиент запросит более длительную аренду, сервер будет исходить из значения
max-lease-time
; в данном случае оно равно 10800 секундам, или 180 минутам. При создании реального конфигурационного файла вы можете увеличивать или уменьшать приведенные здесь значения в зависимости от собственных потребностей. Малая длительность аренды снижает работоспособность сети при выходе сервера DHCP из строя и увеличивает нагрузку на сеть. Слишком большая длительность аренды опасна тем, что имеющиеся в наличии IP-адреса будут исчерпаны. Подобная ситуация возможна, если компьютеры будут часто включаться на короткое время; при этом сервер DHCP будет хранить информацию об аренде адресов, которые на самом деле не используются. Для тестирования сервера DHCP целесообразно устанавливать малое время аренды, например 60 секунд; в этом случае вы сможете следить за результатами изменения конфигурации сервера. Если структура сети претерпевает постоянные изменения (например, портативные компьютеры часто подключаются к сети и отключаются от нее), лучше всего подходят значения, близкие к указанным в листинге 5.1. Если же основную часть сети составляют компьютеры, которые не выключаются в течение нескольких дней, то значения параметров
default-lease-tim
e и
max-lease-time
могут быть порядка сотен тысяч секунд.
Следующие четыре строки листинга задают глобальные параметры, которые передаются клиенту DHCP, а именно: маска подсети, адрес маршрутизатора (шлюза), адреса серверов DNS и доменное имя. Как вы, вероятно, помните из главы 2, те же сведения используются при установке статического IP-адреса компьютера. Несмотря на то что в листинге указаны IP-адреса, вы можете также использовать доменные имена узлов, но при этом необходимо быть уверенным, что сервер DNS работает корректно и связь с ним надежна. Если вы зададите доменные имена, то перед передачей их клиенту сервер DHCP будет преобразовывать их в IP-адреса. Для параметров, не указанных в листинге 5.1, используются значения по умолчанию. При необходимости их можно переназначить явно. Как видно на рис. 5.1, определение параметра заканчивается символом
;
. Ниже приведены некоторые параметры, которые вы, возможно, захотите включить в файл