Многоцелевое расширение почты Интернет

         

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


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

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

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

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

Таблица 5. Поля и опции, используемые клиентами DHCP

Поле

DHCPDISCOVER
DHCPINFORM DHCPREQUEST DHCPDECLINE,
DHCPRELEASE 'op' BOOTREQUEST BOOTREQUEST BOOTREQUEST 'htype' Из RFC"Assigned Numbers"     'hlen' Длина аппаратного адреса в октетах     'шаги' 0 0 0 'xid' выбрано клиентом 'xid' из сообщения сервера DHCPOFFER выбрано клиентом 'secs' 0 или число сек с момента, когда HCP-процесс запущен 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) Может Не должен Использование полей 'file'/'sname' Может Может Может Тип сообщения DHCP DHCPDISCOVER/ DHCPINFORM DHCPREQUEST DHCPDECLINE/ DHCPRELEASE Идентификатор клиента Может Может Может Vendor class identifier Может Может Не должен Идентификатор сервера Не должен Должен (после SELECTING)

Не должен (после INIT-REBOOT, BOUND, RENEWING или REBINDING) Должен Parameter request list Может Может Не должен Maximum message size Может Может Не должен Message Не следует Не следует Следует Site-specific Может Может Не должен Прочие Может Может Не должен Если параметры приемлемы, клиент записывает адрес сервера, который предоставляет параметры из поля 'server identifier' и посылает этот адрес в поле 'server identifier' широковещательного сообщения DHCPREQUEST. Раз от сервера пришло сообщение DHCPACK, клиент инициализирован и переходит в состояние BOUND. Сообщение DHCPREQUEST содержит тот же 'xid' что и сообщение DHCPOFFER. Клиент записывает время истечения действия конфигурационного набора как сумму времени, когда был послан исходный запрос и длительности действия конфигурационного набора из сообщения DHCPACK. Клиент должен выполнить проверку предложенного адреса, чтобы убедиться, что адрес не используется. Например, если клиент находится в сети, которая поддерживает ARP, клиент может послать запрос ARP для предложенного адреса. При посылке широковещательного ARP-запроса для предлагаемого адреса, клиент должен записать туда, как отправитель, свой аппаратный адрес, и 0 в качестве IP-адреса отправителя, чтобы исключить конфликт с ARP-кэшами в других ЭВМ той же субсети. Если оказалось, что сетевой адрес используется, клиент должен послать серверу сообщение DHCPDECLINE. Клиент должен широковещательно послать ARP-отклик, чтобы уведомить о новом IP-адресе клиента и удалить устаревшие записи из ARP-кэша ЭВМ, размещенных в той же субсети.


Содержание раздела