DHCP: протокол динамического конфигурирования узлов
Категория: Сети TCP/IP | Автор: admin | 17-02-2010, 07:08 | Просмотров: 4970

Для добавления UNIX-узлов в сеть всегда требовалась ручная настройка. Но если компьютеры Маc или Intel без проблем подключаются к сети, то почему нельзя делать то же самое в UNIX? Протокол DHCP (Dynamic Host Configuration Protocol — протокол динамического конфигурирования узлов) позволяет удовлетворить столь естественную потребность пользователей.

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

К "арендуемым" параметрам относятся:

  • IP-адреса и сетевые маски;
  • шлюзы (стандартные маршруты);
  • адреса DNS-серверов;
  • имена машин, на которых выполняется система Syslog;
  • адреса серверов WINS, NTP и прокси-серверов;
  • адреса серверов TFTP (для загрузки начального образа)

и десятки других (см. документ RFC2132). Экзотические параметры редко используются на практике. В большинстве случаев DHCP-сервер предоставляет лишь базовые сетевые параметры, такие как IP-адреса, сетевые маски, стандартные шлюзы и имена серверов DNS.

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

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

 

Программное обеспечение DHCP

 

В табл. 13.10 перечислены программные компоненты DHCP, входящие в состав четырех наших тестовых систем.

Таблица 13.10. Программные компоненты DHCP в тестовых системах

Система

DHCP-клиент

DHCP-сервер

Solaris

/sbin/dhcpagent

/usr/lib/inet/in.dhcpd1

HP-UX

встроенный, также auto_params

bootpd

Red Hat

/usr/sbin/dhcpcd и /sbin/pump

/usr/sbin/dhcpd от ISC

FreeBSD

/sbin/dhclient

/usr/ports/net/isc-dhcp2

1 Имеется shell-сценарий dhcpconfig, который позволяет конфигурировать DHCP-сервер Solaris

 

Консорциум разработчиков программного обеспечения Internet (Internet Software Consortium, ISC) создал эталонную реализацию протокола DHCP. Клиент, сервер и агент ретрансляции доступны по адресу ftp.isc.org. Сервер ISC также поддерживает протокол ВООТР (он напоминает DHCP, но не так сложен).

Мы рекомендуем пакет ISC, а не пакеты конкретных поставщиков. В типичной гетерогенной среде процедура администрации сильно упростится, если будет применяться стандартная единая реализация протокола DHCP. Программное обеспечение ISC — это надежное решение, распространяемое на условиях открытой лицензии и без проблем инсталлируемое в большинстве версий UNIX. На момент написания данной книги готовился выпуск 3.0, в котором были обещаны новые полезные параметры конфигурации, включая раздельные пулы адресов, условное поведение и многое другое.

DHCP-клиенты должны инициировать диалог с DHCP-сервером при помощи пакета с общим широковещательным адресом (все единицы), так как они еще не знают свои сетевые маски. К сожалению, некоторые ядра (HP-UX и Linux) могут работать только с локальными широковещательными адресами. Это не позволяет клиентам и серверам соединяться друг с другом и обмениваться информацией. В документации по ISC указываются пути решения данной проблемы. Тем не менее, гетерогенные среды все еще представляют определенные трудности для протокола DHCP. Каждый раз при установке нового сервера или клиента нового типа приходится тщательно все проверять.

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

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

 

Схема работы DHCP

 

DHCP — это расширение протокола ВООТР, который был придуман для того, чтобы бездисковые станции UNIX могли загружаться по сети. Подсистема ВООТР предоставляет клиентам IP-адреса, сетевые маски, стандартные шлюзы, а также информацию, касающуюся начальной загрузки через TFTP (Trivial File Transfer Protocol — простейший протокол передачи файлов).

Протокол DHCP не ограничивается этими параметрами, вводя понятие "аренды".

DHCP-клиент начинает диалог с DHCP-сервером, посылая сообщение DHCPDISCOVER, которое можно перевести так: "Помогите мне узнать, кто я". Так как клиент не знает ни свой собственный, ни серверный IP-адрес, он посылает сообщение по широковещательному адресу 255.255.255.255, указывая адрес отправителя 0.0.0.0. Сообщение DISCOVER может содержать подсказки от клиента, например информацию о том, какова аппаратная архитектура клиента или какой конкретный адрес ему требуется.

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

В ответ серверы выдают сообщение OFFER, содержащее предлагаемый адрес и другие базовые параметры. Клиент получает это сообщение (возможно, от нескольких серверов одновременно) и принимает одно из предложений, посылая выбранному серверу сообщение REQUEST. Обычно сервер возвращает в ответ подтверждающее сообщение АСК и назначает клиенту адрес.

В сообщение АСК может включаться произвольное число конфигурируемых параметров; оно также задает срок аренды. В ответ на неправильное сообщение REQUEST сервер может выдать сообщение NAK, указывающее на то, что клиенту необходимо начать процесс сначала.

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

