DHCP — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Новая страница: «==Алгоритм работы== right|Алгоритм получения IP адреса. * Клиент посылает в сво...»)
 
Строка 1: Строка 1:
 +
[[Файл:Dhcp_model.png|right|DHCP в модели OSI и стеке TCP/IP.]]
 +
 +
'''DHCP''' (англ. ''Dynamic Host Configuration Protocol'' — протокол динамической настройки узла) — сетевой протокол, позволяющий компьютерам автоматически получать IP-адрес и другие параметры, необходимые для работы в сети.
 +
 +
Был предложен в 1993 г., и наиболее полное современное описание DHCP содержится в документе RFC 2131 (март 1997 г.).
 +
 +
DHCP является расширением протокола [[BOOTP]], использовавшегося ранее для обеспечения бездисковых рабочих станций IP-адресами при их загрузке, и сохраняет с ним обратную совместимость.
 +
 +
Цель DHCP {{---}} устранить два основных ограничения, накладывающихся на другие анагологичные протоколы, а именно: отсутствие поддержки динамического назначения IP-адресов и возможность передавать от сервера на станцию-клиент лишь небольшое число параметров конфигурации.
 +
 +
 +
 +
 +
==Архитектура==
 +
 +
[[Файл:Dhcp_arch.png|left|Архитектура DHCP.]]
 +
 +
Работа протокола DHCP базируется на классической схеме '''клиент-сервер'''.
 +
 +
* В роли '''клиентов''' выступают компьютеры сети, стремящиеся получить IP-адреса в так называемую аренду ('''lease''').
 +
 +
* '''DHCP-серверы''' выполняют функции диспетчеров, которые выдают адреса, контролируют их использование и сообщают клиентам требуемые параметры конфигурации.
 +
 +
Сервер поддерживает пул свободных адресов и, кроме того, ведет собственную регистрационную базу данных.
 +
 +
 +
 +
 +
 +
 +
==Сообщения==
 +
 +
Взаимодействие DHCP-серверов с клиентами осуществляется путем обмена '''сообщениями'''.
 +
 +
Структура сообщения показана на рисунке, где в скобках указан размер поля в байтах.
 +
 +
Опишем подробнее поля:
 +
 +
[[Файл:Dhcp_message.gif|right|Сообщение DHCP.]]
 +
 +
{| class="wikitable"
 +
!Поле
 +
!Описание
 +
|-
 +
|op
 +
|Тип сообщения (1 = BOOTREQUEST, 2 = BOOTREPLY)
 +
|-
 +
|htype
 +
|Тип адреса оборудования
 +
|-
 +
|hlen
 +
|Длина адреса оборудования
 +
|-
 +
|hops
 +
|Используется ретранслирующим агентом
 +
|-
 +
|xid
 +
|Идентификатор транзакции между сервером и клиентом
 +
|-
 +
|secs
 +
|Время с момента выдачи DHCPREQUEST или начала обновления конфигурации
 +
|-
 +
|flags
 +
|Флаги (первый бит маркирует широковещательные сообщения)
 +
|-
 +
|ciaddr
 +
|IP-адрес клиента
 +
|-
 +
|yiaddr
 +
|<Ваш> (клиентский) IP-адрес
 +
|-
 +
|siaddr
 +
|IP-адрес следующего сервера, участвующего в загрузке
 +
|-
 +
|giaddr
 +
|IP-адрес ретранслирующего агента
 +
|-
 +
|chaddr
 +
|<Аппаратный> адрес клиента
 +
|-
 +
|sname
 +
|Хост-имя сервера (опция)
 +
|-
 +
|file
 +
|Имя загрузочного файла
 +
|-
 +
|options
 +
|Поле дополнительных параметров
 +
|}
 +
 +
В роли транспортного протокола для обмена DHCP-сообщениями выступает '''UDP'''.
 +
* при отправке сообщения с клиента на сервер используется 67-й порт DHCP-сервера;
 +
* при передаче в обратном направлении - 68-й.
 +
 +
Эти номера портов, как и схожая структура сообщений, обеспечивают обратную совместимость DHCP с BOOTP. Конкретные процедуры взаимодействия клиентов и серверов BOOTP и DHCP регламентирует документ RFC 1542.
 +
 
==Алгоритм работы==
 
==Алгоритм работы==
 
[[Файл:dhcp_algo.gif|right|Алгоритм получения IP адреса.]]
 
[[Файл:dhcp_algo.gif|right|Алгоритм получения IP адреса.]]

