Dynamic Host Configuration Protocol

Протокол DHCP — это стандартизированный клиент-серверный протокол, позволяющий серверу динамически распределять IP-адреса и сведения о конфигурации (параметры) клиентам. Параметры выдаются в виде опций формате TLV и их подопций.

Компоненты DHCP:

  • DHCP-клиент — запрашивает настройки TCP/IP;
  • DHCP-сервер — сервер, выдающий параметры настройки TCP/IP;
  • DHCP-ретранслятор — посредник во взаимодействии клиента и сервера. Ретранслятор используется, когда у клиента нет возможности обратиться к DHCP-серверу напрямую, в частности, когда клиент и сервер располагаются в разных широковещательных доменах. В роли ретранслятора могут выступать маршрутизаторы.

Для своей работы DHCP использует протокол UDP:

  • Сообщения от клиента к серверу — порт сервера 67 UDP,
  • Cообщения от сервера клиенту — порт клиента UDP 68.

По умолчанию сообщения DHCP ограничены текущей подсетью. Для своей работы DHCP использует широковещательные (broadcast) сообщения, а маршрутизаторы не пропускают широковещательный трафик за пределы широковещательного домена.

DHCP определён в RFC 1541 (заменён на RFC 2131) и RFC 2132 (опции DHCP),

Широковещательный домен (broadcast domain) — область сети, в которой все узлы могут общаться между собой с помощью широковещательных сообщений, без участия маршрутизатора. Обычно широковещательному домену соответствует физическая или логическая подсеть.

 |625

Рисунок — Процесс DHCP маршрутизации


Параметры, передаваемые клиентом, содержатся в пакетах DHCP Discovery и Request:

  • CHADDR — Client HW address клиента (MAC) в теле пакета (совпадает с CRS MAC в заголовке кадра при отправке от клиента).
  • Option 61 — Client Identified (Client ID), уникальный идентификатор клиента в домене.
  • Option 12 — Host name, имя хоста клиента.
  • Option 55 — Parameter Request Field, список опций, запрашиваемых клиентом.

При ретрансляции DHCP Relay/Proxy параметры CHADDR и Option 61 передаются без изменений.

Параметры, передаваемые клиенту содержаться в пакетах DHCP OFFER и ACK:

  • IP адрес/маска подсети (IP-адрес в десятичном формате с точками, опция 1).
  • Разница во времени в подсети клиента по сравнению с Универсальным скоординированным временем (UTC) (опция 2).
  • IP-адрес (а) шлюза (ов) по умолчанию (Один или несколько IP-адресов в десятичном формате с точками, опция 3).
  • Срок аренды адреса (IP Address Lease Time, опция 51).
  • Имя домена (DNS Domain Name, опция 15).
  • Домены поиска (DNS Search Domain, опция 119).
  • Адреса DNS серверов (опция 6).
  • Адреса NTP серверов времени (опция 42).
  • Адреса серверов TFTP (только один IP: опции 66, несколько IP: опция 150 (cisco proprietary)).
  • Названия файла загрузки с TFTP сервера (опция 67).
  • Маршрут DHCP (опция 121).
  • Адреса SIP сервера (опция 120, RFC 3361).

Параметры, передаваемые ретранслятором:

  • Опция 82 — опция протокола DHCP, используемая для того чтобы проинформировать DHCP-сервер о том, от какого DHCP-ретранслятора (Agent Remote ID) и через какой его порт (Agent Circuit ID) был получен запрос. Применяется при решении задачи привязки IP-адреса к порту коммутатора и для защиты от атак с использованием протокола DHCP (DHCP snooping).

Опция 82 состоит из двух подопций:

  • Agent Circuit ID — содержит информацию о том, с какого порта пришёл запрос на DHCP-ретранслятор.
  • Agent Remote ID — идентификатор самого DHCP-ретранслятора (который задаётся при настройке, можно например использовать MAC-адрес коммутатора или его описание, любое удобное значение).

Если на коммутаторе включено перенаправление DHCP запросов (DHCP Relay) и включена поддержка опции 82 протокола DHCP, коммутатор перехватывает DHCP запрос от пользователя, добавляет данные Option82 (Agent Circuit ID и Agent Remote ID) к DHCP пакету и перенаправляет запрос на DHCP сервер.