DHCP сервер что это и как работает

DHCP сервер что это и как работает
0
8

DHCP-сервер (Dynamic Host Configuration Protocol, протокол динамической настройки узла) автоматически назначает устройствам IP-адреса и передаёт параметры подключения к сети. Если объяснять, DHCP что это простыми словами, то это служба, которая избавляет администратора от ручной настройки каждого компьютера, телефона и принтера. Название произносят по буквам: «ди-эйч-си-пи».

Для чего нужен DHCP-сервер

Без DHCP сетевые параметры пришлось бы задавать вручную на каждом устройстве. При этом нужно следить, чтобы адреса не повторялись, маска соответствовала подсети, а шлюз и DNS были указаны правильно.

Например, в офисе на 50 устройств администратор вручную прописывал бы адреса на компьютерах, ноутбуках, принтерах и телефонах, а после замены оборудования или смены шлюза обходил бы их заново.

Назначение протокола DHCP — выдавать сетевые параметры из одного места: сервер хранит настройки подсети и распределяет адреса между клиентами.

Обычно DHCP выдаёт:

  • IP-адрес (IP address), по которому устройство взаимодействует с узлами сети.
  • Маску подсети (subnet mask), определяющую границы IPv4-подсети.
  • Шлюз по умолчанию (default gateway), через который проходит трафик в другие сети.
  • DNS-серверы, используемые для разрешения доменных имён.
  • Время аренды (lease time), в течение которого клиент может использовать выданный адрес.

Дополнительно можно передавать домен поиска DNS, параметры времени и другие настройки.

DHCP сервер что это и как работает
Параметры, которые DHCP-сервер передаёт устройству при подключении

Как работает DHCP и четыре этапа DORA

При первом подключении устройства к IPv4-сети обычно выполняется обмен DORA. Аббревиатура образована от названий четырёх сообщений.

Схема работы DHCP

1. Клиент → сервер: DHCPDISCOVER

2. Сервер → клиент: DHCPOFFER

3. Клиент → сервер: DHCPREQUEST

4. Сервер → клиент: DHCPACK

DHCP сервер что это и как работает
Как клиент получает IP-адрес за четыре сообщения DORA

Здесь показан самый простой случай: клиент и DHCP-сервер находятся в одной локальной сети. В больших сетях сервер часто стоит в другой подсети, и запросы к нему передаёт посредник, relay agent. Если у клиента ещё нет IP-адреса, ответ обычно рассылается всем устройствам в сети, если адрес уже есть, ответ отправляется напрямую клиенту. 

  1. Discover. Клиент отправляет DHCPDISCOVER, чтобы найти доступные серверы. Сообщение передаётся широковещательно (broadcast), поскольку у устройства ещё нет настроенного IPv4-адреса.
  2. Offer. Сервер отвечает DHCPOFFER и предлагает свободный адрес вместе с параметрами сети. В зависимости от условий ответ может быть broadcast или unicast.
  3. Request. Клиент выбирает предложение и отправляет DHCPREQUEST. На начальном этапе сообщение обычно широковещательное. Оно содержит идентификатор выбранного сервера, чтобы остальные DHCP-серверы могли освободить свои предложения.
  4. Acknowledge. Выбранный сервер подтверждает выдачу адреса сообщением DHCPACK. В нём содержатся параметры подключения и срок аренды. После проверки адреса клиент начинает использовать конфигурацию.

Другие сообщения DHCP

Помимо основного обмена, протокол предусматривает дополнительные сообщения:

  • DHCPNAK (Negative Acknowledgment) сообщает, что запрошенную конфигурацию нельзя подтвердить. Клиенту может потребоваться начать получение адреса заново.
  • DHCPDECLINE отправляет клиент, если обнаруживает, что предложенный IP уже используется. Сервер должен пометить адрес как потенциально занятый и проверить ситуацию.
  • DHCPRELEASE клиент отправляет серверу, когда добровольно отказывается от аренды. Обычно это unicast.
  • DHCPINFORM используется устройством с уже настроенным IP-адресом, чтобы запросить дополнительные параметры. В ответ сервер присылает DHCPACK.

По какому протоколу работает DHCP

DHCPv4 использует UDP (User Datagram Protocol) поверх IP. В модели OSI DHCP относят к прикладному уровню. Споры возникают из-за того, что сообщения проходят через транспортный и сетевой уровни, но это не меняет классификацию протокола.

DHCP порт зависит от направления передачи:

  • UDP 67: серверный порт, на который поступают запросы.
  • UDP 68: клиентский порт, используемый для ответов.

