для чего предназначено сообщение типа dhcp request

Записки IT специалиста

Технический блог специалистов ООО»Интерфейс»

Как устроен и работает протокол DHCP

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

Получение адреса

Рассмотрим процесс получения IP-адреса, он достаточно прост и состоит из четырех этапов, которые в упрощенном виде показаны на следующей схеме:

для чего предназначено сообщение типа dhcp request. Смотреть фото для чего предназначено сообщение типа dhcp request. Смотреть картинку для чего предназначено сообщение типа dhcp request. Картинка про для чего предназначено сообщение типа dhcp request. Фото для чего предназначено сообщение типа dhcp request

Все это можно увидеть, если заглянуть внутрь DHCP-пакета:

для чего предназначено сообщение типа dhcp request. Смотреть фото для чего предназначено сообщение типа dhcp request. Смотреть картинку для чего предназначено сообщение типа dhcp request. Картинка про для чего предназначено сообщение типа dhcp request. Фото для чего предназначено сообщение типа dhcp requestВ данном случае это запрос обнаружения (Discover), цветом мы отметили упоминавшиеся выше поля и опции. Вроде бы все просто, но есть некоторые моменты, которые обычно обходятся молчанием, но способны вызвать определенные затруднения от неверного их понимания.

Запрос обнаружения рассылается для всех узлов сети, но отвечают на него только DHCP-сервера, формируя сообщение Предложения DHCP (DHCP OFFER), которое содержит предлагаемую сервером сетевую конфигурацию. Если серверов несколько, то предложений клиент получит несколько. Из предложенных конфигураций клиент выбирает одну, как правило полученную первой. Предлагаемый клиенту адрес содержится в специальном поле yiaddr, а поле siaddr передается адрес DHCP-сервера.

Так как MAC-адрес отправителя известен, то сервер направляет ответ непосредственно клиенту (unicast), хотя в некоторых случаях может ответить и широковещательным пакетом. Например, DHCP-сервера dnsmasq и Mikrotik отвечает непосредственно клиенту (юникастом), в то время как DHCP Windows Server отвечает широковещательным пакетом. По большому счету это не имеет особого значения, просто вы должны знать, что это вполне допустимые режимы работы DHCP-сервера и не являются признаком неправильной работы.

для чего предназначено сообщение типа dhcp request. Смотреть фото для чего предназначено сообщение типа dhcp request. Смотреть картинку для чего предназначено сообщение типа dhcp request. Картинка про для чего предназначено сообщение типа dhcp request. Фото для чего предназначено сообщение типа dhcp requestВ структуре ответа мы также отметили цветом вышеописанные опции, также обратите внимание, что в данном случае ответ был отправлен широковещательным пакетом (Windows Server). Ниже показана структура ответа dnsmasq:

для чего предназначено сообщение типа dhcp request. Смотреть фото для чего предназначено сообщение типа dhcp request. Смотреть картинку для чего предназначено сообщение типа dhcp request. Картинка про для чего предназначено сообщение типа dhcp request. Фото для чего предназначено сообщение типа dhcp requestЗдесь видно, что сервер ответил непосредственно клиенту (отправив фрейм на его MAC-адрес), не прибегая к широковещательной рассылке.

Остальные сетевые параметры передаются в виде опций, в нашем случае это опции 1, 3 и 6 (маска, шлюз, DNS):

для чего предназначено сообщение типа dhcp request. Смотреть фото для чего предназначено сообщение типа dhcp request. Смотреть картинку для чего предназначено сообщение типа dhcp request. Картинка про для чего предназначено сообщение типа dhcp request. Фото для чего предназначено сообщение типа dhcp requestПриняв предложение клиент официально запрашивает у сервера данную конфигурацию, для чего отправляет широковещательно Запрос DHCP (DHCP REQUEST), он полностью повторяет по структуре сообщение обнаружения (Discover), только добавляет к нему опцию 54 с адресом сервера, конфигурацию которого клиент принял. Опция 50 содержит предложенный сервером IP-адрес. Несмотря на то, что MAC-адрес DHCP-сервера известен, запрос (Request) рассылается широковещательно, это нужно для того, чтобы остальные DHCP-сервера понимали, что их предложение отвергнуто.

для чего предназначено сообщение типа dhcp request. Смотреть фото для чего предназначено сообщение типа dhcp request. Смотреть картинку для чего предназначено сообщение типа dhcp request. Картинка про для чего предназначено сообщение типа dhcp request. Фото для чего предназначено сообщение типа dhcp requestВыше показана структура запроса, можете сравнить его с пакетом обнаружения, обратите внимание на заполненное значение опции 54.