Версия 19:32, 11 декабря 2016

DHCP в модели OSI и стеке TCP/IP.

DHCP (англ. Dynamic Host Configuration Protocol — протокол динамической настройки узла) — сетевой протокол, позволяющий компьютерам автоматически получать IP-адрес и другие параметры, необходимые для работы в сети.

Был предложен в 1993 г., и наиболее полное современное описание DHCP содержится в документе RFC 2131 (март 1997 г.).

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

Цель DHCP — устранить два основных ограничения, накладывающихся на другие анагологичные протоколы, а именно: отсутствие поддержки динамического назначения IP-адресов и возможность передавать от сервера на станцию-клиент лишь небольшое число параметров конфигурации.



Архитектура

Архитектура DHCP.

Работа протокола DHCP базируется на классической схеме клиент-сервер.

  • В роли клиентов выступают компьютеры сети, стремящиеся получить IP-адреса в так называемую аренду (lease).
  • DHCP-серверы выполняют функции диспетчеров, которые выдают адреса, контролируют их использование и сообщают клиентам требуемые параметры конфигурации.

Сервер поддерживает пул свободных адресов и, кроме того, ведет собственную регистрационную базу данных.




Сообщения

Взаимодействие DHCP-серверов с клиентами осуществляется путем обмена сообщениями.

Структура сообщения показана на рисунке, где в скобках указан размер поля в байтах.

Опишем подробнее поля:

Сообщение DHCP.
Поле Описание
op Тип сообщения (1 = BOOTREQUEST, 2 = BOOTREPLY)
htype Тип адреса оборудования
hlen Длина адреса оборудования
hops Используется ретранслирующим агентом
xid Идентификатор транзакции между сервером и клиентом
secs Время с момента выдачи DHCPREQUEST или начала обновления конфигурации
flags Флаги (первый бит маркирует широковещательные сообщения)
ciaddr IP-адрес клиента
yiaddr <Ваш> (клиентский) IP-адрес
siaddr IP-адрес следующего сервера, участвующего в загрузке
giaddr IP-адрес ретранслирующего агента
chaddr <Аппаратный> адрес клиента
sname Хост-имя сервера (опция)
file Имя загрузочного файла
options Поле дополнительных параметров

В роли транспортного протокола для обмена DHCP-сообщениями выступает UDP.

  • при отправке сообщения с клиента на сервер используется 67-й порт DHCP-сервера;
  • при передаче в обратном направлении - 68-й.

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

Алгоритм работы

Алгоритм получения IP адреса.
  • Клиент посылает в свою подсеть широковещательное сообщение DHCPDISCOVER, в котором могут указываться устраивающие клиента IP-адрес и срок его аренды. В качестве IP-адреса источника указывается 0.0.0.0, в качестве адреса назначения - 255.255.255.255. Если DHCP-сервер отсутствует в подсети, то сообщение будет передано в другие подсети агентами протокола BOOTP.
  • Получив запрос от клиента, DHCP-сервер отвечает на него сообщением DHCPOFFER. В сообщение включается предлагаемый IP-адрес (yiaddr) и прочие конфигурации для клиента (адреса маршрутизаторов, DNS-серверов и т.д.).
    • На данном этапе сервер не обязан резервировать адрес, который он отправил клиенту.
  • Получив конфигурации от серверов (их может быть несколько, если в подсети более одного DHCP-севрера), клиент отправляет широковещательное сообщение DHCPREQUEST. В нем содержатся идентификатор выбранного сервера и, возможно, желательные значения запрашиваемых параметров конфигурации.
    • На данном этапе допускается, что клиента не устроит ни один из предложенных адресов, тогда он вновь отправит DHCPDISCOVER.
  • Получив DHCPREQUEST и убедившись, что в сообщении его идентификатор, сервер проверяет свободен ли в данный момент запрошенный адрес. Если да, то отправляет DHCPACK и вносит запись в базу, иначе отправляет DHCPNACK.
  • Получив сообщение DHCPACK, клиент обязан убедиться в уникальности IP-адреса (средствами протокола ARP) и зафиксировать суммарный срок его аренды.
    • Срок аренды: время, прошедшее между отправкой сообщения DHCPREQUEST и приемом ответного сообщения DHCPACK + срок аренды, указанный в DHCPACK.
    • Если адрес уже используется другой станцией, клиент отправляет DHCPDECLINE и начинает всю процедуру снова.
  • Для досрочного прекращения аренды адреса клиент отправляет серверу сообщение DHCPRELEASE.