TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security)
Шрифт:
11.10 Совместимость и различия
Для обеспечения совместимости с BOOTP формат сообщений DHCP идентичен сообщениям BOOTP. В результате:
■ Клиент BOOTP может обращаться к серверу DHCP
■ Клиент DHCP может использовать службу промежуточных агентов BOOTP
Самым заметным изменением стало переименование области для разработчика в поле Options (варианты). Добавлены и несколько дополнительных вторичных полей, включая следующие:
■ Поле для параметра DHCP Class Identifier (идентификатор класса DHCP). Этот параметр клиент отправляет серверу с целью использования в качестве ключа при поиске специфичных для клиента конфигурационных сведений.
■ Клиент идентифицируется арендой и связыванием (с набором конфигурационных параметров), а не типом оборудования и
■ Введен параметр для указания максимального размера сообщения, которое может получить клиент от сервера.
Существенным изменением в протоколе стала способность согласовывать набор конфигурационных параметров. Для этого определено несколько новых типов сообщений. Если в ответе клиент не получил всех нужных ему параметров, DHCP позволит продолжить их запрос от сервера.
11.10.1 Типы сообщений
Тип сообщения DHCP определяется полем DHCP Message Type (тип сообщения DHCP). Пользоваться этим может только клиент DHCP, но не клиент BOOTP. Имеются следующие типы сообщений:
DHCPDISCOVER | Клиент посылает сообщение для поиска серверов. |
DHCPOFFER | Сервер отвечает клиенту и предоставляет ему IP-адрес и конфигурационные параметры. |
DHCPREQUEST | Клиент выбирает один из серверов и посылает запрос. При необходимости можно запросить у сервера дополнительные параметры. |
DHCPACK | Сервер отвечает и предоставляет дополнительные параметры, если они были запрошены. |
DHCPNAK | Сервер отменяет запрос (например, клиент мог запросить уже используемый IP-адрес). Клиент должен возобновить процесс загрузки с самого начала. |
DHCPDECLINE | Клиент отменяет принятые конфигурационные параметры, поскольку один из них был некорректным. |
DHCPRELEASE | Клиенту более не нужен IP-адрес, и поэтому он освобождает его. |
11.10.2 Типичный начальный обмен сообщениями между клиентом и сервером
Пример успешного начального взаимодействия между клиентом и сервером:
1. Клиент посылает широковещательную рассылку (DHCPDISCOVER) для поиска одного или нескольких серверов.
2. Клиенту могут ответить несколько серверов. Он ждет получения одного или нескольких ответов (DHCPOFFER). Каждый ответ содержит IP-адрес, маску подсети, дату окончания аренды адреса, признак идентичности клиента серверу (в DHCP — поле идентификатора сервера DHCP) и некоторые конфигурационные параметры.
3. На основе полученных ответов клиент выбирает сервер и отравляет запрос по широковещательной рассылке (DHCPREQUEST) с указанием в поле идентификатора сервера нужной системы. Сообщение клиента может содержать список запрашиваемых параметров, который идентифицирует нужные клиенту дополнительные данные конфигурации.
4. Выбранный клиентом сервер сохраняет характеристики связывания для клиента на диске, индексируя их соответствующим ключом. Сервер посылает клиенту параметры в сообщении DHCPACK. Клиент должен использовать запрос ARP, чтобы удостовериться в том, что никакое другое устройство не использует назначенный ему IP-адрес.
11.10.3 Возобновление
Клиенты могут продлить аренду адресов посредством быстрого обмена с сервером:
■ Предварительно сконфигурированный клиент может посылать DHCPREQUEST с указанием в нем своего IP-адреса.
■ Сервер (или серверы), хранящий конфигурацию клиента, отвечает сообщением DHCPACK (если все будет успешно).
■ Если информация от клиента больше не имеет силы (например, рабочая станция пользователя была подключена к другой локальной сети), серверы отвечают сообщением DHCPNAK, а клиент должен повторно начать процедуру полной конфигурации.
■ Клиент должен снова начать конфигурирование, если в сообщении DHCPNAK информация от сервера некорректна.
11.11
Параметры таблицы 11.1 могут содержаться в ответах протоколов BOOTP или DHCP, а параметры таблицы 11.2 могут использоваться только в DHCP.
Таблица 11.2 Параметры DHCP
Дополнительные параметры только для DHCP | |
---|---|
Requested IP Address (запрошенный IP-адрес) | Клиент запросил выделение определенного IP-адреса. |
IP Address Lease Time (время аренды IP-адреса) | В запросе клиент указывает необходимое время аренды адреса, реальное значение которого содержится в ответе сервера. |
Option Overload (дополнительная нагрузка) | Указывает, что в сообщении, кроме стандартных значений, находятся поля сервера имен хостов DHCP или имя файла загрузки. |
DHCP Message Type (тип сообщения DHCP) | Например, DISCOVER, OFFER или REQUEST. |
Server Identifier (идентификатор сервера) | Используется для разделения серверов, чтобы клиент мог выяснить, от какого из них используется аренда. |
Parameter Request List (список запрашиваемых параметров) | Список необязательных кодов, разрешающих клиенту запрос значений определенных параметров. |
Message (сообщение) | Используется как сообщение об ошибке в ответе сервера (например, о недоступности IP-адресов). Клиент может применить его для указания причины отклонения предложенного ему набора параметров. |
Maximum DHCP Message Size (максимальный размер сообщения DHCP) | Максимальный размер сообщения DHCP, которое желает получать клиент. |
Renewal (T1) Time Value (значение времени восстановления) | Интервал времени от назначения адреса клиенту до попытки взаимодействия клиента с сервером для продления аренды IP-адреса. |
Rebinding (T2 > T1) Time Value (значение времени повторного связывания) | Интервал времени от назначения адреса клиенту до попытки продления аренды IP-адреса у любого из серверов, если клиент не может получить ответ от исходного сервера. |
Class Identifier (идентификатор класса) | Локально назначенный идентификатор, используемый клиентом для определения своего типа и конфигурации. Некоторые параметры могут быть возвращены на основе указанного класса. |
Client Identifier (идентификатор клиента) | Уникальный идентификатор для клиента, включенный в сообщение DHCPDISCOVER. Идентификатором может быть имя DNS или другой присвоенный клиенту идентификатор. Используется для связи клиента с данными о его аренде IP-адреса. |
Допустимо включать в списки большее число параметров. Текущие требования рассмотрены в последней версии RFC Assigned Numbers.
Многие значения представляют собой списки IP-адресов, где адреса должны появляться в порядке предпочтения.
11.12 Другие методы автоматизации конфигурирования
Было предпринято несколько других попыток автоматизировать отдельные части процесса конфигурирования. Подключенные к локальной сети системы могут использовать обратные ARP (RARP), чтобы обнаружить свой IP-адрес. Запрос ICMP Address Mask (маска адреса ICMP) и ответ на него обеспечивают получение маски подсети. Но нет никакого смысла применять несколько отдельных протоколов и сообщений для получения сведений, предоставляемых в одном ответе BOOTP или DHCP.
Механизм исследования ICMP-маршрутизаторов имеет некоторое преимущество, поскольку предоставляет непрерывно обновляемую информацию о доступных в сети маршрутизаторах.
11.13 Дополнительная литература
Приведенный список литературы действителен на момент написания книги:
■ BOOTP определен в RFC 951.
■ RFC 1533 рассматривает варианты DHCP и расширения BOOTP для разработчиков.
■ RFC 1534 описывает взаимодействие между DHCP и BOOTP.
■ RFC 1542 предоставляет разъяснения и описание изменений в BOOTP.
■ Протокол DHCP специфицирован в RFC 1541.