Получив запрос сервер направляет клиенту в ответ Подтверждение DHCP (DHCP ACK), которое отправляется на MAC-адрес клиента (хотя может и широковещательно) и получив которое клиент должен настроить свой сетевой адаптер согласно указанного адреса и опций.

для чего предназначено сообщение типа dhcp request. Смотреть фото для чего предназначено сообщение типа dhcp request. Смотреть картинку для чего предназначено сообщение типа dhcp request. Картинка про для чего предназначено сообщение типа dhcp request. Фото для чего предназначено сообщение типа dhcp requestПо структуре сообщение подтверждения (Ask) практически не отличается от предложения (Offer), за исключением того, что поле siaddr с адресом DHCP-сервера не заполняется, но его адрес передается в опции 54.

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

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

Обновление адреса

В зависимости от срока прошедшего с момента получения адреса клиент может находится в одном из нескольких состояний.

Для этого он отправляет сообщение запроса (Request), в котором указывает текущий IP-адрес. Если сервер подтверждает аренду, то отвечает сообщением подтверждения (Ask), клиент сбрасывает счетчики T1 и T2 и начинает отсчет срока аренды заново.

Данные о сроке аренды и времени обновления адреса и обновлении конфигурации передаются сервером в опциях 51, 58 и 59:

для чего предназначено сообщение типа dhcp request. Смотреть фото для чего предназначено сообщение типа dhcp request. Смотреть картинку для чего предназначено сообщение типа dhcp request. Картинка про для чего предназначено сообщение типа dhcp request. Фото для чего предназначено сообщение типа dhcp request

Если сервер не ответил клиенту, то он берет промежуток времени до окончания состояния обновления и делит его пополам, в это время будет отправлен повторный запрос, при его отсутствии промежуток времени снова будет поделен пополам, потом снова пополам, при этом полученный промежуток времени не может быть меньше 60 сек. Таким образом, чем ближе окончание срока обновления, тем чаще будут делаться запросы.

После наступления момента времени T2, если клиенту не удалось обновить адрес, он переходит в состояние обновления Обновления конфигурации (REBINDING). В этом случае он посылает сообщение Обнаружения DHCP, теперь клиенту может ответить любой DHCP-сервер, а не только тот, который выдал IP-адрес. Если ответа от сервера не было, то оставшееся время также делится пополам и запрос повторяется. Все это время клиент может продолжать пользоваться уже полученной сетевой конфигурацией и нормально работать.

Если же до окончания срока аренды ответ так и не был получен, то клиент прекращает все сетевые операции и переходит в состояние Инициализации (INIT). В последствии, при получении предложений (Offer) от различных серверов клиент предпочтет выбрать предложение от сервера, который выдавал ему адрес прошлый раз и продолжит пользоваться старым адресом.

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

Если сеть клиента корректна, но запрашиваемый адрес занят, то сервер также ответит сообщением отмены (Nak) и клиент начнет получение адреса повторно.

Получение дополнительной информации

Если клиент имеет статически назначенный IP-адрес, но хочет получить дополнительные параметры, скажем адрес серверов имен или статические маршруты, то он отправляет специальное широковещательное сообщение Информации DHCP (DHCP INFORM), в ответ сервера отправляют сообщение подтверждения (Ask) без выделения IP-адреса.

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

для чего предназначено сообщение типа dhcp request. Смотреть фото для чего предназначено сообщение типа dhcp request. Смотреть картинку для чего предназначено сообщение типа dhcp request. Картинка про для чего предназначено сообщение типа dhcp request. Фото для чего предназначено сообщение типа dhcp request

Или подпишись на наш Телеграм-канал: для чего предназначено сообщение типа dhcp request. Смотреть фото для чего предназначено сообщение типа dhcp request. Смотреть картинку для чего предназначено сообщение типа dhcp request. Картинка про для чего предназначено сообщение типа dhcp request. Фото для чего предназначено сообщение типа dhcp request

Источник

Что такое DHCP-протокол

для чего предназначено сообщение типа dhcp request. Смотреть фото для чего предназначено сообщение типа dhcp request. Смотреть картинку для чего предназначено сообщение типа dhcp request. Картинка про для чего предназначено сообщение типа dhcp request. Фото для чего предназначено сообщение типа dhcp request

Рассказываю о том, как компьютеры получают IP-адреса для работы в сети.

Способы выдачи IP-адресов