Relay agent принимает запросы клиентов на порт 67 и пересылает их серверу тоже на порт 67. Ответ клиенту он отправляет на порт 68.

Если DHCP не работает, стоит проверить фильтрацию UDP 67 и 68, настройки VLAN и доступность сервера.

★ Где этому научиться

Курс «Сетевой инженер» в Академии IT DMS

✓Настройка коммутаторов и маршрутизаторов с нуля
✓Безопасные сети предприятий, VPN для филиалов и удалённых сотрудников
✓Поиск неисправностей и отказоустойчивость сетей

Сертификат, диплом о переподготовке или удостоверение о повышении квалификации.

Перейти к курсу →ПромокодAFFTIMES

−5 % на первую покупку. Скидка суммируется с любыми акциями школы. Если оплачиваете через менеджера в чате, назовите ему промокод.

Пул адресов DHCP и резервирование

Пул (address pool) — набор IP-адресов, доступных для выдачи. Диапазон адресов DHCP (range) задаёт границы распределения, а область (scope) обычно включает саму подсеть, пул, исключения и параметры конфигурации.

Например, для сети 192.168.10.0/24 можно выделить пул 192.168.10.100–192.168.10.200. Адрес 192.168.10.1 оставить шлюзу, а диапазон 192.168.10.2–192.168.10.30 использовать для серверов и оборудования с фиксированной адресацией.

Исключения (exclusions) выводят отдельные адреса из динамического распределения. Они нужны, чтобы сервер не выдал адрес, уже назначенный другому устройству вручную.

Резервирование IP по MAC-адресу

Резервирование (reservation) связывает сетевой адрес с идентификатором клиента. Часто используется MAC-адрес, хотя DHCP может идентифицировать клиента и по другому значению, например Client Identifier.

Администратор закрепляет адрес за принтером, NAS или рабочей станцией. При каждом подключении устройство получает один и тот же IP.

Резервирование удобнее ручной статики: настройки хранятся централизованно, а шлюз, DNS и другие параметры можно менять на сервере.

При этом MAC-адрес можно подменить, поэтому резервирование само по себе не является средством аутентификации.

DHCP сервер что это и как работает
Пример распределения адресов: шлюз, исключения, пул и резервирование

Время аренды DHCP и продление IP

Срок аренды определяет, как долго клиент вправе использовать адрес. Сервер хранит сведения о выданных адресах и сроках их действия. В Linux DHCP leases могут сохраняться в файле или базе данных, в зависимости от реализации. Например, ISC DHCP использует файл dhcpd.leases, а Kea поддерживает различные способы хранения аренд.

Когда клиент получает адрес, он рассчитывает моменты продления:

  • T1, по умолчанию 50% срока аренды. Клиент пытается продлить аренду у первоначального сервера, отправляя DHCPREQUEST по unicast.
  • T2, по умолчанию 87,5% срока. Если продление не удалось, клиент переходит к повторному связыванию и рассылает DHCPREQUEST широковещательно, чтобы обратиться к доступному серверу.
  • Истечение аренды. Если продлить её не удалось, клиент должен прекратить использование адреса.

