DHCP-сервер.

Протокол динамической конфигурации хоста DHCP (Dynamic Host Configuration Protocol) – один из основополагающих протоколов, как в локальных сетях, так и в Интернет.

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

Рис. 1. «Менйфрейм» со множеством дисплеев.

Рис. 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-клиента:

  1. Обнаружение DHCP (DHCP Discover)
    • Сообщение DHCP Discover посылает DHCP-клиент, которому нужен IP-адрес.
    • Исходный адрес – 0.0.0.0, поскольку IP-адрес клиенту пока не назначен.
    • Адрес обращения – 255.255.255.255, то есть адрес общей рассылки. По какому адресу DHCP-сервер находится, клиент пока не знает, т.к. только он что вошёл в сеть. Поэтому он обращается сразу ко всем устройствам в сети.
    • Сообщение DHCP Discover передаётся с порта 68 DHCP-клиента на порт 67 DHCP-сервера.
  2. Предложение 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-клиента.
  3. Запрос 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-сервера.
  4. Подтверждение DHCP (DHCP Acknowledge)
    • Сообщение DHCP Acknowledge посылает DHCP-сервер, подтверждая DHCP-клиенту назначенный ему IP-адрес, а также сообщая другие детали, такие как маска подсети, шлюз по умолчанию и время назначения (lease time) для клиента.
    • Исходный адрес – существующий адрес DHCP-сервера, например, 192.168.0.1.
    • Адрес обращения – 255.255.255.255, то есть сообщение DHCP Acknowledge посылается на все устройства в сети.
Рис. 2. Процесс DHCP-транзакции.

Рис. 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-сервер может назначать клиентам. Таких пулов на сервере может быть несколько для обслуживания разных сетей.

Конфигурация пула адресов предусматривает следующее:

  1. Создание пула и вхождение в его режим конфигурации.
  2. Определение сети, для которой предназначен этот пул.
  3. Определение диапазона IP-адресов, которые DHCP-сервер может назначать DHCP-клиентам. Можно также назначить несколько диапазонов для каждого пула.
  4. Установка вида назначения (lease) для клиентов, который определяет, получает ли клиент IP-адрес динамически, статически или постоянно.
    1. Динамический IP-адрес может использоваться клиентом в течение ограниченного времени, по истечению которого сервер может переназначить этот адрес для другого устройства;
    2. Постоянный IP-адрес назначается устройству на неограниченное время;
    3. Статический IP-адрес назначается определённым клиентам. DHCP-сервер может распознать клиента по его МАС-адресу (фиксированному адресу, встроенному в устройство). Это может делаться для ключевых устройств в сети, например, для серверов, принтеров и пр.
  5. Установка параметров (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). Эти элементы тесно связаны друг с другом. Однако, раздельное управление этими элементами создает много проблем в плане эффективности и операционными рисками, например:

  1. Ограниченная и раздельная видимость размещенных ресурсов в сети, что ограничивает возможности планирования и разворачивания новых сервисов;
  2. Неэффективное общее управление размещением IP-адресов и конфигурацией DNS- и DHCP-серверов, что приводит к конфликтам в сети;
  3. Ручное выполнение многих задач по администрированию сетей, что занимает много времени и снижает эффективность бизнеса;
  4. Слабые механизмы резервирования DNS и DHCP, что создает высокие риски нестабильности IP-сервисов;
  5. Проблемы масштабирования, сложности администрирования пространств из миллионов IP-адресов, со множеством DNS-DHCP серверов;
  6. Ограничение в автоматизации предоставления облачных услуг вследствие не интегрированных IP-ресурсов в процессах провиженинга облачных сервисов.

Решение DDI даёт возможность интегрированного администрирования DNS-DHCP-IPAM и сетевых интерфейсов устройств в едином процессе. При этом можно достигнуть высокой доступности, эластичности в масштабировании ресурсов сети в едином процессе администрирования на основе задаваемых политик. Кроме того, такое решение может значительно повысить «видимость» управления на базе единой панели администрирования и общую «целостность» сети.