Чтобы компьютер мог работать в сети, ему нужен IP-адрес. Он выглядит как 4 числа через точку. Например, IP-адрес timeweb.com – 185.114.246.105. Это как страна, город, улица и дом в почтовом адресе, только в интернете – это узлы связи и магистральные роутеры. Если устройству не выдали IP-адрес, оно не может общаться с другими устройствами в сети.

«IP» расшифровывается как Internet Protocol. Данный протокол имеет две версии: IPv4 и IPv6.

Устройство может получить IP-адрес двумя способами: статическим (ручным) и динамическим.

Динамический способ подойдет как для предприятий, где количество устройств фиксировано, так и для кафе, через Wi-Fi которых каждый день проходит много разных гаджетов.

Протокол DHCP и динамический IP

Для динамической выдачи IP-адресов используется сетевой протокол DHCP («Dynamic Host Configuration Protocol»), что переводится как протокол динамической настройки узла.

DHCP работает по модели «клиент-сервер». Он автоматически раздает IP-адреса и другие параметры конфигурации устройствам, чтобы те могли работать в сети.

Взаимодействие DHCP-сервера и клиента

Сервер и клиент обмениваются сообщениями по принципу «запрос-ответ». Взаимодействие состоит из 4 этапов и сокращенно называется «DORA». По одной букве на каждый этап:

Подтверждение – Acknowledgement (ACK).

для чего предназначено сообщение типа dhcp request. Смотреть фото для чего предназначено сообщение типа dhcp request. Смотреть картинку для чего предназначено сообщение типа dhcp request. Картинка про для чего предназначено сообщение типа dhcp request. Фото для чего предназначено сообщение типа dhcp request

Поиск (Discover): Клиент → Сервер

На этом этапе клиенту главное найти и узнать, где находится сервер.

Мы включили компьютер, который находится в сети. Еще в этой же сети работает DHCP. В данном случае наш компьютер – это клиент, а DHCP – сервер. Теперь нашему устройству необходимо получить IP-адрес и другую необходимую информацию о сети, например шлюз, адреса DNS и маску подсети. Поэтому клиент начинает поиски сервера и посылает сообщение «DHCPDISCOVER» на компьютеры внутри этого сегмента сети.

Такое сообщение называется широковещательным (broadcast) – это значит, что поток данных от клиента получат все устройства внутри его сети. Ответить на такое сообщение смогут только DHCP-серверы.

для чего предназначено сообщение типа dhcp request. Смотреть фото для чего предназначено сообщение типа dhcp request. Смотреть картинку для чего предназначено сообщение типа dhcp request. Картинка про для чего предназначено сообщение типа dhcp request. Фото для чего предназначено сообщение типа dhcp request

Запрос клиента получат все участники сети, но ответит только сервер

Предложение (Offer): Сервер → Клиент

DHCP-сервер получает сообщение от клиента, после чего выбирает свободный IP-адрес из числа доступных и отправляет его в ответном сообщении «DHCPOFFER».

Как правило, IP-адрес закрепляется за клиентом на определенное время, поэтому может меняться между сеансами работы в сети.

Если клиенту ответили несколько серверов, он выберет какой-то один и получит от него IP-адрес с настройками.

Запрос (Request): Клиент → Сервер

Клиент получил IP-адрес и отправляет серверу ответное сообщение: «DHCPREQUEST». В нем он еще раз прописывает полученный адрес и тем самым подтверждает, что будет использовать его.

Ответное сообщение с IP-адресом получают все DHCP-серверы в сети, если их несколько. Это необходимо для того, чтобы каждый сервер знал, что этот адрес занят, и не предлагал его другим клиентам.

Только один сервер продолжает взаимодействие с клиентом. Это тот, который предложил выбранный клиентом IP-адрес.

Подтверждение (ACK): Сервер → Клиент

Сервер отправляет сообщение «DHCPACK» и тем самым закрепляет IP-адрес за клиентом. В сообщении содержится сам адрес, срок его использования и дополнительные настройки сети. Клиент проверяет эти настройки, применяет полученную конфигурацию и получает доступ к сети.

В общем виде весь процесс взаимодействия выглядит так:

– (Клиент) Кто тут сервер? Мне надо получить IP-адрес: «DHCPDISCOVER».

– (Сервер) Я сервер, предлагаю тебе использовать вот этот IP: «DHCPOFFER».

– (Клиент) Хорошо, я буду использовать этот IP, что ты мне отправил: «DHCPREQUEST».

– (Сервер) Вот и договорились. Приятной работы в сети: «DHCPACK».

Другие варианты сообщений

