DHCP-сервер.
Протокол динамической конфигурации хоста DHCP (Dynamic Host Configuration Protocol) – один из основополагающих протоколов, как в локальных сетях, так и в Интернет.
Под словом «хост» в ИТ чаще всего подразумевается компьютер, иногда сервер (тоже компьютер). Почему компьютер или сервер называется «хост» (host – англ. «хозяин»), никто не знает. Вероятно, возникновение этого термина восходит ко временам больших ЭВМ (мейнфреймов), к которым тогдашние пользователи могли подключаться удалённо, например, по телефонной линии. Только вместо собственного компьютера у них был лишь алфавитно-цифровой дисплей с клавиатурой.

Рис. 1. «Менйфрейм» со множеством дисплеев.
Таких дисплеев к главному и единственному компьютеру (хосту) можно было подключить много (в режиме разделения времени), и пользователи, работающие на них, считали, что весь «мейнфрейм» находится полностью в их распоряжении. А чтобы каждый пользователь получал только предназначенную ему информацию и не мог вторгнуться в анналы другого пользователя на хосте, были придуманы различные методы разделения доступа, результатом эволюции которых явился протокол DHCP. Он был разработан в 1993 году, когда уже существовали персональные компьютеры, а «мейнфреймы» стали отходить на второй план. Поэтому термин «host» продолжал использоваться, но уже в отношении персонального компьютера.
Таким образом, DHCP – это стандартный протокол в сети с архитектурой «клиент-сервер», который динамически назначает IP-адреса и другую необходимую информацию конфигурации для новых устройств в сети. Каждое сетевое устройство должно иметь собственный, уникальный IP-адрес, чтобы в сети не возникали конфликты. IP-адрес, конечно, можно прописать для компьютера вручную, т.е. статически, и не менять его в дальнейшем. В небольших сетях, на 2-5 компьютеров, так иногда и делается. Но если компьютеров в сети десятки и сотни, то уследить за уникальностью сетевых адресов будет весьма проблематично. Хотя и в таких сетях тоже могут использоваться статические IP-адреса, например, для принтеров.
Для автоматизации процесса назначения уникальных IP-адресов устройствам, входящим в сеть, был разработан протокол DHCP, который работает на специальном сервере, называемом, соответственно, DHCP-сервер.
Протокол DHCP широко используется в повседневной жизни, причем, совершенно незаметно для обычных пользователей. Примеры его использования:
- Подключение к мобильному Интернету через смартфон;
- Использование сети коллективного доступа «вай-фай», например, в кафе или офисе;
- Подключение к домашней или корпоративной сети;
Пользователь не замечает, как его устройство получает от DHCP-сервера IP-адрес и начинает работу в сети. Бывают и ситуации, когда сетевой адрес устройства лучше прописывать постоянно и не менять, если это, например, основной сервер или принтер. Поэтому, в протоколе DHCP используется резервирование, т.е. область IP-адресов, зарезервированная для статического назначения определённым устройствам.
DHCP-сервер автоматически распределяет и обновляет IP-адреса и другую информацию конфигурации компьютеров (DHCP-клиентов) в сети. Для DHCP-клиентов эта информация предоставляется при помощи обмена сообщениями, порядок которых определяется протоколом DHCP, и такой обмен называется DHCP-транзакцией. Если DHCP-сервер и DHCP-клиент расположены в разных подсетях (subnets), то используется агент-ретранслятор DHCP (DHCP relay agent), чтобы DHCP-транзакцию можно было провести между разными подсетями.
DHCP, как определено в документе RFC 2131, был разработан на базе протокола BOOTP (Bootstrap Protocol), с помощью которого клиент может автоматически получить IP-адрес, обычно, во время загрузки компьютера.
Как работает DHCP
Архитектура DHCP включает DHCP-клиенты, DHCP-серверы и агенты-ретрансляторы DHCP. Клиент общается с DHCP-сервером используя стандартные сообщения DHCP для получения и обновления выделяемых ему IP-адресов.
DHCP-клиент
DHCP-клиент – это любое IP-устройство, подключаемое к сети, запрашивающее IP-адрес и параметры конфигурации от DHCP-сервера. Они передаются в поле Options сообщения DHCP. Это поле используется для назначения дополнительных параметров, таких как адрес IP-шлюза, адрес DNS-сервера и доменное имя DNS.
DHCP-сервер
DHCP-сервер содержит пространство (пул) IP-адресов, которые он использует по собственному усмотрению для автоматического назначения их устройствам, по мере их появления в сети. DHCP-сервер назначает устройствам в сети следующие параметры:
- IP-адрес (IP-address), назначается динамически;
- Маска подсети (subnet mask), назначается статически;
- Шлюз сети по умолчанию (default gateway), назначается статически;
- Первичный DNS-сервер (primary DNS server), назначается для связывания доменного имени и назначенного IP-адреса;
- Вторичный DNS-сервер (secondary DNS server), назначается статически для избыточности и балансировки нагрузки.
Агент-ретранслятор DHCP
Агент-ретранслятор DHCP (DHCP relay agent) передаёт сообщения DHCP между сервером и клиентами, когда они не находятся в одной подсети. Таким образом, в больших сетях, состоящих из многих подсетей, один DHCP-сервер может обслуживать всю сеть при помощи агентов-ретрансляторов, которые располагаются на граничных маршрутизаторах подсетей. В сети можно сконфигурировать до 400 агентов-ретрансляторов. Их можно использовать для защиты от спуфинг-атак, когда недоверенные компьютеры пытаются получить доступ к IP-адресам сети.
DHCP-транзакция
При DHCP-транзакции выполняются обмен следующими сообщениями между портами DHCP-сервера и DHCP-клиента:
- Обнаружение DHCP (DHCP Discover)
- Сообщение DHCP Discover посылает DHCP-клиент, которому нужен IP-адрес.
- Исходный адрес – 0.0.0.0, поскольку IP-адрес клиенту пока не назначен.
- Адрес обращения – 255.255.255.255, то есть адрес общей рассылки. По какому адресу DHCP-сервер находится, клиент пока не знает, т.к. только он что вошёл в сеть. Поэтому он обращается сразу ко всем устройствам в сети.
- Сообщение DHCP Discover передаётся с порта 68 DHCP-клиента на порт 67 DHCP-сервера.
- Предложение DHCP (DHCP Offer)
- Сообщение DHCP Offer посылает DHCP-сервер, предлагая IP-адрес DHCP-клиенту, причём на предыдущий апрос DHCP Discover могут ответить сразу несколько DHCP-серверов.
- Исходный адрес – существующий адрес DHCP-сервера, например, 192.168.0.1.
- Адрес обращения – 255.255.255.255, поскольку адрес DHCP-клиента серверу пока неизвестен поэтому, он посылает сообщение DHCP Offer в виде общей рассылки на все устройства в сети.
- Сообщение DHCP Offer передаётся с порта 67 DHCP-сервера на порт 68 DHCP-клиента.
- Запрос DHCP (DHCP Request)
- Сообщение DHCP Request посылает DHCP-клиент, сообщая DHCP-серверу о том, что он принимает предложенный IP-адрес.
- Исходный адрес на этом этапе по-прежнему 0.0.0.0, и DHCP-клиент посылает сообщение DHCP Request на все устройства в сети, сообщая другим DHCP-серверам (если их в сети несколько, и они также могут предлагать IP-адреса), об окончании процесса их предложения.
- Адрес обращения – 255.255.255.255, то есть DHCP Request посылается на все устройства в сети.
- Сообщение DHCP Request передаётся с порта 68 DHCP-клиента на порт 67 DHCP-сервера.
- Подтверждение DHCP (DHCP Acknowledge)
- Сообщение DHCP Acknowledge посылает DHCP-сервер, подтверждая DHCP-клиенту назначенный ему IP-адрес, а также сообщая другие детали, такие как маска подсети, шлюз по умолчанию и время назначения (lease time) для клиента.
- Исходный адрес – существующий адрес DHCP-сервера, например, 192.168.0.1.
- Адрес обращения – 255.255.255.255, то есть сообщение DHCP Acknowledge посылается на все устройства в сети.

