Опубликован: 28.09.2007 | Доступ: свободный | Студентов: 5986 / 903 | Оценка: 4.20 / 4.10 | Длительность: 47:32:00
ISBN: 978-5-94774-707-2
Лекция 6:

Протокол динамического конфигурирования ЭВМ DHCP

Поведение клиента DHCP

На рис. 6.5 представлена диаграмма состояний для DHCP-клиента. Клиент может получить следующие сообщения от сервера:

  • DHCPOFFER
  • DHCPACK
  • DHCPNAK

Сообщение DHCPINFORM не показано на рис. 6.5. Клиент просто посылает DHCPINFORM и ждет сообщенияотклика DHCPACK. Раз клиент выбрал свои параметры, он завершил процесс конфигурации. Таблица 6.5 описывает использование полей и опций DHCP-сообщения клиента.

Инициализация и выделение сетевого адреса

Клиент начинает работу в состоянии INIT и формирует сообщение DHCPDISCOVER. Клиент должен ждать случайное время в интервале 110 секунд, чтобы десинхронизовать процессы при запуске DHCP. Клиент устанавливает ciaddr равным 0x00000000. Клиент может запросить специфические параметры путем включения опции parameter request list. Клиент может предложить сетевой адрес и/или время действия набора параметров путем включения опций запрошенный IP-адрес и IPaddress lease time (время аренды IP). Клиент должен включить свой аппаратный адрес в поле chaddr, если это необходимо для доставки DHCP-откликов. Клиент может включить уникальный идентификатор в опцию client identifier. Если клиент включил список запрашиваемых параметров в сообщение DHCPDISCOVER, он должен включать этот список во все последующие сообщения.

Диаграмма состояний DHCP-клиента

Рис. 6.5. Диаграмма состояний DHCP-клиента

Клиент генерирует и записывает случайный идентификатор транзакции, вставляет этот идентификатор в поле xid. Клиент записывает свое локальное время для использования позднее при вычислении времени пригодности набора конфигурационных параметров. Клиент затем посылает широковещательно DHCPDISCOVER по локальному аппаратному адресу 0xffffffff, по широковещательному IP-адресу и UDP-порту DHCP-сервера.

Если xid приходящего сообщения DHCPOFFER не согласуется с xid последнего сообщения DHCPDISCOVER, сообщение DHCPOFFER должно игнорироваться. Любое приходящее сообщение DHCPACK также должно игнорироваться.

Клиент собирает сообщения DHCPOFFER за определенный период времени, выбирает одно сообщение DHCPOFFER из числа приходящих сообщений DHCPOFFER (например, первое сообщение DHCPOFFER или сообщение DHCPOFFER от сервера, используемого ранее) и извлекает адрес сервера из опции server identifier сообщения DHCPOFFER.

Если параметры приемлемы, клиент записывает адрес сервера, который предоставляет параметры из поля server identifier и посылает этот адрес в поле server identifier широковещательного сообщения DHCPREQUEST. Раз от сервера пришло сообщение DHCPACK, клиент инициализирован и переходит в состояние BOUND. Сообщение DHCPREQUEST содержит тот же xid, что и сообщение DHCPOFFER. Клиент записывает время истечения действия конфигурационного набора как сумму времени, когда был послан исходный запрос, и длительности действия конфигурационного набора из сообщения DHCPACK. Клиент должен выполнить проверку предложенного адреса, чтобы убедиться, что адрес не используется. Например, если он находится в сети, которая поддерживает ARP, клиент может послать запрос ARP для предложенного адреса. При посылке широковещательного ARPзапроса для предлагаемого адреса, клиент должен записать туда, как отправитель, свой аппаратный адрес и 0 в качестве IP-адреса отправителя, чтобы исключить конфликт с ARPкэшами в других ЭВМ той же субсети. Если оказалось, что сетевой адрес используется, клиент должен послать серверу сообщение DHCPDECLINE. Клиент должен широковещательно послать ARPотклик, чтобы уведомить о новом IP-адресе клиента и удалить устаревшие записи из ARPкэша ЭВМ, размещенных в той же субсети.

Инициализация при известном сетевом адресе