«DHCPINFORM» – так клиент запрашивает локальные настройки сети. В ответ на это сообщение сервер посылает запрашиваемую конфигурацию.

«DHCPNAK» – так сервер отказывает клиенту пользоваться IP-адресом.

Длительность использования IP-адреса

Время, на которое клиент получает IP-адрес от сервера, называется «срок аренды» (lease time). Он может составлять несколько минут, часов и даже суток. Когда срок аренды заканчивается, адрес освобождается, и сервер может отдать его другому клиенту.

Клиент может продлить аренду и использовать IP-адрес дальше. Для этого он ждет, пока пройдет половина срока, который изначально назначил сервер. После этого клиент посылает серверу сообщение «DHCPREQUEST», в котором указывает свой текущий IP-адрес. В ответном сообщении «DHCPACK» сервер запускает срок аренды заново. Получилась укороченная схема взаимодействия «клиент-сервер» из двух последних этапов (запрос → подтверждение).

Если сервер молчит и не отправляет подтверждение «DHCPACK», то клиент пробует отправить повторный запрос «DHCPREQUEST», когда пройдет половина от того времени, что осталось сейчас. И так до тех пор, пока не пройдет ⅞ времени всей аренды. После этого клиент начнет отправлять широковещательные запросы на свою сеть и ждать ответа от другого сервера.

Перед тем как завершить работу и отключиться от сети, клиент автоматически отправит серверу сообщение «DHCPRELEASE». Это значит, что IP-адрес свободен и сервер может передать его другому компьютеру.

Способы раздачи IP-адресов в DHCP

DHCP-сервер может назначать IP-адреса тремя способами:

Фиксированный – в этом случае происходит настройка DHCP сервера, в ходе которой администратор вручную прописывает соответствие между каждым MAC-адресом и IP-адресом. Таким образом, за каждым устройством закрепляется свой адрес, который будет выдавать сервер.

Это удобно в рамках небольшой сети, когда известны MAC-адреса всех компьютеров.

Автоматический – при таком способе каждое устройство автоматически получает IP-адрес, который не будет меняться. DHCP-сервер выдает адрес в бессрочную аренду, пока клиент от него не откажется.

Динамический – DHCP-сервер выдает клиенту любой адрес из диапазона свободных. Эти адреса не закрепляются за конкретными устройствами.

Динамическим способом раздают IP-адреса, когда состав пользователей и их количество в сети постоянно меняется, например при использовании Wi-Fi в кафе. В этом случае кафе покупает определенное количество IP-адресов и выдает посетителям, которые подключаются к сети.

Связь DHCP и клиента в разных подсетях

Обычно сеть дополнительно разделяют на подсети. Это помогает повысить производительность и обеспечить безопасность. Производительность повышается за счет того, что таким образом равномерно распределяется широковещательный трафик.

DHCP-сервер и клиент могут оказаться в разных подсетях, разделенных одним или несколькими маршрутизаторами. Как правило, маршрутизаторы не пропускают широковещательный трафик.

Вспомним, что первое сообщение, которое отправляет клиент, чтобы найти сервер («DHCPDISCOVER»), – широковещательное. Следовательно, клиент и сервер из разных подсетей не смогут просто так взаимодействовать.

Эту проблему решают с помощью ретрансляции или DHCP relay. С помощью этой настройки маршрутизаторы смогут передавать только широковещательный трафик, который относится к протоколу DHCP.

Таким образом, если маршрутизатор может работать в режиме DHCP relay, то у него получится передать первый запрос клиента «DHCPDISCOVER» серверу в другой подсети. В этом случае взаимодействию «клиент-сервер» ничего не помешает.

Краткие выводы

Для связи с другими устройствами и работы в сети компьютеру требуется IP-адрес.

Устройство может получить статический или динамический IP-адрес.

Динамические IP-адреса назначаются с помощью протокола DHCP.

Чтобы получить IP-адрес, устройство-клиент взаимодействует с DHCP-сервером по модели «DORA».

Сервер может назначить IP-адрес клиенту тремя способами: фиксированно, автоматически или динамически.

Если сервер и клиент находятся в разных подсетях, они смогут взаимодействовать с помощью ретрансляции DHCP relay.

Источник

Национальная библиотека им. Н. Э. Баумана
Bauman National Library

Персональные инструменты

DHCP (Dynamic Host Configuration Protocol)

DHCP