Рис. 2. Процесс DHCP-транзакции.
Возобновление назначения IP-адреса
Если клиенту нужно продлить время назначения (lease time), по истечении примерно 50% времени назначения IP-адреса, он должен выполнить процедуру возобновления назначения (lease renewal). При этом выполняется более простая процедура, чем начальное назначение IP-адреса.
Клиент посылает на DHCP-сервер запрос DHCP REQUEST, в котором указан назначенный ему ранее IP-адрес. Это сообщение отправляется только на сервер, выдавший этот адрес при назначении, а не по общей рассылке. Если сервер имеет возможность вновь назначить тот же IP-адрес, то он сразу же посылает сообщение DHCP ACK.
Освобождение IP-адреса
Если клиенту более не нужен назначенный ему IP-адрес, то он посылает сообщение об освобождении IP-адреса DHCP RELEASE на DHCP-сервер. После этого этот IP-адрес может быть назначен другому устройству при следующем запросе DHCP-сервера.
Конфигурация DHCP
При DHCP-транзакции могут конфигурироваться DHCP-серверы, DHCP-клиенты, агенты-ретрансляторы (Relay agent), а также пороги ограничения времени назначения (Short lease threshold).
Конфигурация DHCP-клиента
Интерфейс на сетевом устройстве может быть сконфигурирован либо со статическим (постоянным), либо динамическим IP-адресом, а также другими параметрами в поле Option сообщения DHCP:
Код параметра в поле Option |
Описание |
1 |
Маска подсети для устройства (subnet mask) |
3 |
Список маршрутизаторов по умолчанию |
6 |
Список серверов DNS |
15 |
Имя домена, используемой для определения имён хостов в нём, либо список доменов. |
51 |
Истечение заданного времени назначения (lease time) |
Конфигурация DHCP-сервера
Для назначения IP-адресов клиентам, DHCP-сервер использует пул адресов. Этот пул содержит определённые параметры конфигурации, которые DHCP-сервер может назначать клиентам. Таких пулов на сервере может быть несколько для обслуживания разных сетей.
Конфигурация пула адресов предусматривает следующее:
- Создание пула и вхождение в его режим конфигурации.
- Определение сети, для которой предназначен этот пул.
- Определение диапазона IP-адресов, которые DHCP-сервер может назначать DHCP-клиентам. Можно также назначить несколько диапазонов для каждого пула.
- Установка вида назначения (lease) для клиентов, который определяет, получает ли клиент IP-адрес динамически, статически или постоянно.
- Динамический IP-адрес может использоваться клиентом в течение ограниченного времени, по истечению которого сервер может переназначить этот адрес для другого устройства;
- Постоянный IP-адрес назначается устройству на неограниченное время;
- Статический IP-адрес назначается определённым клиентам. DHCP-сервер может распознать клиента по его МАС-адресу (фиксированному адресу, встроенному в устройство). Это может делаться для ключевых устройств в сети, например, для серверов, принтеров и пр.
- Установка параметров (Options, стандартных или пользовательских), которые клиенты пула будут запрашивать при конфигурации.
Конфигурация агента-ретранслятора
Агент-ретранслятор DHCP передает сообщения протокола BOOTP между серверами и клиентами. Если в сети серверы DHCP и BOOTP не находятся в одной и той же подсети, то необходимы маршрутизаторы на границе подсетей, которые будут выполнять функции агента-ретранслятора адресов. Оба протокола, BOOTP и DHCP, используют сообщения BOOTP, что позволяет агенту-ретранслятору передавать все их пакеты.
Конфигурация порога короткого времени назначения (short lease threshold)
Время короткого назначения (short lease time) конфигурируется для различных ситуаций, например, для бесплатного доступа wifi в кафе. Можно назначить, например, один час бесплатного доступа, после чего пользователю будет необходимо вновь регистрироваться в сети. В условиях предприятия время назначения можно задавать в пределах дней или недель.
В некоторых сетях находится много мобильных устройств, которые многократно запрашивают IP-адрес, до того, как их время назначения истекает. Такое может случаться, если устройства покидают зону wifi на короткое время и снова возвращаются, либо связь теряется в случае нестабильности радиосигнала wifi в разных помещениях в зоне действия беспроводной сети.
Это означает, что один и тот же IP-адрес может иметь несколько времен назначения, что может занимать много места в системе резервирования файлов. Для этого установки времен назначения необходимо сохранять в постоянной памяти, чтобы, например, в случае перезагрузки DHCP-сервера или сбое питания, он не будет терять информацию о временах назначения IP-адресов для клиентов.
Можно сделать и так, что устройство будет просто запрашивать новый адрес при необходимости. В этом случае, можно установить порог кроткого времени назначения (short lease threshold), которое может составлять от 1 минуты до 24 часов. В этом случае, любое время назначения не превышающее порог short lease threshold, не будет сохраняться в резервной постоянной памяти.
Решение DDI
Основными элементами управления в IP-сетях являются DNS, DHCP и управление IP-адресами IPAM (IP address management). Эти элементы тесно связаны друг с другом. Однако, раздельное управление этими элементами создает много проблем в плане эффективности и операционными рисками, например:
- Ограниченная и раздельная видимость размещенных ресурсов в сети, что ограничивает возможности планирования и разворачивания новых сервисов;
- Неэффективное общее управление размещением IP-адресов и конфигурацией DNS- и DHCP-серверов, что приводит к конфликтам в сети;
- Ручное выполнение многих задач по администрированию сетей, что занимает много времени и снижает эффективность бизнеса;
- Слабые механизмы резервирования DNS и DHCP, что создает высокие риски нестабильности IP-сервисов;
- Проблемы масштабирования, сложности администрирования пространств из миллионов IP-адресов, со множеством DNS-DHCP серверов;
- Ограничение в автоматизации предоставления облачных услуг вследствие не интегрированных IP-ресурсов в процессах провиженинга облачных сервисов.
Решение DDI даёт возможность интегрированного администрирования DNS-DHCP-IPAM и сетевых интерфейсов устройств в едином процессе. При этом можно достигнуть высокой доступности, эластичности в масштабировании ресурсов сети в едином процессе администрирования на основе задаваемых политик. Кроме того, такое решение может значительно повысить «видимость» управления на базе единой панели администрирования и общую «целостность» сети.