Когда срок аренды приближается к концу, клиент должен обновить арендованные параметры, послав новое сообщение REQUEST. Если клиент решает прекратить аренду, он посылает сообщение RELEASE.

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

Протокол DHCP обычно не используется для конфигурирования коммутируемых РРР-интерфейсов. Этой цели служит специальный протокол РРРСР (РРР Control Protocol — протокол управления РРР-соединениями).

 

DHCP-сервер ISC

 

DHCP-сервер ISC доступен по адресу ftp.isc.org или www.isc.org. Ниже рассмотрена версия 2.0. Близка к завершению версия 3.0, поэтому не забудьте проверить, актуален ли приведенный ниже материал в той версии, которую вы загрузите.

Распакуйте файл tar.gz и перейдите в дистрибуционный каталог. Там должны быть подкаталоги для сервера, клиента и агента ретрансляции, а также каталог для совместно используемого кода. Запустите команду ./configure, а за ней — make и make install, чтобы скомпилировать и установить каждый компонент.

Для конфигурации DHCP-сервера, dhcpd, нужно отредактировать файл dhcpd.conf в каталоге server и записать его под именем /etc/dhcpd.conf. Необходимо также создать пустой файл базы данных по арендуемым параметрам, назвав его /var/db/dhcp.leases. Убедитесь, что демон dhcpd имеет право записи в этот файл. Для настройки файла dhcpd.conf потребуется следующая информация:

  • подсети, для которых демон dhcpd должен управлять IP-адресами, и диапазоны выделяемых адресов;
  • начальный и максимальный срок аренды в секундах;
  • конфигурационные параметры клиентов ВООТР, если таковые имеются (им назначаются статические IP-адреса, также должны быть указаны их аппаратные МАС-адреса);
  • все остальные параметры, которые сервер должен передавать DHCP-клиентам: сетевая маска, стандартный маршрут, домен DNS, серверы имен и т.д.

На man-странице, посвященной демону dhcpd, рассмотрен процесс конфигурации. Точный синтаксис конфигурационного файла описан на man-странице, которая посвящена файлу dhcpd.conf. Обе эти страницы расположены в подкаталоге server дистрибуционного каталога.

Демон dhcpd должен запускаться автоматически на этапе начальной загрузки системы. Удобно сделать запуск демона условным, осуществляемым при наличии файла /etc/dhcpd.conf.

Ниже показан пример конфигурационного файла dhcpd.conf, взятого из Linux-системы с двумя интерфейсными устройствами: одним внутренним и одним внешним, подключенным к Internet. На компьютере выполняется система NAT для трансляции адресов внутренней сети, которой выделяется 10 IP-адресов. Файл содержит пустую запись для внешнего интерфейса (обязательна) и запись host для одной конкретной машины, которой нужен фиксированный адрес.

# dhcpd.conf

#

# глобальные параметры

option domain-name "synack.net";

option domain-name-servers gw.synack.net;

option subnet-mask 255.255.255.0;

default-lease-time 600;

max-lease-time 7200;

 

subnet 192.168.1.0 netmask 255.255.255.0 {

range 192.168.1.51 192.168.1.60;

option broadcast-address 192.168.1.255;

option routers gw.synack.net;

}

subnet 209.180.251.0 netmask 255.255.255.0 {

}

 

host gandalf {

hardware ethernet 08:00:07:12:34:56;

fixed-address gandalf.synack.net;

}

Адреса, назначаемые DHCP-сервером, потенциально могут конфликтовать с содержимым базы данных DNS. Очень часто каждому динамически выделяемому адресу присваивается общее имя (например, dhcpl.synack.net) и разрешается, чтобы имена отдельных машин "сосуществовали" с IP-адресами. Если имеется одна из последних версий системы BIND, которая поддерживает динамические обновления, можно сконфигурировать демон dhcpd, чтобы он обновлял базу данных DNS при выделении очередного адреса. Динамическое обновление — сложная процедура, но она позволяет устранить конфликты имен узлов.

 

Демон dhcpd добавляет запись о каждом акте аренды в файл dhcp.leases. Он также периодически создает резервную копию этого файла, переименовывая его в dhcpd.leases~ и воссоздавая исходный файл dhcp.leases на основании информации из базы данных, находящейся в памяти. Если в процессе этой операции произойдет сбой, останется только файл dhcpd.leases~. В таком случае демон dhcpd откажется запускаться, и придется переименовывать файл вручную. Нельзя просто создать пустой файл dhcp.leases, иначе возникнет хаос, так как у клиентов окажутся дублирующиеся адреса.



 (голосов: 0)
Версия для печати | Комментариев: 0
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии в данной новости.


 
Логин
Пароль
 

 
Locations of visitors to this page