Уровень (по модели OSI):Прикладной
Семейство:стек протоколов TCP/IP
Порт/ID:67, 68/UDP
Назначение протокола:Получение сетевой конфигурации
Спецификация:RFC 2131
Основные реализации (серверы):dhcpd, ISC DHCP Server, Infoblox
Вступил в силу с:1990

DHCP (англ. Dynamic Host Configuration Protocol — протокол динамической настройки узла) — сетевой протокол, позволяющий компьютерам автоматически получать IP-адрес и другие параметры, необходимые для работы в сети TCP/IP. Данный протокол работает по модели «клиент-сервер». Для автоматической конфигурации компьютер-клиент на этапе конфигурации сетевого устройства обращается к так называемому серверу DHCP и получает от него нужные параметры. Сетевой администратор может задать диапазон адресов, распределяемых сервером среди компьютеров. Это позволяет избежать ручной настройки компьютеров сети и уменьшает количество ошибок. Протокол DHCP используется в большинстве сетей TCP/IP.

DHCP является расширением протокола BOOTP (Bootstrap Protocol), использовавшегося ранее для обеспечения беpдисковых рабочих станций IP-адресами при их загрузке. DHCP сохраняет обратную совместимость с BOOTP.

Содержание

История

Стандарт протокола DHCP был принят в октябре 1993 года. Действующая версия протокола (март 1997 года) описана в RFC 2131. Новая версия DHCP, предназначенная для использования в среде IPv6, носит название DHCPv6 и определена в RFC 3315 (июль 2003 года).

Распределение IP-адресов

Протокол DHCP предоставляет три способа распределения IP-адресов:

Некоторые реализации службы DHCP способны автоматически обновлять записи DNS, соответствующие клиентским компьютерам, при выделении им новых адресов. Это производится при помощи протокола обновления DNS, описанного в RFC 2136.

Опции DHCP

Помимо IP-адреса, DHCP также может сообщать клиенту дополнительные параметры, необходимые для нормальной работы в сети. Эти параметры называются опциями DHCP. Список стандартных опций можно найти в RFC 2132.

Некоторыми из наиболее часто используемых опций являются:

Некоторые поставщики программного обеспечения могут определять собственные дополнительные опции DHCP.

В следующих таблицах перечислены доступные DHCP опции, как указано в RFC2132:

RFC1497 расширения поставщиков программного обеспечения

КодНазваниеДлинаПримечание
0Pad0 октетовИспользуется для дополнения других опций, чтобы они выравнивались по границе слова.
1Subnet Mask4 октетаДолжн быть отправлен после опции “router” (опция 3), если оба включены.
2Time Offset4 октета
3Routerкратное 4 октетамДоступные маршрутизаторы должны быть перечислены в порядке предпочтения.
4Time Serverкратное 4 октетамДоступные серверы для синхронизации должны быть перечислены в порядке предпочтения.
5Name Serverкратное 4 октетамДоступные IEN 116 – имена серверов, должны быть перечислены в порядке предпочтения.
6Domain Name Serverкратное 4 октетамДоступные DNS-сервера должны быть перечислены в порядке предпочтения.
7Log Serverкратное 4 октетамДоступные Log–сервера должны быть перечислены в порядке предпочтения.
8Cookie Serverкратное 4 октетам
9LPR Serverкратное 4 октетам
10Impress Serverкратное 4 октетам
11Resource Location Serverкратное 4 октетам
12Host Nameминимум 1 октет
13Boot File Size2 октетаДлина загрузочного образа в 4-килобайтных блоках.
14Merit Dump Fileминимум 1 октетПуть до места хранения аварийных дампов.
15Domain Nameминимум 1 октет
16Swap Server4 октета
17Root Pathминимум 1 октет
18Extensions Pathминимум 1 октет
255End0 октетовИспользуется для обозначения конца поля.
Параметры IP-уровня клиента

КодНазваниеДлина
19IP Forwarding Enable/Disable1 октет
20Non-Local Source Routing Enable/Disable1 октет
21Policy FilterКратное 8 октетам
22Maximum Datagram Reassembly Size2 октета
23Default IP Time-to-live1 октет
24Path MTU Aging Timeout4 октета
25Path MTU Plateau TableКратное 2 октетам
Параметры интерфейса Ip-уровня.

КодНазваниеДлина
26Interface MTU2
27All Subnets are Local1
28Broadcast Address4
29Perform Mask Discovery1
30Mask Supplier1
31Perform Router Discovery1
32Router Solicitation Address4
33Static RouteКратно 8 октетам
Параметры интерфейса уровня связи

КодНазваниеДлина
34Trailer Encapsulation Option1
35ARP Cache Timeout4
36Ethernet Encapsulation1
TCP –параметры.