Например, при аренде 24 часа T1 наступает через 12 часов, а T2 через 21 час» (87,5% от 24 часов — ровно 21. Значения по умолчанию могут быть изменены сервером. Клиенты также могут обновлять аренду раньше.

DHCP сервер что это и как работает

Какой срок аренды выбрать

СетьПрактический ориентир
Домашняя24 часа
Офис1–7 дней
Гостевой Wi-Fi1–8 часов

Срок по умолчанию в домашних роутерах у разных производителей разный, от нескольких часов до суток.

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

DHCP options и параметры сети

DHCP options (опции DHCP) передают дополнительные сведения клиенту. Основные номера определены в RFC 2132, а некоторые расширения описаны в других стандартах.

НомерНазначение
1Маска подсети
3Маршрутизаторы, обычно шлюз по умолчанию
6DNS-серверы
15Доменное имя
42Серверы времени NTP
43Параметры производителя (Vendor Specific Information)
51Время аренды IP
66Имя TFTP-сервера
67Имя загрузочного файла
82Информация от relay agent

Опции 66 и 67 нужны для загрузки по сети (PXE) и автонастройки IP-телефонов: из них клиент узнаёт, с какого TFTP-сервера и какой файл скачать.

Опция 82 (Relay Agent Information) передаёт дополнительную информацию о подключении клиента, например идентификатор коммутатора и порта. Это помогает применять разные политики выдачи адресов и учитывать, откуда поступил запрос.

Отдельно используется опция 12, Host Name. Она позволяет передать имя хоста. Имя устройства и его DNS-имя не всегда совпадают, регистрация имени в DNS зависит от настроек DHCP и DNS.

DHCP relay agent для нескольких VLAN

Широковещательные DHCP-запросы не выходят за пределы своей VLAN: маршрутизатор их не пересылает. Если в офисе есть несколько VLAN, а DHCP-сервер расположен в отдельной серверной подсети, клиентские запросы нужно доставить через маршрутизатор или L3-коммутатор.

Для этого используют DHCP relay agent, ретранслятор DHCP.

Как работает DHCP relay

  1. Клиент в VLAN 20 отправляет DHCPDISCOVER.
  2. Relay agent принимает запрос и пересылает его DHCP-серверу, указывая информацию о клиентской подсети.
  3. Сервер выбирает пул с учётом сведений о подсети и формирует ответ.
  4. Ответ поступает ретранслятору, который доставляет его клиенту.

В IPv4 для определения подсети используется, в частности, поле giaddr. Relay также может передавать опцию 82, если она настроена.

На Cisco IOS для этого применяется команда ip helper-address на интерфейсе клиентской VLAN:

interface Vlan20

 ip address 192.168.20.1 255.255.255.0

 ip helper-address 192.168.10.10

Здесь 192.168.10.10 — адрес DHCP-сервера. На сервере должен существовать scope для 192.168.20.0/24, а маршрутизация и правила доступа должны обеспечивать обмен.

DHCP сервер что это и как работает
DHCP relay пересылает запрос клиента на сервер в другой подсети

По умолчанию ip helper-address пересылает не только DHCP, но и ещё несколько UDP-служб, например DNS, TFTP и NetBIOS. Лишние отключают командой no ip forward-protocol udp <порт>.

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

DHCP в роутере и домашней сети

В большинстве домашних маршрутизаторов DHCP-сервер уже включён. Его настройки обычно находятся в разделах LAN, Локальная сеть, DHCP Server или Сеть.

В панели управления можно задать:

  • включение или отключение DHCP;
  • начальный и конечный адрес пула;
  • срок аренды;
  • шлюз и DNS;
  • резервирования для отдельных устройств.

Нужно ли включать DHCP

Если роутер является основным маршрутизатором домашней сети, DHCP обычно следует оставить включённым. Он выдаёт адреса устройствам в локальной подсети.

Отключение требуется в некоторых конфигурациях:

  • второй роутер работает как точка доступа;
  • DHCP выдаёт отдельный сервер;
  • адреса распределяются централизованно средствами сетевой инфраструктуры.

Практический случай: два роутера подключили друг к другу LAN-портами и оставили на обоих DHCP. Компьютер получает предложение от одного, а телефон от другого. В результате устройства могут получить разные шлюзы и DNS, а часть пользователей теряет доступ к интернету или внутренним ресурсам.

Для обычной схемы с одним домашним маршрутизатором второй роутер переводят в режим точки доступа (Access Point), если он поддерживает этот режим. При ручной настройке проверяют схему подключения, адрес управления и отключают лишний DHCP-сервер.

Тип подключения DHCP, статический IP и PPPoE

В настройках WAN роутера встречаются три варианта подключения к провайдеру. Они определяют, каким способом маршрутизатор получает параметры внешнего интерфейса.

ТипКак работаетКогда применяется
DHCPПровайдер автоматически выдаёт IP и параметры сетиДомашний интернет, Ethernet-подключение
Статический IPАдрес и другие параметры задаются вручнуюТариф с фиксированным адресом, корпоративный доступ
PPPoEСоединение устанавливается по PPPoE, обычно с логином и паролемСети провайдеров, где используется PPPoE
DHCP сервер что это и как работает
Сравнение трёх типов подключения к провайдеру

DHCP или статический IP, что лучше

При динамической адресации провайдер может менять внешний IP после переподключения или истечения аренды.

Статический IP удобен, когда нужен постоянный адрес для удалённого доступа, VPN или публикации сервисов. Он может предоставляться отдельно и требовать дополнительных настроек.

PPPoE использует отдельную процедуру установления соединения и аутентификацию. При этом IP-параметры внутри PPP-сессии могут назначаться автоматически.

Тип подключения указан в договоре или инструкции провайдера. Если адрес выдаётся автоматически, выбирают DHCP. Если провайдер выдал логин и пароль, нужен PPPoE.

Где применяется DHCP

DHCP используется в сетях разного масштаба:

  • Домашние сети. Роутер выдаёт адреса компьютерам, смартфонам, телевизорам и другим устройствам.
  • Офисы. Windows Server DHCP, Linux-серверы или сетевое оборудование централизованно распределяют адреса между VLAN.
  • Провайдеры. DHCP применяется для выдачи адресов абонентским устройствам и клиентским интерфейсам, в том числе в определённых архитектурах доступа.
  • Серверная инфраструктура. DHCP используют при установке ОС по сети, автоматической настройке рабочих узлов и подключении тестовых стендов.

В Windows Server служба DHCP управляется через серверные инструменты и оснастку DHCP. В Linux применяются, например, Kea DHCP и другие DHCP-серверы. ISC DHCP до сих пор работает во многих сетях, но разработчик прекратил его поддержку в 2022 году и рекомендует переходить на Kea.

Безопасность DHCP и типовые угрозы

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

Основные угрозы:

  • Rogue DHCP. Чужой сервер выдаёт клиентам неверный шлюз или DNS. Это может привести к перехвату трафика или потере доступа к ресурсам.
  • DHCP starvation. Злоумышленник отправляет большое количество запросов с разными идентификаторами клиентов и пытается исчерпать пул адресов.

Как работает DHCP snooping

DHCP snooping есть в большинстве управляемых коммутаторов. Администратор отмечает доверенные порты (trusted), через которые разрешены ответы DHCP-сервера, а клиентские порты оставляет недоверенными (untrusted).

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

Snooping не заменяет сегментацию сети и контроль доступа. При настройке нужно корректно обозначить доверенные интерфейсы, включая соединения с легитимными relay и DHCP-серверами.

DHCP сервер что это и как работает
Коммутатор отбрасывает ответы чужого DHCP-сервера с недоверенного порта

Диагностика DHCP в Windows и Linux

Если компьютер не получает адрес, сначала проверьте физическое соединение, состояние сетевого интерфейса и VLAN. Затем переходите к настройкам клиента и сервера.

Windows

Команда ipconfig /all показывает текущую конфигурацию, включая DHCP Enabled, адрес DHCP-сервера, срок аренды и DNS.

ipconfig /all

ipconfig /release

ipconfig /renew

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

Сообщение «DHCP не включён» в Windows обычно означает, что на интерфейсе отключено автоматическое получение IPv4-адреса. Проверьте свойства адаптера: получение IP и DNS должно быть автоматическим, если сеть использует DHCP.

Что означает адрес 169.254.x.x

Адрес из диапазона 169.254.0.0/16 относится к IPv4 link-local, который Windows может назначить автоматически при неудачном получении конфигурации DHCP.

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

Возможные причины:

  • DHCP-сервер выключен или недоступен;
  • закончились свободные адреса;
  • не работает relay или неверно настроена VLAN;
  • запросы блокирует ACL или межсетевой экран;
  • неисправен кабель, порт или беспроводное подключение.
DHCP сервер что это и как работает
Порядок проверки, если устройство не получает IP-адрес по DHCP

Диагностика в Linux

Для клиента, использующего dhclient, можно выполнить:

sudo dhclient -r

sudo dhclient

Первая команда освобождает аренду, вторая запрашивает конфигурацию. Эти команды применимы, если в системе используется dhclient. NetworkManager, systemd-networkd и другие менеджеры сети могут выполнять настройку самостоятельно.

При углублённой диагностике полезно проверить:

  • наличие DHCPDISCOVER и DHCPOFFER в захвате пакетов;
  • журналы DHCP-сервера;
  • свободные адреса в пуле;
  • состояние relay и маршрутизации;
  • правила фильтрации UDP 67 и 68.

Для захвата трафика на Linux используют, например:

sudo tcpdump -ni any 'udp port 67 or udp port 68'

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

DHCPv6 и SLAAC в IPv6

В IPv6 автоматическая настройка адресов устроена иначе. DHCPv6 использует UDP 546 на клиенте и UDP 547 на сервере или relay.

Клиенты могут получать IPv6-адреса через DHCPv6 либо формировать их самостоятельно с помощью SLAAC (Stateless Address Autoconfiguration), используя объявления маршрутизатора RA.

DHCPv6 также поддерживает выдачу дополнительных параметров. При этом шлюз по умолчанию обычно определяется через Router Advertisement, а не через DHCPv6.

Аналога APIPA в IPv6 нет. Он и не нужен: link-local адрес из диапазона fe80::/10 есть у каждого интерфейса всегда, независимо от DHCPv6.

Лиля Райн
Лиля Райн
Автор
(Проголосовать за статью)

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

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

X