Клиент начинает работу в состоянии INITREBOOT и посылает сообщение DHCPREQUEST. Клиент должен вставить свой сетевой адрес в опцию requested IP-адрес сообщения DHCPREQUEST. Клиент может запросить специфические конфигурационные параметры, включив опцию parameter request list. Клиент генерирует и записывает случайный идентификатор транзакции и заносит этот идентификатор в поле xid. Клиент записывает свое локальное время для последующего использования при вычислении времени истечения пригодности конфигурационного набора параметров. Клиент не должен включать server identifier в сообщение DHCPREQUEST. Клиент затем широковещательно посылает DHCP-серверу сообщение DHCPREQUEST с использованием аппаратного широковещательного адреса и UDP-порта.

Таблица 6.5. Поля и опции, используемые клиентами DHCP
поле DHCPDISCOVER DHCPINFORM DHCPREQUEST DHCPDECLINE, DHCPRELEASE
op BOOTREQUEST BOOTREQUEST BOOTREQUEST
htype Из RFC "Assigned Numbers"
hlen Длина аппаратного адреса в октетах
шаги 0 0 0
xid выбрано клиентом xid из сообщения сервера DHCPOFFER выбрано клиентом
secs 0 или число секунд с момента, когда DHCP-процесс запущен 0 или число сек со времени, когда DHCP-процесс запущен 0
флаги Устанавливает BROADCAST-флаг, если клиент требует широковещательного отклика Устанавливает BROADCAST флаг, если клиент требует широковещательного отклика 0
ciaddr 0 (DHCPDISCOVER) сетевой адрес клиента (DHCPINFORM) 0 или сетевой адрес клиента (BOUND/ RENEW/REBIND) 0 (DHCPDECLINE) сетевой адрес клиента (DHCPRELEASE)
yiaddr 0 0 0
siaddr 0 0 0
giaddr 0 0 0
Chaddr аппаратный адрес клиента аппаратный адрес клиента аппаратный адрес клиента
Sname опции, если указано в опции sname/file; иначе не используется опции, если указано в опции sname/file; иначе не используется (не используется)
Файл опции, если указано в опции sname/file; иначе не используется опции, если указано в опции sname/file; иначе не используется (не используется)
опции опции опции (не используется)
опция DHCPDISCOVer DHCPInFOrM DHCPreQUeSt DHCPDeCLIne, DHCPreLeASe
Requested IP-address (запрашиваемый адрес) Может (DISCOVER) не должен (INFORM) Должен (в SELECTING или INIT-REBOOT) не должен (в BOUND или RENEWING) Должен (DHCPDECLINE), не должен (DHCPRELEASE)
IP-address lease time (время аренды адреса) Может (DISCOVER) не должен (INFORM) Может Не должен
Использование полей/sname Может Может Может
Тип сообщения DHCP DHCPDIS-COVER/DHCP-INFORM DHCPREQUEST DHCPDECLINE/DHCPRELEASE
Идентификатор клиента Может Может Может
Vendor class identifier (идентификатор класса поставщика) Может Может Не должен
Идентификатор сервера Не должен Должен (после SELECTING) Не должен (после INIT-REBOOT, BOUND, RENEWING или REBINDING) Должен
Parameter request list (список запрашиваемых параметров) Может Может Не должен
Maximum message size (максимальный размер сообщения) Может Может Не должен
Message (сообщение) Не следует Не следует Следует
Site-specific (специфичная для узла) Может Может Не должен
Прочие Может Может Не должен

Раз от какогото сервера пришло сообщение DHCPACK с полем xid, согласующимся с тем, которое содержится в сообщении клиента DHCPREQUEST, клиент инициализирован и он переходит в состояние BOUND. Клиент записывает время истечения пригодности конфигурационного набора параметров, которое равно сумме времени, когда было послано сообщение DHCPREQUEST, и длительности пригодности конфигурационного набора, взятого из сообщения DHCPACK.

Наталья Шульга
Наталья Шульга

Курс "информационная безопасность" .

Можно ли на него записаться на ПЕРЕПОДГОТОВКУ по данному курсу? Выдается ли диплом в бумажном варианте и высылается ли он по почте?

Мария Архипова
Мария Архипова