КодНазваниеДлина
37TCP Default TTL1
38TCP Keepalive Interval4
39TCP Keepalive Garbage1
Параметры сервисов и приложений

КодНазваниеДлина
40Network Information Service Domainминимум 1 октет
41Network Information Serversкратное 4 октетам
42Network Time Protocol Serversкратное 4 октетам
43Vendor Specific Informationминимум 1 октет
44NetBIOS over TCP/IP Name Serverкратное 4 октетам
45NetBIOS over TCP/IP Datagram Distribution Serverкратное 4 октетам
46NetBIOS over TCP/IP Node Type1
47NetBIOS over TCP/IP Scopeминимум 1 октет
48X Window System Font Serverкратное 4 октетам
49X Window System Display Managerкратное 4 октетам
64Network Information Service+ Domainминимум 1 октет
65Network Information Service+ Serversкратное 4 октетам
68Mobile IP Home Agentкратное 4 октетам
69Simple Mail Transport Protocol (SMTP) Serverкратное 4 октетам
70Post Office Protocol (POP3) Serverкратное 4 октетам
71Network News Transport Protocol (NNTP) Serverкратное 4 октетам
72Default World Wide Web (WWW) Serverкратное 4 октетам
73Default Finger Serverкратное 4 октетам
74Default Internet Relay Chat (IRC) Serverкратное 4 октетам
75StreetTalk Serverкратное 4 октетам
76StreetTalk Directory Assistance (STDA) Serverкратное 4 октетам
DHCP – расширения

КодНазваниеДлина
50Requested IP address4
51IP address Lease Time4
52Option Overload1
53DHCP Message Type1
54Server Identifier4
55Parameter Request Listминимум 1 октет
56Messageминимум 1 октет
57Maximum DHCP Message Size2
58Renewal (T1) Time Value4
59Rebinding (T2) Time Value4
60Vendor class identifierминимум 1 октет
61Client-identifierминимум 2 октета
66TFTP server nameминимум 1 октет
67Bootfile nameминимум 1 октет

Идентификация поставщика.

Опция существует, чтобы определить поставщика и функциональность клиента DHCP. Информация представляется строкой переменной длины, состоящей из символов или октетов, которые имеют значение, указанное поставщиком клиента DHCP. Один из методов позволяет DHCP клиенту оповещать сервер о том, что он использует определенный тип низкоуровневого обеспечения или прошивки для заполнения опции Vendor Class Identifier(VCI)(опция 60). Этот метод позволяет различать запросы клиентских машин и процессов. Значение опции VCI дает DHCP-серверу подсказку о любой необходимой дополнительной информации, которую необходимо отправить клиенту в ответ.

Устройство протокола

Протокол DHCP является клиент-серверным, то есть в его работе участвуют клиент DHCP и |сервер DHCP. Передача данных производится при помощи протокола UDP. По умолчанию запросы от клиента делаются на 67 порт к серверу, сервер в свою очередь отвечает на порт 68 к клиенту, выдавая адрес IP и другую необходимую информацию, такую, как сетевую маску, маршрутизатор и серверы DNS.

Структура сообщений DHCP

Все сообщения протокола DHCP разбиваются на поля, каждое из которых содержит определённую информацию. Все поля, кроме последнего (поля опций DHCP), имеют фиксированную длину.

Структура сообщений DHCP

ПолеОписаниеДлина (в байтах)
opТип сообщения. Например может принимать значения: BOOTREQUEST (1, запрос от клиента к серверу) и BOOTREPLY (2, ответ от сервера к клиенту).1
htypeТип аппаратного адреса. Допустимые значения этого поля определены в RFC1700 «Assigned Numbers». Например, для MAC-адреса Ethernet 10 Мбит/с это поле принимает значение 1.1
hlenДлина аппаратного адреса в байтах. Для MAC-адреса Ethernet — 6.1
hopsКоличество промежуточных маршрутизаторов (так называемых агентов ретрансляции DHCP), через которые прошло сообщение. Клиент устанавливает это поле в 0.1
xidУникальный идентификатор транзакции, генерируемый клиентом в начале процесса получения адреса.4
secsВремя в секундах с момента начала процесса получения адреса. Может не использоваться (в этом случае оно устанавливается в 0).2
flagsПоле для флагов — специальных параметров протокола DHCP.2
ciaddrIP-адрес клиента. Заполняется только в том случае, если клиент уже имеет собственный IP-адрес и способен отвечать на запросы ARP (это возможно, если клиент выполняет процедуру обновления адреса по истечении срока аренды).4
yiaddrНовый IP-адрес клиента, предложенный сервером.4
siaddrIP-адрес сервера. Возвращается в предложении DHCP (см. ниже).4
giaddrIP-адрес агента ретрансляции, если таковой участвовал в процессе доставки сообщения DHCP до сервера.4
chaddrАппаратный адрес (обычно MAC-адрес) клиента.16
snameНеобязательное имя сервера в виде нуль-терминированной строки.64
fileНеобязательное имя файла на сервере, используемое бездисковыми рабочими станциями при удалённой загрузке. Как и sname, представлено в виде нуль-терминированной строки.128
optionsПоле опций DHCP. Здесь указываются различные дополнительные параметры конфигурации. В начале этого поля указываются четыре особых байта со значениями 99, 130, 83, 99 («волшебные числа»), позволяющие серверу определить наличие этого поля. Поле имеет переменную длину, однако DHCP-клиент должен быть готов принять DHCP-сообщение длиной в 576 байт (в этом сообщении поле options имеет длину 340 байт).переменная

