Серверы настройки
105
DHCP использует в качестве транспортного протокола UDP, так что, в отли-
чие от RARP, не требует применения специальных протоколов уровня дос-
тупа к сети.
Сервер отвечает на сообщение клиента пакетом DHCPOFFER. В работе DHCP
использует два порта с широко известными номерами. Порт UDP 67 исполь-
зуется сервером, а порт UDP 68 - клиентом. Такое положение дел необычно.
В случае большинства приложений на стороне сервера используется широко
известный номер порта, а на стороне клиента - случайный номер. (Причины
и способы использования случайных номеров исходных портов описаны в
главе 1.) Случайный номер порта гарантирует, что каждая пара исходного/
целевого портов недвусмысленно определяет путь для обмена информацией.
Однако клиент DHCP находится в процессе загрузки и, вероятнее всего, не
знает своего IP-адреса. Даже если клиент сгенерирует исходный порт для
пакета DHCPDISCOVER, ответ сервера, адресованный на этот порт и IP-ад-
рес клиента, не будет прочитан клиентом, не опознавшим адрес. Поэтому
DHCP посылает ответ на конкретный порт для всех узлов. Широковеща-
тельное сообщение, направленное на порт UDP 68, будет прочитано всеми
узлами, даже системами, не знающими своего адреса. Каждая система опре-
деляет, является ли пунктом назначения сообщения, проверяя идентифика-
тор транзакции и физический адрес, содержащиеся в пакете ответа.
Сервер заполняет пакет DHCPOFFER данными настройки для клиента.
Корректно настроенный сервер DHCP способен предоставить клиенту любое
требуемое значение настройки TCP/IP. Глава 9 является руководством по
установке сервера DHCP, а приложение D содержит полный перечень пара-
метров настройки DHCP.
Как следует из названия, пакет DHCPOFFER - это предложение данных на-
стройки. Предложение действительно на ограниченный период времени -
обычно 120 секунд. Клиент должен ответить на предложение, прежде чем
истечет установленный временной интервал. Дело в том, что получить пакет
DHCPDISCOVER от клиента и ответить пакетом DHCPOFFER могут сразу
несколько серверов. Если бы сервер не требовал ответа от клиента, могла
возникнуть ситуация, когда несколько серверов выделяли ресурсы одному
клиенту, в то время как эти потраченные впустую ресурсы могли бы исполь-
зоваться другими клиентами. Получив несколько пакетов DHCPOFFER,
клиент реагирует лишь на один из них.
На пакет DHCPOFFER клиент отвечает сообщением DHCPREQUEST. Сооб-
щение DHCPREQUEST говорит серверу, что клиент согласен на использова-
ние предложенных настроек. Сервер проверяет информацию в DHCPREQ-
UEST, чтобы убедиться, что клиент все понял правильно, а предложенные
параметры по-прежнему доступны. Если все верно, сервер передает клиенту
сообщение DHCPACK, уведомляя, что теперь его настройки позволяют ис-
пользовать все данные исходного пакета DHCPOFFER. Нормальный обмен
пакетами при настройке клиента посредством DHCP показан на рис. 3.5.