Пример процесса получения адреса

Рассмотрим пример процесса получения IP-адреса клиентом от сервера DHCP. Предположим, клиент ещё не имеет собственного IP-адреса, но ему известен его предыдущий адрес — 192.168.1.100. Процесс состоит из четырёх этапов.

Обнаружение DHCP

Вначале клиент выполняет широковещательный запрос по всей физической сети с целью обнаружить доступные DHCP-серверы. Он отправляет сообщение типа DHCPDISCOVER, при этом в качестве IP-адреса источника указывается 0.0.0.0 (так как компьютер ещё не имеет собственного IP-адреса), а в качестве адреса назначения — широковещательный адрес 255.255.255.255.

Клиент заполняет несколько полей сообщения начальными значениями:

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

Не всегда процесс получения IP адреса начинается с DHCPDISCOVER. В случае, если клиент ранее уже получал IP адрес и срок его аренды ещё не прошёл — клиент может пропустить стадию DHCPDISCOVER, начав с запроса DHCPREQUEST отправляемого с идентификатором сервера, который выдал адрес в прошлый раз. В случае же отсутствия ответа от DHCP сервера, выдавшего настройки в прошлый раз, клиент отправляет DHCPDISCOVER. Тем самым клиент начинает процесс получения с начала, обращаясь уже ко всем DHCP серверам в сегменте сети.

Предложение DHCP

Получив сообщение от клиента, сервер определяет требуемую конфигурацию клиента в соответствии с указанными сетевым администратором настройками. В данном случае DHCP-сервер согласен с запрошенным клиентом адресом 192.168.1.100. Сервер отправляет ему ответ (DHCPOFFER), в котором предлагает конфигурацию. Предлагаемый клиенту IP-адрес указывается в поле yiaddr. Прочие параметры (такие, как адреса маршрутизаторов и DNS-серверов) указываются в виде опций в соответствующем поле.

Это сообщение DHCP-сервер отправляет хосту, пославшему DHCPDISCOVER, на его MAC, при определенных обстоятельствах сообщение может распространяться как широковещательная рассылка. Клиент может получить несколько различных предложений DHCP от разных серверов; из них он должен выбрать то, которое его «устраивает».

Запрос DHCP

Выбрав одну из конфигураций, предложенных DHCP-серверами, клиент отправляет запрос DHCP (DHCPREQUEST). Он рассылается широковещательно; при этом к опциям, указанным клиентом в сообщении DHCPDISCOVER, добавляется специальная опция — идентификатор сервера — указывающая адрес DHCP-сервера, выбранного клиентом (в данном случае — 192.168.1.1).

Подтверждение DHCP

Наконец, сервер подтверждает запрос и направляет это подтверждение (DHCPACK) клиенту. После этого клиент должен настроить свой сетевой интерфейс, используя предоставленные опции.

Вид сообщений

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

Обнаружение DHCP
DHCPDISCOVER

UDP Src=0.0.0.0
Dest=255.255.255.255
OPHTYPEHLENHOPS
0x010x010x060x00
XID
0x3903F326
SECSFLAGS
0x00000x0000
CIADDR
0xC0A80164
YIADDR
0x00000000
SIADDR
0x00000000
GIADDR
0x00000000
CHADDR
0x0000001d6057ed80
SNAME
(пустое поле)
FILE
(пустое поле)
OPTIONS
Опция DHCP 53: обнаружение DHCP
Опция DHCP 50: запрос адреса 192.168.1.100
Предложение DHCP
DHCPOFFER

UDP Src=192.168.1.1
Dest=255.255.255.255
OPHTYPEHLENHOPS
0x020x010x060x00
XID
0x3903F326
SECSFLAGS
0x00000x0000
CIADDR
0x00000000
YIADDR
0xC0A80164
SIADDR
0xC0A80101
GIADDR
0x00000000
CHADDR
0x0000001d6057ed80
SNAME
(пустое поле)
FILE
(пустое поле)
OPTIONS
Опция DHCP 53: предложение DHCP
Опция DHCP 1: маска подсети 255.255.255.0
Опция DHCP 3: маршрутизатор 192.168.1.1
Опция DHCP 51: срок аренды IP-адреса — 1 день
Опция DHCP 54: DHCP-сервер 192.168.1.1
Запрос DHCP
DHCPREQUEST

UDP Src=0.0.0.0
Dest=255.255.255.255
OPHTYPEHLENHOPS
0x010x010x060x00
XID
0x3903F326
SECSFLAGS
0x00000x0000
CIADDR
0xC0A80164
YIADDR
0x00000000
SIADDR
0x00000000
GIADDR
0x00000000
CHADDR
0x0000001d6057ed80
SNAME
(пустое поле)
FILE
(пустое поле)
OPTIONS
Опция DHCP 53: запрос DHCP
Опция DHCP 50: запрос адреса 192.168.1.100
Опция DHCP 54: DHCP-сервер 192.168.1.1
Подтверждение DHCP
DHCPACK

UDP Src=192.168.1.1
Dest=255.255.255.255
OPHTYPEHLENHOPS
0x020x010x060x00
XID
0x3903F326
SECSFLAGS
0x00000x0000
CIADDR
0x00000000
YIADDR
0xC0A80164
SIADDR
0x00000000
GIADDR
0x00000000
CHADDR
0x0000001d6057ed80
SNAME
(пустое поле)
FILE
(пустое поле)
OPTIONS
Опция DHCP 53: подтверждение DHCP
Опция DHCP 1: маска подсети 255.255.255.0
Опция DHCP 3: маршрутизатор 192.168.1.1
Опция DHCP 51: срок аренды IP-адреса — 1 день
Опция DHCP 54: DHCP-сервер 192.168.1.1

Прочие сообщения DHCP

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

Отказ DHCP

Если после получения подтверждения (DHCPACK) от сервера клиент обнаруживает, что указанный сервером адрес уже используется в сети, он рассылает широковещательное сообщение отказа DHCP (DHCPDECLINE), после чего процедура получения IP-адреса повторяется. Использование IP-адреса другим клиентом можно обнаружить, выполнив запрос ARP.

Сообщение отмены DHCP (DHCPNAK). При получении такого сообщения соответствующий клиент должен повторить процедуру получения адреса.

Освобождение DHCP

Клиент может явным образом прекратить аренду IP-адреса. Для этого он отправляет сообщение освобождения DHCP (DHCPRELEASE) тому серверу, который предоставил ему адрес в аренду. В отличие от других сообщений DHCP, DHCPRELEASE не рассылается широковещательно.

Информация DHCP

Сообщение информации DHCP (DHCPINFORM) предназначено для определения дополнительных параметров стек протоколов TCP/IP|TCP/IP (например, адреса маршрутизатора по умолчанию, DNS-серверов и т. п.) теми клиентами, которым не нужен динамический IP-адрес (то есть адрес которых настроен вручную). Серверы отвечают на такой запрос сообщением подтверждения (DHCPACK) без выделения IP-адреса.

Реализации

Компания Microsoft впервые включила сервер DHCP в поставку серверной версии Windows NT 3.5, выпущенной в 1994 году. Начиная с Windows 2000 Server реализация DHCP-сервера от Microsoft позволяет динамически обновлять записи DNS, что используется в Active Directory.

Internet Systems Consortium выпустил первую версию ISC DHCP Server (для Unix-подобных систем) 6 декабря 1997 года. 22 июня 1999 года вышла версия 2.0, более точно соответствующая стандарту.

Компания Cisco включила сервер DHCP в Cisco IOS 12.0 в феврале 1999 года. (Sun) Sun Microsystems добавила DHCP-сервер в Solaris 8 в июле 2001 года.

В настоящее время существуют реализации сервера DHCP для ОС Windows в виде отдельных программ, в том числе открытых, позволяющих выполнять роль сервера DHCP компьютерам под управлением не серверных версий данной ОС.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *